皆様いかがお過ごしでしょうか。歌乃です。

最近UEを弄り回してます。下手なゲームより面白い。

今回はUE5 を使ってアニメーションアセットをつくってみます。

以下のような読者を対象にしてます。

  • UEの基本操作がわかり、BluePrintで簡単な処理を作れる。またはBPのサンプルを触ったことがある。
  • スケルトンやボーン、リグ、メッシュなど3Dアニメーションに関わる用語や仕組みがある程度わかる。

前回の記事 > まばたき(目パチ)アニメーションの別アプローチによる実装



今回の目的

さて目的ですがキャラクターに「しゃがみ」動作を実装したくなり、それ用のアニメーションが必要になりました。

マケプレで手に入れれば早いのですが、せっかくなので自作してみようと思いつきました。

それというのもUE5にはとても高機能なシーケンスエディタがついている事に気づいたからです。

いままでブレンダーなどでアニメーションを作成してましたが、簡単なものならもうUEだけでいいんじゃね?という勢いです。



まずは事前準備

アニメーションの作成の前に、やっておくことがあります。

それは編集用レベル(ワールドマップ)の作成です。

といってもなにも難しいわけではなく、単に空(から)のレベルを作成しておくだけです。

「ファイル」メニューから「新規レベル」を選び「Basic」テンプレートでレベルを作成します。

作成したレベルを適当な名前で保存して、開き直します。

なぜこの作業が必要かというと、アニメーションの作成に使用するシーケンサがレベルを使用するからです。

いつもお世話になっているサードパーソン用のレベル(マップ)ファイルだと色々とオブジェクトが配置されていて編集の邪魔になります。

新しくつくったレベルにも「PlayerStart」といったオブジェクトがあるので削除しておきましょう。



アニメーションの作成

いちから作るとはいっても、実際には既存のアニメーションを元にします。

というのも、ワールド内でアニメーションをブレンドする際に「きれいにつなげる」ためにはポーズ同士にある程度「重なる」部分が必要になるためです。

「歩き」から「走り」に遷移させる場合などは歩幅や踏み出す足が同じでないとうまく繋がらず、たたらを踏んだような挙動になってしまいます。

ということで、まずは立ち姿のアニメーションを複製し、それを編集します。

エディターのツールバーから「シーケンサで編集」を選び「FKコントロールリグで編集」を選択します。

FKコントロールリグで編集

コントロールリグにベイク、というダイアログがでます。

「キーの削減」と「許容範囲」という設定項目があります。キーの削減は文字通り、アニメーションのキーフレームを減らします。許容範囲はキーフレーム間の変移量になります。許容量以下の変移しかない場合はキーフレームが無視されるというわけです。

ケースバイケースですが元のアニメーションを修正したい場合などはキーフレームを削減をしない、単に参照したいだけ(今回の場合)などであれば、許容量を大きくしてキーフレームを減らしてもいいと思います。

コントロールリグにベイク

ベイクに成功すると、シーケンスエディタが開き、レベル内に作成されたアニメーション(のメッシュモデル)が追加され、アニメーションと同じ名前のフォルダ内にレベルシーケンサのファイルが作成されます。

ベイクする前に、用意した空(から)のレベルに切り替えておくのを忘れずに

シーケンスエディタの操作に関してはBlenderなどと大して違いはないのですぐに理解できると思います。

修正したいフレーム上でマウスのセンターボタンクリックでキーが作成できます。ツリーまたはプレビュー画面からボーンを選択して位置(動かせるボーンのみ)や角度を変更していきます。

いい感じにアニメーションができたら、保存する前にIKボーンの修正を行いましょう。



IKボーンの修正

たぶんこの段階でIKボーンは目的のボーン位置とズレまくっていると思います。

ボーン位置とズレ

嬉しいことにこの修正を簡単に行える機能がUEのシーケンサーにあります。

「Snapper」機能がそれです。

「Snapper」機能

Snapperを使用すると、親と子を選ぶダイアログが表示されます。

親と子を選ぶダイアログ

子にIKボーンを設定し、親にトレースしたいボーンを選びます。IK_foot_Rなら J_Bip_R_Foot などですね。

スナップ設定では「位置」と「回転」にチェックを入れます。回転も合わせないと接地関連でIKボーンに引き寄せられるときに「ねじれ」が発生し、メッシュが破綻します。

ベイクするキーフレームは「AllFrames」を選びます。キーフレームのみだと補完によって目的のボーンとIKボーンにズレが起きるときがあります。

設定できたら「アニメーションをスナップ」をクリックしてスナップを適用します。メッセージ等はでないので、IKボーンを選択したままアニメーションを再生して動きを確認してください。

必ずIKのルートボーンに近い方から作業してください。ボーンのツリー構造上、親ボーンを動かすと配下の子ボーンが全て動いてしまいます。



最後に修正内容(シーケンスデータ)を保存します。

修正内容(シーケンスデータ)を保存

この時点で編集元のアニメーションに変更が反映されているので、コンテンツブラウザでアニメーションを再生して確認します。

アニメーションが気に入らなければシーケンサに戻って手直ししてください。




しゃがみモーションが実装できたので、しゃがみ歩きも作らないとなー (`・ω・´)



Post If you feel like it, I would be happy if you could post it.