AI / ML Technology

Unityで対話できるAIキャラクターを作る(1)

AI / ML
スポンサーリンク

どうも、Reveです。
なんと、前回の記事から半年も経ってしまいました…(汗)一応、生きてます。
今回からしばらく、恐らく今一番ホットな技術の「AIで対話できるキャラづくり」に挑戦してみた記事をつらつら書こうかと思います!

きっかけ

ずばり、最近話題のChatGPTを始めとして、今の技術でどれほどの対話AIキャラが作れるか試したいからです。

対話型AIは今でも研究対象となるくらい複雑な問題の一つであり、様々なAIやチャットボットが登場してきました。古くは1966年にジョセフ・ワイゼンハウムによって開発されたELIZA(イライザ)から、1997年にはマイクロソフトからOfficeアシスタント(イルカの「カイル」と言ったら分かるかも)、さらに2010年代のAppleのSiriやマイクロソフトの「りんな」などが挙げられます。Amazon EchoやGoogle Homeなどのスマートスピーカー、更にはWebサイトの問い合わせなどもチャットボットの一種といえるでしょう。

世界で開発が加速化するチャットボットの進化の軌跡 ~元祖ELIZAの誕生から、ディープラーニングの可能性まで~ | Mobilus SupportTech Lab - モビルス サポートテックラボ
チャットボットの元祖「ELIZA」の誕生 最近話題のチャットボットですが、その歴史は想像以上に古いものです。チャットボットの初期型と言われるELIZA(イライザ)は1966年にジョセフ・ワイゼンバウムによって発明されました。 ELIZAは、簡単なパターンマッチング技法を使った自然言語処理プログラムでした。患者役のユーザ...

AIは期待と失望を繰り返しながら何回かブームを迎えましたが、OpenAIの開発したChatGPTの登場はそれまでに無いほど高い精度と自然な応答で、まさに革新的な対話型AIサービスとなりました。
本当に汎用な対話型AIというブレイクスルーも起こしそうな、そんなChatGPTを駆使したAI対話キャラはどう作るのか、備忘録も兼ねて記事にしてみました。

目標と構成

まずは、作るものの大まかな仕様をまとめてみます。

  1. モデル:CGキャラクターの導入 (今回は3DCG)
  2. 音声:合成音声の生成と再生
  3. モーション:身体動作とリップシンク
  4. 会話: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プロジェクトにドラッグ&ドロップします。

Releases · vrm-c/UniVRM
UniVRM is a gltf-based VRM format implementation for Unity. English is here . 日本語 はこちら - vrm-c/UniVRM

すると以下のポップアップが出現するので、そのまま「import」ボタンを押します。

インストールが完了すると、エディタのメニューに下の画像のような項目が出現します。

そのままVRM形式のファイルをプロジェクトに入れれば、基本的にはモデルがすぐ(prefabとして)使えるようになります。
が、VRMのバージョンが以前のもの(0.x代)の場合、「Migrate To Vrm 1」という項目にチェックを入れてApplyボタンを押せば変換されます。

無事にモデルが変換されたら、下のようにモデルを配置できるようになります。

(株)バンダイナムコ「ミライ小町」 Copyright (c) Bandai Namco Research Inc.

ちなみに、今回は(株)バンダイナムコの「ミライ小町」というキャラクターのVRMモデルを使わせていただきました。

DOWNLOAD | ミライ小町 Mirai Komachi Official Page
ミライ小町は、(株)バンダイナムコスタジオのゲーム開発技術や未来に向けた技術研究を紹介するために生まれたオリジナルキャラクター。技術とともに世界中の人たちを笑顔にしたいと願う未来型アイドルです。 Mirai Komachi was originally developed to showcase and demo BA...

MMDの場合

MMDでは、MMD4Mechanimというプラグインを使います。
まずは「MMD4Mecanim_Beta_20201105.zip」というzipファイルをダウンロードします。

zipファイルを解凍し、中から「MMD4mechanim.unitypackage」というunitypackageをそのままドラッグ&ドロップ

プラグインの導入が完了したら、MMDモデルのファイルを直接プロジェクトにドラッグ&ドロップ。
そのままでは何も起こらないので、MMD4 Mechanim(立方体に中括弧が付いたアイコン)を選択して、すべての項目に同意します。

この段階ではMMDモデルはまだ表示されません(インポート済のプロジェクトを使ったので…ややこしくてすみません)

すると、次のメニューに移行するので、ひとまず右下の「process」ボタンを押します。

しばらくすると処理が完了してprefabが生成されるので、それを配置すればモデルが表示されます。

3Dモデル邪神ちゃん by 卯月ノム【公式】

今回は「3Dモデル邪神ちゃん by 卯月ノム【公式】」というモデルを使いました。

3Dモデル邪神ちゃん by 卯月ノム【公式】 - ニコニ・コモンズ
ニコニ・コモンズはあなたの創作活動を支援します:素材やライセンス情報が集まる「作品ライブラリー」、創作の連鎖を支援する「コンテンツツリー」

3DCGモデルを入れた後は

あとは、エディタでモデルのprefabをヒエラルキーに置き、モデルとカメラの位置や向きを調整すればOK。

2Dか3Dか?

今回は3DCGを前提に進めましたが、もちろん2Dを選んでもOKです。

2Dモデルを動かす代表的なツールといえば、やはりLive2Dになるかと思います。Unity用のSDKを使えば、Live2Dで作ったモデルを簡単にUnityで動かせるようになります。

Cubism SDK ワークショップ#4 「4.2新機能対応!SDK for Unity を使ってポートフォリオアプリを作ろう!」 #Cubism_SDK

モーションの入れ方はこのブログでの方法とだいぶ変わりますが、音声や会話生成は共通なので、イラストから作りたい方などはLive2Dから作るのもアリだと思います。

次回は?

音声合成を解説する予定。VOICEVOXとVOICEPEAK、それぞれの使い方について記事を書いていきます。

参考

UniVRMをインストールする - VRM ドキュメント
Stereoarts Homepage

おまけ

ちなみに、高精細な3DCGモデルを使ったり、ローカルでAIの学習モデル生成や実行まで含めて行いたい場合はゲーミングPCの使用をお勧めします。
大体安くても15~20万円くらいはしますが、10万円前後の割と手ごろなモデルも無くはないです(性能面で少し見劣りしますが)。

安いゲーミングPCのおすすめまとめ 激安モデルを中心に用途・予算別に詳しく紹介!
この記事では「安いゲーミングPCが欲しい」という人のためにゲーマーが厳選した「安いゲーミングPC」をおすすめしています。あらゆるショップを比較して本当に安いモデルだけをピックアップしたので、セール品並みに安い人気商品が並んでいます。
タイトルとURLをコピーしました