本日はUnityの技術調査枠です。
Unity AIのドキュメントを読みながら実際に操作を試して記事に残します。
Unity AI
以下のUnity AIのドキュメントを試しながら実行時のキャプチャをしていきます。
docs.unity3d.com
アセット生成のためのプロンプトガイドライン
UnityAIジェネレーターはテキストプロンプトをスプライト、テクスチャ、アニメーション、サウンド、マテリアルアセットに変換します。
期待する結果を得るには優れたプロンプトを作成するだけでなく、使用するモデルに適したプロンプトを作成することが重要です。
画像モデルとChatGPTなどのテキストモデルでは、プロンプトの動作が異なります。
- テキストモデルは会話型で文脈に依存します。抽象的な要求を理解して意味を推測できます。
- Flux 1などの画像モデルはパターン認識機能を備え、視覚要素を組み立てます。
プロンプトのアプローチは使用するモデルの種類に合わせて調整する必要があります。
ベースモデルとカスタムトレーニング済みモデルについて理解する
Generatorでは出力において特定のスタイルや視覚的方向性を実現するように微調整されたカスタムトレーニング済みモデルを使用します。
これらはStable Diffusion XL (SDXL)やFlux 1といった基本的なベースモデルに基づいています。
ベースモデル
ベースモデルは幅広い機能を備えており、短いプロンプトと長いプロンプトの両方を処理できます。
ただし特定のアートスタイルに合わせるには複数回の反復処理が必要になる場合があります。
ベースモデルの例としてはFlux 1、SDXL、GPT Image 1などがあります。
効率的なプロンプトのための主要原則
生成されるアセットの品質はモデルの選択とプロンプトで主題、属性、スタイルをどれだけ正確に記述するかによって決まります。
以下のガイドラインに従って適切なモデルを選択し、アイデアを効果的に記述することでUnity AIは意図したスタイル、詳細、目的に合ったアセットを生成できます。
同じプロンプトでもモデルによって結果が異なる
Unity AIモデルはスタイルに縛られており、各モデルは異なる視覚的美学に基づいてトレーニングされています。
ベースモデルは同じですが、カスタムトレーニングされた各モデルは独自のスタイルを適用します。
つまり、同じプロンプトでも選択したカスタムモデルによって結果が大きく異なる可能性があります。
サンプル
以下の例は異なるモデルに同じプロンプトを使用した場合の出力結果です。
A designsheet for a 2d sideview, orthogonal red muscle car or dragracer. It has big backwheels and smaller front wheels. An air intake sticks out of the hood of the car. 2Dサイドビューの直交座標で描かれた赤いマッスルカーまたはドラッグレーサーのデザインシート。 大きな後輪と小さな前輪を備えています。ボンネットからエアインテークが突き出ています。
| モデル | 出力の説明 |
|---|---|
| 16-bit Pixel(16ビットピクセル) | レトロなピクセルアートスプライトシート。最小限の照明とハードエッジが特徴です。 |
| 3D Blocky Elements(3Dブロック要素) | 明るいブロックスタイルの被写体で、柔らかな3D表現が特徴です。このスタイルは、クリーンで滑らかな形状を実現します。 |
| 3D Cartoon Characters(3Dカートゥーンキャラクター) | 大胆で彩度の高い色彩と誇張されたプロポーションで、よりカートゥーン的な雰囲気を醸し出しています。 |
| Buildings of The Vale(ヴェイルの建物) | 赤い車を背景にした様式化されたファンタジー建築。 |
プロンプトを書く前にモデルを検討してください。例えば以下のようなものです。
- ピクセルアートが必要な場合は16ビットピクセルモデルを使用します。
- おもちゃのようなレンダリングが必要な場合は3Dブロック要素モデルを使用します。
- 大胆で漫画のようなプロポーションが必要な場合は3Dカートゥーンキャラクターモデルを使用します。
- 様式化されたファンタジー環境のレンダリングが必要な場合はヴェイルの建物モデルを使用します。
プロンプトが完璧であってもモデルのトレーニング済みスタイルが最終的な外観を決定します。
抽象的な概念ではなく視覚的な言葉で表現する
画像モデルは賞賛や成功といった抽象的な概念を理解するのが苦手です。
こうした概念は解釈が曖昧で予期せぬ結果や的外れな結果につながる可能性があります。
代わりに、具体的な視覚的な言葉であなたが望むものを正確に表現しましょう。
| 概念的な表現 | 視覚的な描写 |
|---|---|
| 国定記念物 | ワシントンD.C.郊外にある、緑の芝生に囲まれた巨大な石造りのオベリスク。 |
| 称賛アイコン | 黄色の円形の背景に、2Dフラットスタイルの親指を立てたアイコン。 |
| 恐ろしい森 | ねじれた木々、影に光る赤い目、そして濃い霧が立ち込める、夜の鬱蒼とした森。 |
| 未来都市 | ネオンに照らされた高層ビル、空飛ぶ車、サイバーパンク風に光る看板が並ぶ、夜の街並み。 |
サンプル
次の例は抽象的な概念よりも視覚的な説明の方が効果的である理由を示しています。
「Well Done(よくできました)」というプロンプトは漠然としているため、モデルは無関係な画像を推測しました。

一方、「A green ornamental badge, it has the words "Well Done" on it.(緑の装飾バッジに**よくできました**という文字が書かれています)」というプロンプトはリクエストに一致する正確で関連性のあるデザインを生成します。

シンプルな構成で分かりやすくする
信頼性の高いプロンプトは明確で一貫したパターンに従います。
[主題] + [属性] + [スタイル/コンテキスト]
このアプローチは、次のような点で役立ちます。
- モデルが何に焦点を当てるべきかをすぐに理解できるよう主題を最初に置く。
- リクエストに負担をかけすぎないよう関連する説明を追加する。
- 意図したアートディレクションと一致するようにスタイルと設定を指定する。
サンプル
次の例では、同じプロンプトを2つの異なるモデルに適用しています。
3D Cartoon Charactersモデルはスタイリッシュな3Dレンダリングを生成し、16bit Pixelモデルはレトロなスプライトを生成します。
モデルの選択によってアートディレクション、ディテール、スタイルがどのように変化するかを示しています。
A young female warrior in leather armor, holding a sword, side-facing, pixel art style. 革の鎧を着て剣を持ち、横を向いたピクセルアートスタイルの若い女性戦士。
Animeモデル

3D Cartoon Charactersモデル

16bit Pixelモデル

二重否定を避ける
二重否定はジェネレーターを混乱させ、望ましくない結果につながる可能性があります。
フレーズは直接的で肯定的なものにしてください。「否定プロンプト」フィールドでは「no」や「not」を使用しないでください。
例えば、「No birds」ではなく「birds」を使用してください。
また、「否定プロンプト」フィールドを使用すると、一般的な品質問題を軽減することもできます。
例えば、出力結果がぼやけたり歪んだりする場合は「blurry(ぼやけている)」「poor quality(品質が悪い)」「low resolution(解像度が低い)」などの用語を否定プロンプトに追加します。