ダイシング
投稿日:2016年12月21日 | 最終更新日:2024年12月2日
ノベルゲームは表情差分のある立ち絵やイベントCGなど「差分が少ない似たようなテクスチャ」をたくさん扱います。
そのため、テクスチャサイズが肥大化し、アプリサイズが簡単に数100MB~数GBと肥大化してしまう傾向にあります。
この問題に対応するために、ダイシングという「賽の目状に分割(ダイシング)した合成画像を使った描画」を追加しました。
殆どのケースで、テクスチャのファイルサイズやメモリ消費サイズを50%~90%と大幅に削減することができます。
描画時は、このように賽の目状のポリゴンを描画します。完全に透明な部分は描画をスキップします。
ダイシングデータの作り方
Tools>Utage>DicingConverterにある、ダイシング画像作成用のコンバーターを使ってデータを作成します。
Dicing Converterの詳細
画像を更新した場合は、コンバートを手動で行う必要があるので注意してください。
作成したダイシングデータはResources/プロジェクト名/Texture/フォルダ以下においてください。
ダイシングデータに収録されているテクスチャはTexureDataListに収録されています。
右下のメニューからプレビュー欄の表示を切り替えることができるので、意図通りのテクスチャが収録されているか確認してください。
設定シートサンプル
CharacterやTextureシートで
・「FileName」に、ダイシングデータのScriptableObjectのパスを記入
・「FileType」に「Dicing」と入力
・「SubFileName」に描画する元リソースのテクスチャ名(拡張子なし)を記入
サンプルシナリオ
ダイシングの概要
ダイシングで表示するためには、「いったん賽の目状に分割して、重複するデータを省いたテクスチャを作成する」という作業が必要です。
背景やイベントCGのように不透明な素材の場合は、ちゃんとαなしの画像になります。
これによって、1/10~1/2くらいにテクスチャサイズが減らせるかと思います。
パラパラアニメーション、目パチ、口パク
パラパラアニメーションや目パチ、口パクは「ちょっとした差分しかないデータ」なので、基本的にはダイシングで描画することになります。
透明のヌキ部分も省くことができるので、差分が少ないフルアニメーションのデータでも透過部分が多ければファイルサイズが減らせます。