私は小さなゲームのためにいくつかのグラフィックスに取り組んでいます。グラフィックはSVGで、ほとんどがタイルベースになります(ゼルダの伝説:SNESの過去へのリンクを考えてみてください)。私は小さな草のタイルを描きました。このNxM回をフィールド全体にコピーしたいと思います。Inkscapeまたは別のGUISVG編集ツールでこれを行うと、3.5MBを超えるファイルが作成され、同じサイズの32ビットビットマップよりも大きくなります。
ある種の「草のタイル」オブジェクトを定義できるかどうか知りたいのですが、それを自分のフィールドの各スポットにコピーする代わりに、適切な座標で参照するだけです。これにより、ロード時にシーンが同じ量のメモリを消費することになりますが、ディスクに保存するファイルがはるかに小さくなり、この場合、変更したい場合は編集が簡単になることを願っています。たとえば、草の色の場合、変更を加えてから新しいタイルをフィールド全体に再コピーするのではなく、アーキタイプオブジェクトを変更するだけで済みます。
役立つと思われるさまざまなキーワードを約半ダースほど検索しましたが、探しているものが何も実行されていないようです。'xlink:href'属性を使用することを考えました。これは、最初にカラーパレットを定義するためにタグで使用され、その後、変換データを含む別のタグで参照するためです。
私は次のようなものを使ってみました:
<path id="grassyPatch" d="M 3.3310392e-7,608 31.993091,624 63.986183,608 31.993091,592 z" style="..." />
そして、それを次のようなものでコピーします。
<path id="grass-copy1" xlink:href="#grassyPatch" transform="translate(32,-32)" />
<path id="grass-copy2" xlink:href="#grassyPatch" transform="translate(32,-64)" />
新しい場所に数回コピーするためなど。これが可能かどうか誰かが私に知らせることができれば感謝します。今のところ希望はありませんので、無理だとご存知の方もいらっしゃいましたら、時間を無駄にしないようにお知らせください。
ありがとう!