読者です 読者をやめる 読者になる 読者になる

当たったらどうすんだよ

当たらなければどうということはない

UE4のテンプレートに自分で作ったキャラを入れて動かしたい そのヨン

3D CG Blender UE4 UE4にオリキャラを導入したい ゲーム制作

というわけで第4回です。
今回はBlenderで実際にモーションをつけていきます。

前回の記事の末尾にぼくが作った「標準すたちゅーさん」の骨つきBlenderファイルをリンクしておきました。onedriveからDLして開いてみてください。テクスチャもフォルダに入れてありますので、パス切れを起こしていたらノードエディターで開き直してくださいね。

マテリアルは最低限に

前回記事で書くべきだったのですが忘れてましたw
BlenderにもCyclesというPBR(Physical Based Render=物理ベースのレンダラー)レンダラーが搭載されていますが、現代的なレンダラーは一般的にノードを使ってシェーダーを構成します。いわゆるセルシェーディングを行う場合、どうしても多数のマテリアルで「色分け」を表現する必要があるのですが、そうした「今後の課題」は後回しにして、ゲームエンジンにキャラクタなどをインポートさせる場合には、基本的に最小限のマテリアル構成で作成するのが重要です。

そのうちマテリアルノードについても詳細な記事を書こうと思いますが、CyclesもUE4のマテリアルノードも基本的な考え方はまったく一緒です。たとえば金属と岩でできた「なにか」をモデリングする場合、ポリゴンを複数マテリアルで区分けするのが楽ちんなやり方ですが、実は「マテリアル分けをするためのマスク」をテクスチャとして用意し、Cyclesの場合ならMixノードと演算ノードを使うことで「ひとつのマテリアルで複数の材質設定を行うこと」が普通にできます。

この「最低限のマテリアル数」が具体的にはいくつなのか?を定量的に話すのは難しいです。経験を積んでください、としか言いようがない部分ですが、このエントリの教材である、すたちゅーさんについては「マテリアルはひとつ」で済ませています。

胴体(トルソ)と腕の構造

これも前回の補足になりますが…なんとすたちゅーさんには腕がありません!ww

しかし、一般的なヒト型二足歩行キャラには腕がありますのでお話しすると、キャラクタを作って骨を入れて動かすときに、最も破綻しやすいのが肩の関節で、次に厄介なのは股関節です。人体は当然シームレス(つなぎ目がない)な構造ですが、ゴツい鎧を着ていたり、肩を大きく見せるデザインの服を着ている場合(一部のメイド服など)には、胴体と腕、あるいは脚部を分割してモデリングしてしまうのは、スキニングを考えた場合に「うまいやり方」と言えます。

繋がっているから破綻してしまうなら…うまいこと分割してしまえば問題回避できるじゃない!というわけですね。

モーションをループさせる

それでは、ようやくモーション付けに入ります。

「歩行サイクル」とか「走りサイクル」の見本がYoutubeなどにアップされていますが、このサイクルとかループというのは「循環する」という意味です。

f:id:kanianthi:20160604204728p:plain

上の図のように、開始キーと終了キーが同一であれば、つまり「はじまりと終わりが同じポーズ」であれば、そのアニメーションをループ再生したときに「サイクルモーションとして循環する」というわけです。

これは打ち込みで音楽をDTM制作したことがある方なら分かりやすいですね。特にリズムトラックはループさせるビートトラックとフィルで構成するのが一般的ですので、最初と最後のキーを同じにする意味が分かりやすいと思います。

f:id:kanianthi:20160604205838j:plain

ではBlenderでの解説に戻ります。

画像のように画面左上の編集画面プリセットを「Animation」にしておきましょう。そしてドープシートのモードを「アクション」にし、アクション名を設定します。ここではすでにアイドルモーションがひとつ入っているファイルを使用しているので「idle2」と打ち込みました。

また、開始を0フレーム、終了を45フレームに設定しています。Blenderでは任意のフレームレート(FPS)を設定できますが、UE4は実行されるPCなどの能力に応じた「バリアブルフレームレート」を採用しています。ここでは、Blenderの再生フレームレートを30fps(1秒間に30フレーム)と仮定し、45フレームあるので「1.5秒でひとつの動き」という設定でアイドルモーション(待機モーション)を作成するよ、というわけです。(ただし待機モーションは様々なバリエーションを持たせたくなるのが普通で、数秒にまたがる長いフレーム数で演技させることも多いです)

この状態でタイムラインを開始位置にし、ボーンを全選択した状態から「ポーズ」→「トランスフォームをクリア」→「すべて」でアーマチュアの移動や回転をすべてニュートラルに戻し、Iキーを押してキーを打ちます。このときキーの種類は「位置/回転」で良いでしょう。拡大縮小キーを混ぜても良いのですが、別の問題を引き起こすことがありますのでとりあえず入れません。

f:id:kanianthi:20160604211437j:plain

次に、終了フレームである45フレームに移動し、そのままキーを打ちます。

これで、なんの動きもありませんが「最初と最後のキーが同一」であるモーションサイクルができました。タイムラインを再生してもなんの動きもありませんが、どこかに継ぎ目があるようにも見えませんよね?w

f:id:kanianthi:20160604211907j:plain

続いて、画像のように背骨から頭までのボーン「だけを」選択し、rキーなどでボーンを回転させ、適当なポーズになったら20フレームにキーを打ってみます。キーの種類は基本的に「位置/回転」ですべて行います。大事な注意点として、全身を回転させたいだとか、特別な理由がない限りはルートボーン(すべての骨の親となるボーン)は動かさずにキーを打つことです。

これはUE4で「ルートモーション」という高度な技を使うときに大事なお約束になります。今回の「とりあえず動かそう!」ではフォローしない部分ですが、そのうち大事なことになりますので覚えておきましょう。

なお「オートキー」機能も、慣れない状態で使うと余計なキーが生成されて「えらいことになる」ので使いません。タイムラインを再生してみて、無事に背骨から頭が動いているのが確認できたらアニメーションを停止し「再び全身のボーンをaキーで選択して」動いていないすべてのボーンにもキー打ちをしてください。

これは、ボーンによるモーション付けを行っているとすぐに遭遇する問題なのですが「動いていないこともモーションの一部である」ことが理解できると重要さが分かる工程です。
※実際に20フレームに全身のキーを打たないでどこか別のフレームに他のボーンのキーを打ってみれば分かる…かもしれませんw

さて今回はここまでにします。

次回は「歩行サイクル」について書きます。