【記事の概要】
本記事では、現行のMMDAgentが抱えている課題、
そして、その課題を解決する手段として、MMDA-CASEを開発することの有効性を説きます。
MMDA-CASEとは、
MMDAgent用モデリングツール(MMDAgent-ModelingTool、MMDA-MT)と
MMDAgent操作用ライブラリ(MMDAgent-API、MMDA-API)のセット、
または、上記に、
先のライブラリを使用できるMMDAgentディストリビューション
(MMDAgent for Robot User Interface、MMDA-RUI)を加えたものです。
【MMDAgentの課題 = 操作方法・用途が限定されている】
MMDAgentは、音声認識・音声合成・CG作成等の既存オープンソースを組み合わせた製品です。
そのため、MMDAgentの最大の強みは、各オープンソースを連動させる手間を省くことができる点です。
しかし、MMDAgentを操作するために用意されているインターフェース、
シナリオスクリプト(FSTファイル)・音声調整プロパティ(OJTファイル)・初期設定パラメータ(MDFファイル)には、
下記の課題があります。
01.入力が音声入力に限られている。(文字入力には対応しない。画面操作も、規定の処理以外には対応しない)
02.出力が音声合成とCG作成に限られている。(文字出力には対応しない)
03.入力データを再利用できない。(変数・データベースの概念がない)
04.他アプリケーションの実行・停止ができない。(ユーザー・インターフェースの機能がない)
05.状態遷移モデルの文法を採用している。(長編シナリオ向けではない)
【解決策1 = 外部仕様を拡張する】
上記の課題を解決する第一の手段は、
シナリオスクリプト(FSTファイル)、つまり、MMDAgentのマクロに、
新しいコマンド・文法の追加を行うことです。
(拡張の詳細は、記事「[感想・レビュー]MMDAgentでミクプラスを作るために必要な7の改善点」を参照してください)
しかし、この解決策では、下記のような課題が残ります。
01.基本的な機能しか使えない。(文字列の抽出やSQLの発行等はできない)
02.処理が重くなる。(ファイルの入出力には時間がかかる。変数やデータベースを用意すれば、更に時間がかかる)
03.MMDAgent独自の仕様が増える。(操作方法の理解が難しくなる)
【解決策2 = 内部仕様を拡張する】
上記の課題を解決する第二の手段は、
ソースファイル、つまり、MMDAgent本体に、
拡張を行うことです。
(MMDAgentは、C/C++で実装されています)
しかし、この解決策では、下記のような課題が残ります。
01.高度なプログラミング知識が必要になる。(シナリオライター・映像作家等が、簡単に使用できなくなる)
02.MMDAgentのバージョンアップ対応が難しくなる。(MMDAgentが更新されるたびに、大量の修正が必要になる)
03.特定のOSに依存する。(特定のシナリオを、他のOS用のMMDAgentで動作させることができない)
【新・解決策 = MMDAgent操作用ライブラリ+MMDAgent用モデリングツールを作成する】
そのため、第三の選択肢が必要になります。
第三の選択肢は、内部仕様・外部仕様の両方を拡張することです。
内部仕様の拡張とは、
MMDAgent操作用ライブラリを、用意することです。
また、OSや他言語(Python等)間の互換性を確保するためのクッションとしての機能も、
先のライブラリに付随させます。
そして、必要がある場合は、
それを使用できるMMDAgentディストリビューションを、各OSごとに作成します。
(各OS用のMMDAgentに、ライブラリ対応用のインターフェースを追加する。
そして、MMDAgent更新時には、その部分のみを、更新後のMMDAgentに再構築する)
外部仕様の拡張とは、
シナリオスクリプト(C++,Python等)自動生成用モデリングツールを、構築することです。
シナリオをステートマシン図やアクティビティ図で記述することにより、
上記のライブラリを使用したシナリオスクリプトが、自動生成されるようにします。
【新・解決策の課題 = MMDAgent開発元およびフォークプロジェクト開発者との連携が必要になる】
上記の解決策を、プロジェクト化するためには、
MMDAgent開発元およびMMDAgentのクロスプラットフォーム化を目指す開発者の協力を得る必要があります。
そのためには、MMDAgent開発元自体が、上記プロジェクトを開始するのが、理想です。
以上です。
本記事をお読みいただき、ありがとうございました。
--
//修正履歴
2011/01/30
・GPL使用推奨→GPL/LGPL使用推奨→(文言削除)
※GPLライセンスは、他のオープンソース・ライセンスと組み合わせられないことが多いため。
・M2DA→MMDA
2011/02/08
・企画者が発起人になることが妥当である旨を削除
※現時点で、この企画のイメージに近いプロジェクトを始められている方がいらっしゃるため。
--