DAZ の3Dキャラを使って、キャラメイク・物理演算・自律制御などを、Unity でやってみます。
- ◯
- 背景
ゲームエンジンでアニメ系のキャラを使うとき、3Dモデルの(オリジナルの)形式でよく利用されるのが、MMD/VRM/FBX あたりでしょうか。[※1]
- ◯
- 問題
ただ、それらのキャラをゲームエンジン上で統一的にあつかおうとすると、ボーンやメッシュに違いがあるため、けっこう厳しいものがあります。
とくに容姿や体型を変形させるキャラメイクは、同一メッシュ上のモーフで実現することが多いので、もとの3Dモデルにそういったしかけがないと、ゲームエンジンだけで実装するのはそうとう困難です。[※2]
- ◯
- 主題
ここでは、DAZ の3Dキャラをアニメ調に変換して、ゲームエンジン(Unity )上でキャラメイク(容姿や体型の変形・衣装替え)をやってみます。[※3][※4][※5]
さらに、より人間味をもたせるために物理演算(実在感のあるふるまい)や自律制御(自律歩行・擬似会話)も試してみます。
- ※1
- これは、ボーカロイドの伝統(MikuMikuDance: MMD)や、アニメ系キャラメイクツールの利用(Vroid Studio: VRM )、VR系SNSでの利用(VRChat: FBX )、などが要因としてあるでしょうね。
- ※2
- ドワンゴ社が推進するVRM 形式は、クロノスグループの3Dモデル統一規格(glTF)の拡張になっていますがーーただメッシュの作りは自由なので、キャラメイクという点では厳しいものがあります。
- ※3
- ここでは、Unity 標準の機能とベンダが提供する機能のみを使って実現しますーー有料のアセット(Final IK, PuppetMaster, etc.)や既存のアプリ(VaM , etc.)は使いませんーーその方がしくみをよく理解し〜制御できるようになると思うので。
- ※4
- DAZ 3D社が提供するUnity/Blender 向けの変換ツールは、いったんFBX に変換し、それぞれの環境に取り込みます。
- ※5
- AIのマルチモーダルへの対応で、3Dのキャラクタについても、かなり精密なものが生成できるようになってきましたーーそうなると必要になるのは、生成された3Dモデルを整形する、キャラメイクツールでしょう(解析的なAIモデルによる生成では、どうしても制御できない部分が出くるので、論理的な手法で補う必要があります)ーーまたゲームエンジンで動かすキャラは、エンジン側でキャラメイクする方が自然です(シェーダなどの違いによる)……ただAIが生成した3Dモデルのメッシュは、DAZ のメッシュと正確に同じにする必要があり、このあたりに課題があるかもしれませんが。
- ◯
- 3Dキャラをカスタマイズする:リアル調/アニメ調:DAZ Studio
- ◯
- 汎用ジョイントの基本(物理ベースのキャラを動かす力):Unity (ConfiguarableJoint)
- ◯
- キャラクタ・メイキング(容姿や体型を変える/表情を変える/髪や服を取り替える):Unity (BlendShapes, Hair, Cloth) , DAZ, VRoid
- ◯
- 物理ベースのキャラに実在感を与える(振り向かせる、重みや抵抗、など):Unity (Quaternion)
- ◯
- 物理ベースのキャラを、強化学習で自律的に歩かせる:Unity (ML-Agents (Walker)), UnityChan, VRM (VRoid) , DAZ
- ◯
- 大規模言語モデル/音声認識/音声合成/感情分析を使う:ChatGPT (gpt-3.5-turbo) , GPT-3 (text-davinci-003) , FlexGen, Azure Cognitive Services (Speech SDK)