本項ではコンソールツール CriLipsMake の出力結果を Maya へ取り込むためのスクリプトの使用方法と、処理内容について解説します。
ADXLipSync2Mayaスクリプト解説
概要
- 本パッケージに含まれている ADXLipSync2Maya.mel、ADXLipSync2Maya.py は、口パクデータファイル(.adxlip)をアニメーションキーとしてインポートするスクリプトです。
口パクデータファイルを Maya 上で確認、もしくは既存ワークフローに組み込む際のサンプルとしてご利用ください。
また、以下のような ADXLipSync2Maya スクリプトの動作確認用サンプルシーン(Maya2017用)も同梱しています。
ADXLipSync2Maya スクリプトの動作確認用サンプルシーン
スクリプトの使用手順
- ファイルの用意
以下のファイルを用意します。
- セリフの音声ファイル(.wav)
- セリフを解析した口パクデータファイル
- セリフを割り当てるキャラクターの Maya シーン
- Mayaシーン読込み
メインメニュー [File] - [Open Scenes...] から、セリフを割り当てるキャラクターの Maya シーンを開きます。
- セリフの音声ファイル読込み
セリフの音声ファイル(.wav)を Maya のタイムラインへドラッグ&ドロップします。
音声ファイルをタイムラインにドラッグ&ドロップ
音声ファイルが読み込まれ、プレビュー時に音声が再生されます。
もし、音声が再生しない場合は、[Preferences] - [Time Slider] の Playback speed 項目または、[Play every frame] の設定をご確認下さい。
- スクリプトファイルの読込み・実行
ADXLipSync2Mayaスクリプトを実行します。スクリプトは以下のパスに配置されています。
cri\tools\ADXLipSync\samples\ADXLipSync2Maya.py
スクリプトの実行方法には、下記 a), b1~b3) の2つの方法があります。
[MEL スクリプトファイルの場合]
a) ADXLipSync2Maya.mel をエクスプローラーから Maya のビューポートへドラッグ&ドロップします。(読込み即実行)
ビューポートにドラッグ&ドロップ
[MEL または Python スクリプトファイルの場合]
b1)スクリプトエディターを開きます。(Maya ウィンドウ右下の {;} アイコンをクリック)
スクリプトエディターを開く
b2)スクリプトエディター下部の入力部にエクスプローラーから Maya のビューポートへドラッグ&ドロップしスクリプトを読み込みます。
スクリプトの種類に合わせて入力部のタブ[MEL]、[Python]を切り替えてください。
スクリプトエディターにドラッグ&ドロップ
b3)スクリプトが読み込まれたら、テンキー側のEnterボタンを押下し実行します。
上記の方法でスクリプトを実行すると、ADXLipSync2Mayaダイアログが表示されます。
- ADXLipSync2Mayaダイアログの設定
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:あ、い、う、え、おの口に対応するブレンドシェイプ名を指定します。
シェイプエディター(参考)
- [Apply]ボタンを押下して実行します。
[Apply] ボタンを押下すると、上記で設定したコンフィグを使用して口パクデータファイルからアニメーションキーへの変換処理が実行されます。
画面右下部に「*******Processing Exit*******」が表示されたら処理完了となります。
処理完了
- プレビュー確認 プレビューの再生ボタンを押下し、音声と口の形状が同時に再生されます。
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行目~)