竹倉蔵本 - MMDAgent

開発者向け。調査・考察メモ。テーマは、「MMDAgent」です。
※※※無期休止中※※※

[企画素案]MMDA-CASE = MMDAgent用モデリングツール + MMDAgent操作用ライブラリ

2011-01-29 12:58:47 | MMDAgent感想・レビュー
【記事の概要】
本記事では、現行の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 = 外部仕様を拡張する】

MMDAgentの外部仕様拡張の図

上記の課題を解決する第一の手段は、
シナリオスクリプト(FSTファイル)、つまり、MMDAgentのマクロに、
新しいコマンド・文法の追加を行うことです。

しかし、この解決策では、下記のような課題が残ります。
 01.基本的な機能しか使えない。(文字列の抽出やSQLの発行等はできない)
 02.処理が重くなる。(ファイルの入出力には時間がかかる。変数やデータベースを用意すれば、更に時間がかかる)
 03.MMDAgent独自の仕様が増える。(操作方法の理解が難しくなる)


【解決策2 = 内部仕様を拡張する】

MMDAgentの内部仕様拡張の図

上記の課題を解決する第二の手段は、
ソースファイル、つまり、MMDAgent本体に、
拡張を行うことです。
(MMDAgentは、C/C++で実装されています)

しかし、この解決策では、下記のような課題が残ります。
 01.高度なプログラミング知識が必要になる。(シナリオライター・映像作家等が、簡単に使用できなくなる)
 02.MMDAgentのバージョンアップ対応が難しくなる。(MMDAgentが更新されるたびに、大量の修正が必要になる)
 03.特定のOSに依存する。(特定のシナリオを、他のOS用のMMDAgentで動作させることができない)


【新・解決策 = 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
・企画者が発起人になることが妥当である旨を削除
※現時点で、この企画のイメージに近いプロジェクトを始められている方がいらっしゃるため。

--

最新の画像もっと見る