Mayaへの取り込み・連携
CriLipsMake2の、日本語5母音アニメーションカーブファイル出力(.adxlip)の出力結果をFBXへ埋め込むサンプルです。
概要
本パッケージに含まれている以下のスクリプトは、口パクデータファイル(.adxlip)をアニメーションキーとしてインポートするスクリプトです。
- ADXLipSync2Maya.mel
- ADXLipSync2Maya.py
口パクデータファイルを Maya 上で確認、もしくは既存ワークフローに組み込む際のサンプルとしてご利用ください。
また、以下のような ADXLipSync2Maya スクリプトの動作確認用サンプルシーン(Maya2017用)も同梱しています。
cri/tools/CRILipSyncAlive/samples/MayaProject/adxlip_maya_import_sample

スクリプトの使用手順
1. ファイルの用意
以下のファイルを用意します。
- セリフの音声ファイル(.wav)
- セリフを解析した口パクデータファイル
- セリフを割り当てるキャラクターの Maya シーン
2. Mayaシーン読込み
メインメニュー [File] - [Open Scenes...] から、セリフを割り当てるキャラクターの Maya シーンを開きます。
3. セリフの音声ファイル読込み
セリフの音声ファイル(.wav)を Maya のタイムラインへドラッグ&ドロップします。

音声ファイルが読み込まれ、プレビュー時に音声が再生されます。 もし、音声が再生しない場合は、[Preferences] - [Time Slider] の Playback speed 項目または、[Play every frame] の設定をご確認下さい。
4. スクリプトファイルの読込み・実行
ADXLipSync2Mayaスクリプトを実行します。スクリプトは cri\tools\CRILipSyncAlive\samples\MayaProject\adxlip_maya_import_sample\ADXLipsync2Maya_py3.py に配置されています。
スクリプトの実行方法には、下記 a), b1~b3) の2つの方法があります。
MEL スクリプトファイルの場合
a) ADXLipSync2Maya.mel をエクスプローラーから Maya のビューポートへドラッグ&ドロップします。(読込み即実行)

MEL または Python スクリプトファイルの場合
b1)スクリプトエディターを開きます。(Maya ウィンドウ右下の {;} アイコンをクリック)

b2)スクリプトエディター下部の入力部にエクスプローラーから Maya のビューポートへドラッグ&ドロップしスクリプトを読み込みます。 スクリプトの種類に合わせて入力部のタブ[MEL]、[Python]を切り替えてください。

b3)スクリプトが読み込まれたら、テンキー側のEnterボタンを押下し実行します。 上記の方法でスクリプトを実行すると、ADXLipSync2Mayaダイアログが表示されます。
5. ADXLipSync2Mayaダイアログの設定
ADXLipSync2Maya について取り込み時の各項目を設定します。

- Lipsync Data File (*.adxlip):口パクデータファイルのパスを設定します。
- [Browse...]ボタンを押下し、口パクデータファイル(.adxlip)を指定します。
- Maya Scene fps setting:Maya シーンのフレームレートを指定します。(デフォルト 30fps)
- Blend Shape Group Name:シェイプエディターで表示されるブレンドシェイプグループ名を指定します。(デフォルト blendShape)
- Blend Shape:A,I,U,E,O:あ、い、う、え、おの口に対応するブレンドシェイプ名を指定します。

6. [Apply]ボタンを押下して実行します
[Apply] ボタンを押下すると、上記で設定したコンフィグを使用して口パクデータファイルからアニメーションキーへの変換処理が実行されます。 画面右下部に「*******Processing Exit*******」が表示されたら処理完了となります。
7. プレビュー確認
プレビューの再生ボタンを押下し、音声と口の形状が同時に再生されます。
ADXLipSync2Mayaスクリプト解説
本項目は口パクデータ取り込みスクリプト ADXLipSync2Maya の開発者向け解説です。 ワークフロー適応時の参考として ADXLipSync2Maya スクリプトの一連の流れを解説します。 ADXLipSync2Maya スクリプトは、MEL, Python の2つの形式で提供していますが、それぞれ同じ処理を行っています。 (併記行数は MEL スクリプト版を記載)
グローバル変数定義(12行目~)
変数と初期値を設定しています。サンプルシーンと各種名前のフォーマットが異なる場合は変更してください。
ウィンドウ定義(26行目~)
ダイアログのレイアウトを定義しています。
loadLipfile()関数(74行目~)
ダイアログの[Browse...]を押下時に表示されるオープンファイルダイアログの定義をしています。
execlip2maya()関数(84行目~)
ダイアログの[Apply]を押下時に実行される関数を定義しています。
-
ダイアログから情報をセット(95行目~)
- 文字列を連結してブレンドシェイプ名を作成します。(106行目~) 「ブレンドシェイプグループ名.ブレンドシェイプ名」というアトリビュート名を作成します。 ※コントローラーにキーを打ちたい場合は、このセクションで文字列を「コントローラー名.translateX」等に指定すると他のアトリビュートに変更できます。
-
1フレームの時間(msec)を算出(114行目~) 現状、ダイアログで設定したfps値から1フレームの時間算出してadxlipの時間(msec)をフレームに直してキーを打ちます。
-
adxlipファイルを読込み(117行目~) ヘッダー部の読み飛ばし処理は124行目~となります。
-
adxlipファイルのデータ変換処理(135行目~) ファイル終端まで1行ごとに口パク情報を読み取り以下の処理を繰り返します。
- 時刻処理
- 各日本語5母音ブレンド量を設定したアトリビュートにセット
- キーフレームに設定
-
ファイルクローズおよび、終了の告知(167行目~)