DreamTextureとは
「Dream Texture」はCarson Katri氏作の「Blender」用アドオンです。 入力したキーワードや画像情報などを元に、画像生成AI「Stable Diffusion」を使ってテクスチャ画像を自動生成します。
PlayCanvas とは
PlayCanvasは、JavaScriptで作られたHTML5/WebGLで動作するゲームエンジンです。
インストールの必要もなく、開発から公開までWebブラウザ一つで動くクラウドにホストされるため、URLにWebブラウザからアクセスすることで複数人で開発、公開したコンテンツを一緒に遊ぶことも可能です。
かなりのハイポリゴン&テクスチャサイズと量を持っているキャラクターでも、問題無くweb上で動かすことができるのがPlayCanvasの特徴です。
品質の高いマテリアルセットをデフォルトで持っていますので、リアルな質感を出すことも容易に出来ます。
本題
現状、Blenderアドオンとして使用できる[DreamTexture]は、編集モードで選択したポリゴン且つビューポート上から見える部分だけのテクスチャーを生成することしかできません。そこで、シンプルなワークフロー(力技)で対象オブジェクト全体のテクスチャーを生成し、シーンを構成する例をご紹介します。
記事の内容は以下になります。
- 3Dモデルをモデリングする
- テクスチャ生成用のモデルを配置する
- Dream Textureでテクスチャーを生成する
- BlenderでUV展開する
- Playcanvasへインポートする
3Dモデルをモデリングする
Blenderで、Boxを中央でカットし家っぽい形状にします。
現状では、複雑な形状を持つオブジェクトでは全面をカバーする統一されたイメージを生成できません。今回はめちゃくちゃシンプルな家っぽいモデルでやっていきます。
テクスチャ生成用のモデルを配置する
DreamTextureは複数オブジェクトに対して1度の生成で複数イメージを生成するのではなく、共通イメージを生成します。
そこで、オリジナルの3Dモデルを複製し、正面と横のモデルを用意します。
ここでは前後と左右の4つを用意しました。
ライト情報も影響してくるので、影にならないように位置をずらしておきます。
Dream Textureでテクスチャーを生成する
設定は画像の通りです。
編集モードで全選択してください。その後、[Project Dream Texture]ボタンをクリックし、生成を開始してください。
生成結果は以下となります。
オリジナルのモデルのUVを生成された画像に合わせていきます。
これで、統一されたテクスチャーを持つモデルが完成しました。
プロンプトを操作して色々なパターンを生成してみましょう。
Playcanvasへインポートする
glbデータとしてエクスポートします。
playCanvasに新規プロジェクトを作成し、glbデータをアップロードします。
色々生成したテクスチャーもアップロードします。
マテリアルを操作して見えやすい感じに整えます。
EMISSIVEに DIFFUSE と同じ画像を drag&drop し、SPECULAR の Glossiness を 100 へ変更します。
Materialを複製し、各テクスチャーを割り当て、家のオブジェクトを複製し、作成したMaterialをdrag&dropしましょう。こんな感じで短時間で色々なパターンのオブジェクトを作成できました。