どうも、Reveです。
なんと、前回の記事から半年も経ってしまいました…(汗)一応、生きてます。
今回からしばらく、恐らく今一番ホットな技術の「AIで対話できるキャラづくり」に挑戦してみた記事をつらつら書こうかと思います!
きっかけ
ずばり、最近話題のChatGPTを始めとして、今の技術でどれほどの対話AIキャラが作れるか試したいからです。
対話型AIは今でも研究対象となるくらい複雑な問題の一つであり、様々なAIやチャットボットが登場してきました。古くは1966年にジョセフ・ワイゼンハウムによって開発されたELIZA(イライザ)から、1997年にはマイクロソフトからOfficeアシスタント(イルカの「カイル」と言ったら分かるかも)、さらに2010年代のAppleのSiriやマイクロソフトの「りんな」などが挙げられます。Amazon EchoやGoogle Homeなどのスマートスピーカー、更にはWebサイトの問い合わせなどもチャットボットの一種といえるでしょう。
AIは期待と失望を繰り返しながら何回かブームを迎えましたが、OpenAIの開発したChatGPTの登場はそれまでに無いほど高い精度と自然な応答で、まさに革新的な対話型AIサービスとなりました。
本当に汎用な対話型AIというブレイクスルーも起こしそうな、そんなChatGPTを駆使したAI対話キャラはどう作るのか、備忘録も兼ねて記事にしてみました。
目標と構成
まずは、作るものの大まかな仕様をまとめてみます。
- モデル:CGキャラクターの導入 (今回は3DCG)
- 音声:合成音声の生成と再生
- モーション:身体動作とリップシンク
- 会話:AI(ChatGPT)による対話内容の生成
続いて、開発に使うものをリストにまとめました。
- ハードウェア
- PC (Unityが動作するもの。システム要件はこちら)
- ソフトウェア (API含む)
- Unity (2022 または 2021 LTS)
- Visual Studio
- OpenAI API
- VOICEVOX または VOICEPEAK
- uLipSync
- モーションデータ
PCは性能が高いに越したことはありませんが、よほどの廉価版でない限りはグラフィックボード無しでも軽いCGなら動かせます。
ここまで大体のシステム構成と必要なものを述べてきましたが、ここから作り方に入っていきます。今回は 1.モデル のやり方です(その他は後々)。
キャラクターモデルの導入
3DCGモデルの形式
CGファイルの形式は実に多種多様ですが、Unityに人型のCGモデルをインポートする場合は、だいたいUnityアセットからダウンロードするか、FBX / VRM(あるいは元となったglTF) / MMD形式のモデルをプロジェクトに入れる事になるかと思います。
UnityアセットかFBXは入れるだけでOK(Unity自体が対応しているため)ですが、VRMかMMDの場合は導入するためにプラグインが必要です。
プラグイン導入
ここでは、VRMかMMDモデルを使う場合のプラグインについて解説します(アセットかFBX形式の場合は不要)
VRMの場合
まずはUniVRMをインストール。以下のURLからunitypackageを入手して、Unityプロジェクトにドラッグ&ドロップします。
すると以下のポップアップが出現するので、そのまま「import」ボタンを押します。
インストールが完了すると、エディタのメニューに下の画像のような項目が出現します。
そのままVRM形式のファイルをプロジェクトに入れれば、基本的にはモデルがすぐ(prefabとして)使えるようになります。
が、VRMのバージョンが以前のもの(0.x代)の場合、「Migrate To Vrm 1」という項目にチェックを入れてApplyボタンを押せば変換されます。
無事にモデルが変換されたら、下のようにモデルを配置できるようになります。
ちなみに、今回は(株)バンダイナムコの「ミライ小町」というキャラクターのVRMモデルを使わせていただきました。
MMDの場合
MMDでは、MMD4Mechanimというプラグインを使います。
まずは「MMD4Mecanim_Beta_20201105.zip」というzipファイルをダウンロードします。
zipファイルを解凍し、中から「MMD4mechanim.unitypackage」というunitypackageをそのままドラッグ&ドロップ
プラグインの導入が完了したら、MMDモデルのファイルを直接プロジェクトにドラッグ&ドロップ。
そのままでは何も起こらないので、MMD4 Mechanim(立方体に中括弧が付いたアイコン)を選択して、すべての項目に同意します。
すると、次のメニューに移行するので、ひとまず右下の「process」ボタンを押します。
しばらくすると処理が完了してprefabが生成されるので、それを配置すればモデルが表示されます。
今回は「3Dモデル邪神ちゃん by 卯月ノム【公式】」というモデルを使いました。
3DCGモデルを入れた後は
あとは、エディタでモデルのprefabをヒエラルキーに置き、モデルとカメラの位置や向きを調整すればOK。
2Dか3Dか?
今回は3DCGを前提に進めましたが、もちろん2Dを選んでもOKです。
2Dモデルを動かす代表的なツールといえば、やはりLive2Dになるかと思います。Unity用のSDKを使えば、Live2Dで作ったモデルを簡単にUnityで動かせるようになります。
モーションの入れ方はこのブログでの方法とだいぶ変わりますが、音声や会話生成は共通なので、イラストから作りたい方などはLive2Dから作るのもアリだと思います。
次回は?
音声合成を解説する予定。VOICEVOXとVOICEPEAK、それぞれの使い方について記事を書いていきます。
参考
おまけ
ちなみに、高精細な3DCGモデルを使ったり、ローカルでAIの学習モデル生成や実行まで含めて行いたい場合はゲーミングPCの使用をお勧めします。
大体安くても15~20万円くらいはしますが、10万円前後の割と手ごろなモデルも無くはないです(性能面で少し見劣りしますが)。