ダイシング


投稿日: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くらいにテクスチャサイズが減らせるかと思います。

パラパラアニメーション、目パチ、口パク

パラパラアニメーションや目パチ、口パクは「ちょっとした差分しかないデータ」なので、基本的にはダイシングで描画することになります。
透明のヌキ部分も省くことができるので、差分が少ないフルアニメーションのデータでも透過部分が多ければファイルサイズが減らせます。


詳細は、各リファレンスを参照
アニメーション
目パチ
口パク