メインコンテンツまでスキップ

Mayaへの取り込み・連携

CriLipsMake2の、日本語5母音アニメーションカーブファイル出力(.adxlip)の出力結果をFBXへ埋め込むサンプルです。

概要

本パッケージに含まれている以下のスクリプトは、口パクデータファイル(.adxlip)をアニメーションキーとしてインポートするスクリプトです。

  • ADXLipSync2Maya.mel
  • ADXLipSync2Maya.py

口パクデータファイルを Maya 上で確認、もしくは既存ワークフローに組み込む際のサンプルとしてご利用ください。

また、以下のような ADXLipSync2Maya スクリプトの動作確認用サンプルシーン(Maya2017用)も同梱しています。 cri/tools/CRILipSyncAlive/samples/MayaProject/adxlip_maya_import_sample ADXLipSync2Maya スクリプトの動作確認用サンプルシーン

スクリプトの使用手順

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 について取り込み時の各項目を設定します。

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行目~)