http://yugito.bangofan.com/unrealengine5%E5%82%99%E5%BF%98%E9%8C%B2/%E3%80%90%E5%82%99%E5%BF%98%E9%8C%B2%E3%80%91%E3%83%96%E3%83%AC%E3%83%B3%E3%83%89%E3%82%B7%E3%82%A7%E3%82%A4%E3%83%97%E3%81%A7%E8%A1%A8%E6%83%85%E3%82%92%E4%BB%98%E3%81%91%E3%82%8B%E3%80%80%E3%81%9D%E3%81%AE%E2%91%A1【備忘録】ブレンドシェイプで表情を付ける その②
【備忘録】ブレンドシェイプで表情を付ける その②
UE5でキャラクターに表情を付けていきます。
今回はUE5編です。
Blenderでの作業手順は前回の記事を参照してください。
ブレンドシェイプで表情を付ける その①
…それにしても、ブレンドシェイプ、シェイプキー、モーフターゲット…呼び方が複数ありますがどう使い分けたらいいんでしょうね。
いまいちわからないまま説明を進めていくので言葉の使い間違いもあると思いますが、あしからずご了承くださいませ。
【シェイプキーを含めたFBXデータをインポートする】
ImportMorphTargetsにチェックを入れた状態でFBXデータをインポートします。
…ここで悲しいお知らせです。
こでまで最初にこの項目にチェックを入れていないと、再インポートではシェイプキーを追加でインポートできないようです。
なのでブレンドシェイプで表情を付ける予定のスケルタルメッシュをインポートするときは、なんでもいいので一つ変形を加えたシェイプキーを作ってからインポートしなければなりません。
一度シェイプキーを含めたデータをインポートしておけば、あとから再インポートした時にシェイプキーを増やすことは可能です。
はじめにシェイプキーを作っていなかった場合は、新規にインポートしたスケルタルメッシュにクロスシミュレーションや物理アセットをやり直さなければならない…、というわけではなく、次に説明する作業で何とかすることができます。
【スケルタルメッシュを新規にインポートした場合の対処】
スケルタルメッシュを新規にインポートした場合、クロスシミュレーションやリジッドボディなどの物理設定をシェイプキーをインポートする前のスケルタルメッシュからコピーすることができます。
①クロスシミュレーションのデータをコピーする
新規にインポートしたスケルタルメッシュを開き、クロスタブを選択します。
クロスを追加をクリックしてコピー元のスケルタルメッシュを選択します。
クロスデータにデータがコピーされます。
クロスを追加したいオブジェクト上で右クリックして、クロスデータを適応、追加したいクロスデータを選択します。
②物理アセットをコピーする
コンテンツブラウザで新規にインポートしたスケルタルメッシュに対応した物理アセットと、コピー元の物理アセットを同時に選択した状態で右クリックして、アセットアクション、リファレンスを置換を選択します。
コピー元のほうの物理アセット(設定を残したい方の物理アセット)を選択して結合アセットをクリックします。
新規にインポートしたほうの物理アセットが不要な場合は削除を選択します。
③その他BPのスケルタルメッシュを置換する
キャラクターBP、アニメーションBPなどのスケルタルメッシュを新規にインポートしたスケルタルメッシュに変更します。
※こんなことをしなくても古いほうのデータを削除する際にリファレンスを置換する方法もありますが、失敗した場合に取り返しがつかなくなる可能性があるので一つずつ作業したほうがいいでしょう。
これで物理設定をやり直さずに済みました。
気を取り直してブレンドシェイプの作業の続きに参りましょう。
【インポートした表情を確認する】
シェイプキー…UEではモーフターゲットと呼ぶようです。
モーフターゲットを確認します。
スケルタルメッシュを開いてモーフターゲットタブを選択します。
Blenderで作成したシェイプキーと同じパラメーターが並んでいます。
足りない場合は、Blenderに戻って足りないシェイプキーを作成したオブジェクトに、アーマチュア以外のモディファイアが設定されていないか確認してください。
アーマチュア以外のモディファイアが残っているとシェイプキーがインポートできないため、かならず適応してからエクスポートしたものを使います。
各パラメーターのウェイト値をドラッグすると表情を動かすことができます。
【アニメーションにブレンドシェイプを組み合わせる】
待機モーションにまばたきを追加してみましょう。
アニメーションシーケンスのMM_Idleを開きます。
※私の手順と同様にスケルタルメッシュを新規にインポートしなおした方は、PreviewMeshを新しいスケルタルメッシュのほうに変更しておきましょう。
カーブの横の▼をクリックして、カーブを追加、変更したいモーフターゲット名(今回はeye_close_L)を選択します。
カーブは複数選択することができます。
今回は左右のまぶたの動きを分けて作ったので、もう一度カーブを追加を選択してeye_close_Rのカーブを追加しましょう。
カーブ名の横の▼をクリックしてカーブを編集を選択します。
赤い再生バーを適当な位置で止めて線の上で右クリックして、キーを追加を選択します。
キーを3つ追加したら、真ん中の値を1.0にします。
再生ボタンを押して実際のアニメーションを確認しながら、キーとキーの間隔を変更してまばたきの速さを調整します。
カーブの角度が急なほど動きが早く、緩やかなほど遅くになります。
パチパチとせわしないまばたきにしたければ角度を急に、ゆっくりなまばたきにしたければ角度を緩くします。
これで片目のまばたきができました。
MM_Idleのタブに戻るとこんな感じになっています。
左目のカーブを右目にもコピーしていきましょう。
eye_close_Lの上で右クリックして、コピーを選択します。
eye_close_Rの上で右クリックして、クリップボードのデータをカーブにペーストを選択します。
これで右目と左目を同じタイミングで閉じることができました。
最後にこのアニメーションを保存し、ABPに組み込んで使用すれば待機中にまばたきをするキャラクターの完成です。