AI生成3DキャラをUnity上で動かすまでのワークフロー
Midjourneyで作った画像をImage to 3Dの生成AIのCSM Cubeを使って3D化しUnity上でアニメーションさせるまでをまとめます
最終的には下の動画のように動きます
演出も加えたもの
Midjourney画像をImage to 3D
Midjourneyで作った画像をCSMで3D化します
画像をCSMで3D化した結果こんな感じになります
詳細は先日書いたのでこちらをご覧ください
追記
日本時間8/22にCSMが有料版サブスクリプションを開始しました。ここで紹介している3Dモデルは有料版に相当する学習モデルを使用しています
3Dモデルの修正・変換 Blender
追記
2023年8月20日前後にCSMのアップデートがあり、GLBの他OBJでエクスポートができるようになりました
これにより下記3Dモデルの修正・FBXに変換で記載した内容をBlender上で行わなくても直接mixamoにアップロードが可能になりました。
OBJを選択してダウンロードするとzipファイルがダウンロードされます
これを展開するとテクスチャ画像のpng、マテリアルファイルmtl、objを扱うことができます
メッシュやテクスチャーを修正したい、などの場合を除いて下記3Dモデルの修正・FBXに変換の項目は飛ばしてzipファイルをmixamoにアップロードしてください
3Dモデルの修正
CSMではGLBまたはUSDZファイルがダウンロード可能です(USDZは出たり出なかったりするのでGLBが基本)
この後の処理のMixamoやUnityではGLBのままでは扱えないためBlenderにインポートして扱えるようにします
インポートすると体積中心あたり?が原点になっているので足の位置に原点が来るように移動します。
これを行わないと後でMixamoに取り込むときに地面に埋まってしまいます
続いてテクスチャの色などを自分で調整する場合はGLBのマテリアルに設定されたテクスチャをベイクして画像化します
このあたり↓を参考にして行えばできます
設定としてはBakeTypeをCombinedにLightingは切りました
この設定でBakeすると暗くなりがちなのでPhotoshopでトーンやコントラストの調整を行ったり調整を行います
ここでテクスチャの質が悪い部分を塗ることができるならすると良いと思われます(が、筆者はここのスキルがないため今回は調整のみとしました)
これで作った画像をテクスチャとして利用します
注意点としてデフォルトマテリアルがMetalicを1.0になっていたりして後で光を必要以上に反射してしまったりします
MaterialのMetalicの値を落とすなど調整したほうがよいです
FBXに変換してエクスポート
Blender上でFBX形式でエクスポートします
エクスポート設定はこのような感じです
PathModeをCopyにしてその右のEmbedTextureをONにしてテクスチャ込みのエクスポートをします
Mixamoでアニメーション設定
キャラクターをアニメーションさせるのにリギング・スキニングという作業が必用ですがMixamo のAuto Riggerを使うと、これらをほぼ自動で行うことが出来ます
AutoRigger
Mixamo上でUpload CharacterからBlenderでエクスポートしたFBXをアップロードして関節位置を指定すると自動的にリギング・スキニングされます
Mixamo上で適当なアニメーションを見つけてダウンロードするとアニメーション付きFBXがダウンロードできます
これをUnityに取り込んでいきます
Unityでアニメーション適用
Import Settings
Unityにアニメーション付きFBXをインポートします
インポートしたFBXのImportSettings > Rig でAnimationをHumanoidに設定Applyします
同様にImportSettings > MaterialsでExtract Textures/Materialsを行います
ImportSettings > Animation でAnimationの名前を変更。アニメーションを複数利用する場合はすべてmixamo.comだと見分けがつかなくなるため適当な名前を割り当ててください
Animation Controllerの設定
Unity上でAnimationControllerを作成しインポートしたAnimationが再生されるようにします
基本Entryから上記アニメーションに遷移するように設定
キャラクターの配置
Unityエディター上で適当な位置にFBXを配置
AnimatorのControllerで上記で作成したAniamationControllerを割り当てます
エディターで再生するとキャラクターが動くようになります
現状の欠点
ここまででワークフローの解説は完了しました
今回は3D生成AIのCSM Cubeを使って作ったキャラクターで実運用上、カメラの角度などでごまかしている部分があります
パーツの分割
このキャラクターであれば、あごひげが体と区別されていないため正面から見ると顔から髭にかけてゆがんだようにアニメーションされてしまします
テクスチャの質
また見ての通りテクスチャの質はインプット画像と比較するとアウトプットがクオリティは下がってしまっています
自動的に改善は現状できないので手作業で修正する必要があります
これらの欠点もあるので現状、製品レベルのゲームなどで利用するにはまだ3D生成AIはクオリティが十分ではないとは思います
コンセプトづくりのイメージプロトタイプ作成などで利用する
3Dモデリングの際にガイドとして利用する
などが今現在は現実的な利用方法かと思われます
募集
Witchpotではゲーム開発x生成AIのシステム開発や自社サービスの提供を行っています
ゲーム開発会社や個人のゲームデベロッパーの方で興味がありましたら、なんでも気軽にご連絡頂ければと思います
サポートは開発・勉強用に使用させていただきます。