UE4のテンプレートに自分で作ったキャラを入れて動かしたい そのヨン
というわけで第4回です。
今回はBlenderで実際にモーションをつけていきます。
前回の記事の末尾にぼくが作った「標準すたちゅーさん」の骨つきBlenderファイルをリンクしておきました。onedriveからDLして開いてみてください。テクスチャもフォルダに入れてありますので、パス切れを起こしていたらノードエディターで開き直してくださいね。
マテリアルは最低限に
前回記事で書くべきだったのですが忘れてましたw
BlenderにもCyclesというPBR(Physical Based Render=物理ベースのレンダラー)レンダラーが搭載されていますが、現代的なレンダラーは一般的にノードを使ってシェーダーを構成します。いわゆるセルシェーディングを行う場合、どうしても多数のマテリアルで「色分け」を表現する必要があるのですが、そうした「今後の課題」は後回しにして、ゲームエンジンにキャラクタなどをインポートさせる場合には、基本的に最小限のマテリアル構成で作成するのが重要です。
そのうちマテリアルノードについても詳細な記事を書こうと思いますが、CyclesもUE4のマテリアルノードも基本的な考え方はまったく一緒です。たとえば金属と岩でできた「なにか」をモデリングする場合、ポリゴンを複数マテリアルで区分けするのが楽ちんなやり方ですが、実は「マテリアル分けをするためのマスク」をテクスチャとして用意し、Cyclesの場合ならMixノードと演算ノードを使うことで「ひとつのマテリアルで複数の材質設定を行うこと」が普通にできます。
この「最低限のマテリアル数」が具体的にはいくつなのか?を定量的に話すのは難しいです。経験を積んでください、としか言いようがない部分ですが、このエントリの教材である、すたちゅーさんについては「マテリアルはひとつ」で済ませています。
胴体(トルソ)と腕の構造
これも前回の補足になりますが…なんとすたちゅーさんには腕がありません!ww
しかし、一般的なヒト型二足歩行キャラには腕がありますのでお話しすると、キャラクタを作って骨を入れて動かすときに、最も破綻しやすいのが肩の関節で、次に厄介なのは股関節です。人体は当然シームレス(つなぎ目がない)な構造ですが、ゴツい鎧を着ていたり、肩を大きく見せるデザインの服を着ている場合(一部のメイド服など)には、胴体と腕、あるいは脚部を分割してモデリングしてしまうのは、スキニングを考えた場合に「うまいやり方」と言えます。
繋がっているから破綻してしまうなら…うまいこと分割してしまえば問題回避できるじゃない!というわけですね。
モーションをループさせる
それでは、ようやくモーション付けに入ります。
「歩行サイクル」とか「走りサイクル」の見本がYoutubeなどにアップされていますが、このサイクルとかループというのは「循環する」という意味です。
上の図のように、開始キーと終了キーが同一であれば、つまり「はじまりと終わりが同じポーズ」であれば、そのアニメーションをループ再生したときに「サイクルモーションとして循環する」というわけです。
これは打ち込みで音楽をDTM制作したことがある方なら分かりやすいですね。特にリズムトラックはループさせるビートトラックとフィルで構成するのが一般的ですので、最初と最後のキーを同じにする意味が分かりやすいと思います。
ではBlenderでの解説に戻ります。
画像のように画面左上の編集画面プリセットを「Animation」にしておきましょう。そしてドープシートのモードを「アクション」にし、アクション名を設定します。ここではすでにアイドルモーションがひとつ入っているファイルを使用しているので「idle2」と打ち込みました。
また、開始を0フレーム、終了を45フレームに設定しています。Blenderでは任意のフレームレート(FPS)を設定できますが、UE4は実行されるPCなどの能力に応じた「バリアブルフレームレート」を採用しています。ここでは、Blenderの再生フレームレートを30fps(1秒間に30フレーム)と仮定し、45フレームあるので「1.5秒でひとつの動き」という設定でアイドルモーション(待機モーション)を作成するよ、というわけです。(ただし待機モーションは様々なバリエーションを持たせたくなるのが普通で、数秒にまたがる長いフレーム数で演技させることも多いです)
この状態でタイムラインを開始位置にし、ボーンを全選択した状態から「ポーズ」→「トランスフォームをクリア」→「すべて」でアーマチュアの移動や回転をすべてニュートラルに戻し、Iキーを押してキーを打ちます。このときキーの種類は「位置/回転」で良いでしょう。拡大縮小キーを混ぜても良いのですが、別の問題を引き起こすことがありますのでとりあえず入れません。
次に、終了フレームである45フレームに移動し、そのままキーを打ちます。
これで、なんの動きもありませんが「最初と最後のキーが同一」であるモーションサイクルができました。タイムラインを再生してもなんの動きもありませんが、どこかに継ぎ目があるようにも見えませんよね?w
続いて、画像のように背骨から頭までのボーン「だけを」選択し、rキーなどでボーンを回転させ、適当なポーズになったら20フレームにキーを打ってみます。キーの種類は基本的に「位置/回転」ですべて行います。大事な注意点として、全身を回転させたいだとか、特別な理由がない限りはルートボーン(すべての骨の親となるボーン)は動かさずにキーを打つことです。
これはUE4で「ルートモーション」という高度な技を使うときに大事なお約束になります。今回の「とりあえず動かそう!」ではフォローしない部分ですが、そのうち大事なことになりますので覚えておきましょう。
なお「オートキー」機能も、慣れない状態で使うと余計なキーが生成されて「えらいことになる」ので使いません。タイムラインを再生してみて、無事に背骨から頭が動いているのが確認できたらアニメーションを停止し「再び全身のボーンをaキーで選択して」動いていないすべてのボーンにもキー打ちをしてください。
これは、ボーンによるモーション付けを行っているとすぐに遭遇する問題なのですが「動いていないこともモーションの一部である」ことが理解できると重要さが分かる工程です。
※実際に20フレームに全身のキーを打たないでどこか別のフレームに他のボーンのキーを打ってみれば分かる…かもしれませんw
さて今回はここまでにします。
次回は「歩行サイクル」について書きます。
UE4のテンプレートに自分で作ったキャラを入れて動かしたい そのサン
今回はBlenderの設定について です。
…と書いたものの、実はBlenderでモデリングしたポリゴンオブジェクトをUE4にインポートさせるための設定を解説された記事としては、すでにとても良いものが存在しています。
Blender で UE4 用 3D モデルを作って Import するまでに守るべきことまとめ | rarilog
↑のブログエントリがそれです。
らりほまさんという方が書かれた記事で、大変詳しくBlenderからモデルをFBXで吐き出すための設定とUE4にインポートするための設定を解説してくださっています。
ですから!!!
- 単位をメートル法にし、拡大縮小を0.01(1単位を1センチ)にする。
- 骨(アーマチュア)を入れるのは単位合わせを行ってからにする。
- 当然モーションもスケールが整ってから入れる。
- モデルを拡大縮小した場合はトランスフォーム値をニュートラルにする。(Mayaでいうところの「フリーズ」させる)
- モデルの前方が-Y、上が+Zになるようにモデリングする。(Blenderで正常にモデリングしていれば特に意識しなくてもそうなるはずです)
以上が必須の条件になります。
あ、もう終わっちゃいましたねwいやいや…せっかくですから先を急ぎましょう。ではもう少し詳細に、というか「モデリングとモーション入れの過程」について解説するのがぼくのブログエントリの主題ですから、いきなり佳境に入ります。
そこで…
モデリングと骨入れに進む!
というわけです。
↑すたちゅーさんきた!!!
まぁwぼくのオリキャラもほかにあるわけですが、とりあえず「標準すたちゅーさん」のモデルで解説を進めます。ぼくがすたちゅーさんを好きだから!というだけではありませんよ?
- 腕も手もないから必然的にポリゴン数が少ない!
- このモデルはかなり贅沢なポリ割をしているのに4角面で1002、三角面でも1976しかない!
- 骨の数も少なくて済む!(実際には尻尾で贅沢な骨入れをしているので増えていますw)
特にローポリ合戦をしているわけではないので、標準すたちゅーさんのモデルはポリゴンを「ふんだんに使って」いますが、それでも1000ポリゴンです。PS4時代のコンシューマ向けキャラクタだと、平気で数万ポリゴンのモデルが動き回っているのが実情ですが、AndroidやiPhoneなどのモバイルデバイスではまだまだそこまでポリゴンリソースを使えるわけではありませんし、骨(ボーン)の数にも制限があります。
Blenderでキャラクタを作ると、Rigifyという高機能な人体リグも標準で使えますが、大量のMCHボーン(コントロールボーン=メッシュの変形は行わないボーンをコントロールするためのボーン)が生成されるため「ボーンリダクション」の知識と経験なども必要になってしまいます。
というわけで、ボーン組みの基本を知るためにも、UE4に自作キャラを導入するための基礎として「手組でリグ付けをする」ことを推奨いたします。というのも、確かにRigifyなどの自動生成リグはとても便利なのですが、なにか問題が発生したときに骨の基本が分かっていないと対処ができません。なにごともブラックボックス化した状態で運用していると、便利ではあっても知識としては「なにも分からない」という状況に陥ってしまうので、苦手意識を持たずに骨を組んでみることをお勧めします。
続いて↑の画像が標準スタチューさんのボーン(アーマチュア)構成です。
脚はIKで動かし、その他の骨はFKで動かす「当たり前の」ボーン構造ですが、いくつか工夫をしてありますので解説します。
クォータニオンとオイラー角
Blenderに限らず、近年の3Dソフトはどれもボーンを「クオータニオン」で回転させます。クオータニオンというのは「四元数」という数学上の概念で、回転角度を4つの軸で表現するわけです。クオータニオンを数学的に把握するには複素平面での回転について理解する必要がありますがここでは割愛します。
※とはいえ「クオーター=4つの」に語源があることくらいはイメージするようにして、丸暗記式の知識の運用にならないようにしましょう。
クオータニオンの良いところは、あるポーズから別のポーズにボーンを動かすとき、最適に近い回転角度を得やすいところ、ジンバルロックという現象を回避できること、などが挙げられます。しかし、クオータニオンにも欠点があって、プロペラのような「ぐるぐる回転する動き」を作りにくい!という問題があります。
この辺のボーンについての詳細な知識は骨を使ったキャラものを制作していると必ず身に着けていないと困ることになるので、映像制作やゲーム制作をこれからも長く行っていくのでしたら興味を持って調べてみると良いでしょう。
すたちゅーさんの場合ですと、尻尾をぐるぐる回したいので、尻尾の骨はオイラー角で動かすように設定しています。また、ルートボーンも同様で、宙返りやフィギュアスケートのような横回転を行うためにオイラー角に設定しています。オイラー角というのは数学者オイラーさんにちなんだ名称です。
そのほかにもリバースペルビスとロールセンターボーンなどを標準すたちゅーさんのアーマチュアには持たせていますので、記事の末尾にBlenderファイルへのリンクを付記しますからDLして研究してみてください。
ウエイト付け(スキニング)について
骨が組めたらキャラクタメッシュ→アーマチュアの順にshift選択してctrl+pでスキニングを行います。ぼくはほぼ100%自動ウエイトでスキニングし、ウエイトペイントで小修整を行うくらいでこの工程は終了します。比較的面倒なモデルでも1時間以上ウエイトでてこずることはありません。
第21回:キャラクタースキニングを知る~ジョイントこそ命! | 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ | AREA JAPAN
↑は非常に有用な記事です。
ソフトウエアはMayaですが、どんなソフトでもまったく同じ知識が使えます。当たり前ですが人間でも、その他の動物でも、関節の位置は体の中心にはありません。たとえば膝であれば…
↑みたいに前方にオフセットしているのです。
ところが「間違ったCG入門書」では「骨を体の中心に通す」と解説していることが多く、必ず関節がゴムホース状の変形をするようになり、ウエイト調整では修正不可能な状況を無数に生み出してくれます。
今回の教材モデル?である標準すたちゅーさんでは、それほどシビアな関節の動きを求められるわけではありませんので、大してこだわった骨の位置決めを行っていないのですが、それでもメッシュに対してある程度はオフセットさせた骨の配置を行っています。この辺は実地で作業するのが一番ですので、できるだけ簡単なメッシュで実験し、骨の位置にこだわることを覚えましょう。
それでは最後に、標準すたちゅーさんのBlenderファイルへのリンクです。
次回はBlenderでのモーション付けを実践します。
UE4のテンプレートに自分で作ったキャラを入れて動かしたい そのニ
前回の記事ではわりと心がけというかお題というか精神論みたいなこと?を書きました。がっかりでしたね!先が長いですね!
だがしかし!ぼく自身決して物分かりがいいわけではありませんし、何度も何度もつまずいてどうにか3D界隈で仕事をさせていただいているのが実情です。なので今回もまた「考え方」だとか「これからやることのイメージング/フォーカシング」に重点を置いて話を進めていきたい、と思います。
さて今回は
UE4のサンプルアセットを見る
というのがテーマになります。
前回までの記事を読んでいただけたなら、すでにUE4とBlender(もしくはその他の3Dアプリケーション)はインストールしていますよね。Epic GAMESのアカウント取得がうまくいかん!とかはこの記事ではフォローしかねますのでご容赦くださいねw
無事にUE4をインストールできたならEpicGAMESラウンチャーが上記のようになっているはずです。「エンジンスロット」とある部分にUE4のゲームエンジンというかエディタがバージョンごとに並び、その下の「マイプロジェクト」という部分には自分で作成したりマーケットプレイスでダウンロードしたプロジェクトがならんでいます。
もちろん、初めてUE4をインストールした場合だと、マイプロジェクトのスペースは空っぽのはずです。
それでは続いて…いよいよ「ターゲットとなるプロジェクトを作成」したいと思います。とりあえず今回は(現時点での)最新版である4.12.0を起動してみましょう。
UNREAL EDITORというのが起動して↑のようにプロジェクトを開く/新規作成のダイアログが表示されますので、赤チェックの通りに設定してください。
※後にプロジェクトを公開しますが、現時点ではご自分で作業してくださいね。
解説するよ!
Third PersonというのはUE4にもともと用意されている「ゲーム作りのためのテンプレート」です。ほかにも色々ありますので、初めて触る方は一通りプロジェクトを作ってみて、あれこれ遊んでいると丸一日は楽しめちゃいます。
サードなパーソンなので「3番目の誰か」ですね。いわゆる「3人称視点で遊ぶゲーム」を作るためのテンプレというわけです。国産アクションゲームやRPGの大半はこのスタイルですから、誰にでも馴染みやすい仕様ですし、この記事の目的である「自分で作ったキャラを動かす」目標に達したときに、ちゃんとキャラが見えるわけです。素晴らしい!
では次に、↑の画像にある三角ボタンで実際にテンプレで遊んでみます。
ぶっちゃけこれはサードパーソンキャラを「ただ動かせるだけ!」という超絶シンプルなテンプレートですから、飽きる人はすぐに飽きます。なので一通り動かして見て満足したら、次の作業に移りましょう。
いよいよ本題!アニメーションを確認する
コンテンツブラウザをあーだこーだして↑のように「Animations」というフォルダを表示させましょう。なにを隠そう、こいつらが標的です。目標です。
UE4に限ったことではありませんが、たいていのゲームは同じような仕組みで「待機」とか「歩く」とか「ぶん殴る」という個別のモーションを格納し、ゲームエンジンそれぞれ独自の「アニメーションの統合機能」で混ぜ合わせ、キーボードやゲームコントローラーの操作に応じてそれぞれのアニメーションが再生されたり「混ぜ合わせたりする」ことによって「キャラの動き」を表現しています。
この辺が一般の「CGアニメ」と大きく違うところで、たとえば1分のダンスモーションをBlenderで作って再生しようとすると、動きのすべてを(原理的には)手打ちするなりモーションキャプチャファイルを利用するなりして用意する必要があるわけですが、ゲームのモーションでは個別の「短いサイクル」を用意して、ゲームエンジンにそれらを「臨機応変に」再生させられるのです。
※とはいえBlenderやMayaでも個別の動きだけを用意して組み合わせたり、UE4でも長いモーションを「とにかく再生させる」ことは普通にできます。あくまで今回は一般論ですので。
では、先ほどのアニメーションをダブルクリックしてみてください。すると↑の画面に切り替わり、それぞれのアニメーションを再生することができるようになります。
基本的には
- 待機
- 歩く
- 走る
- ジャンプ
という4つの動きしかありません。ただしジャンプに関してだけは「スタート」「ループ」「エンド」と3つに分解されたものが用意されています。
また、ジャンプのモーションをよく観察すると、プレイボタンを押してゲームを開始したときの動きに比較して、ぜんぜん高く飛んでいないことにも「気づくはず」です。
これは「上下の動き」に関してはゲームエンジンがキャラをZ方向(上方向)にうまい具合に動かしてくれているからであり、Blenderなどでモーションを作成する際には(なにか特別な理由がない限り)ジャンプのモーションでは上下の動きを大きく入れる必要がない、ことを意味しています。
今回の成果
なにはともあれ、UE4を起動してプロジェクトを作成し、実際の「ゲームキャラの中身」を見て、観察し、それぞれの動きを知ることが今回の目的でした。
確かに、多くのゲームではもっと多彩な動きをキャラは表現してくれますし、だからこそ魅力的なわけですが…そもそも最初からあまりにも高度なことを目指しても、途中の作業が多すぎてゴールに辿りつきません。まずはとにかく「自分で作ったキャラを動かしたい」という、シンプルな目標を設定しましょう。
ではその目標とは?「待機」「歩き」「走り」「ジャンプ」という4つのモーションを作成することです。攻撃や防御やバク転などは、後からいくらでも(慣れれば)追加できるようになりますので、作業の目標が「なんだ大したことないな」と思えるようになることが今回の成果なのです。
それでは、今回はここまで!
UE4のテンプレートに自分で作ったキャラを入れて動かしたい そのイチ
TwitterでUE4に自分で作ったオリジナルキャラをインポートして動かすまでの記事(どなたかのブログ記事やホームページなど)ってあんまりないよね?的なことをツイートしたら、案外「そうだね!」ってリプをいただきました。
そこで、ぼくのドメインのブログに書いても良かったんだけど、放置しすぎで管理が面倒くさいのでwとりあえず「はてな」にそれ系のブログポストを書いて置いておく場所を作ったわけです。
というわけで早速記事を書いていきます…が、このエントリでは実際の作業の詳細には辿りつきません。ですから、もうキャラもできてるし早くUE4に入れさせろよー!って方は次回以降の記事をご覧になってください。
- 最初の準備?
- UE4のサンプルアセットを見る
- Blenderの設定
- モデリング作業
- 骨を入れる
- モーションをつける
- FBXにエクスポートする
- UE4にインポートする
- ブレンドスペースを作る
- アニメーションブループリント(ABP)を作る
- プレイヤーを差し替える
- プレイしてみる
- もうひと手間加えてみる
以上までを最終的にサポートできるエントリにしたいと思っています。
どのように要点をまとめようとしても上記した工程は必ずクリアしなければなりませんので、1~13番まで書いた「お題」をまずはじっくり眺めてみてください。
1:最初の準備?
じっくり眺めました?
ホント?ホントに?じゃぁいきますよ?
最初に考えるべきことは、これです。
→最初の準備?
ただ漠然と「UE4にオリジナルキャラをインポートして動かしたい!」と言っても、あまりにも高度なことはゲームエンジン初心者やコード書きに不慣れな方ができるわけありません。
そこで一連の記事(まだできてないけどw)では、以下のルールを設定します。
- とりあえずモデルはぼくが用意しますよ!すばらしい!
- とりあえず骨も入れるしモーションもつけておきますよ!すごいね!
- ていうかFBXとかも用意しとくし!やった!
- でもUE4のインストールとかは自分でやってくださいね?
- あとBlenderで作業するんで、最新版いれておいてね?
- UE4も最新版の4.12使うからね!(現時点で)
このへんですでに「あーめんどくせー!」ってなっちゃう方は…それもうなにもできませんのであきらめてくださいwいやいらっしゃるんですよホントに…
というか、ぼく自身UE4は4.8から触っているのですが(なぜか4.9からバージョンアップして5.0になるのかと思ったら4.10になったという変なバージョンルールがある)、けっこうこまごまとした変更があって、エンジンのバージョンが違うと使用するノードの名前が変わってしまったりします。
Blenderにしても同じことで、現時点での最新バージョンは2.77aですが、ソフトウエアというのもバージョンが違うと微妙に挙動が違ったりするものです。なので、とりあえずこの記事(エントリ)と同じ環境にしてください。
それともうひとつ、BlenderについてもUE4についても、基本の基本から解説することができますが、この記事の趣旨ではありませんので割愛します。ブループリントってなんだー!?とかBlenderってどこで落とせるの!?みたいな話はどうかどうか…ナシでお願いいたします(笑)
さて長くなりましたので今回はここまで。
次回からいよいよ画面キャプチャなども交えて具体的な作業を解説いたします。