UnityとBlenderで作ったニャンターとネルギガンテを戦わせたい⑤  モンスターハンターワールド:アイスボーン

こんにちは、管理人のねまきです。

 

前回までの俺のニャンターは武器を所持していなかった。

これではネルギガンテどころかクンチュウすら倒せないので今回やっと武器を持たせてみる。

手順を調べたところ以下のような感じで実装できるよう。

 ・Blenderにて武器となるボーンを作成

 ・そのボーンにも武器の動きとしてアニメーションを設定

 ・Unityへインポートして武器オブジェクト(メッシュ?)をアタッチ

 

ふむふむなるほど。

なんとなくイメージは沸いたのでさっそくやってみる。

 

Blenderにて武器となるボーンを作成

②そのボーンにも武器の動きとしてアニメーションを設定

f:id:mko0123098:20200524174325g:plain

攻撃モーションに武器となるボーンをつけてアニメーション

なかなか良い感じだ。

カブラネコデンデンだったらネルギガンテ相手でもスタンを奪えそうだ。

ちなみに水色っぽく光っているのが武器のボーンだ

 

次に

③Unityへインポートして武器オブジェクト(メッシュ?)をアタッチ

f:id:mko0123098:20200524174909p:plain

Unityへ武器ボーンも含めてインポートしたところ

ん?ちょっと待て。

ボーンてUnityのシーンビューで見れないの??

そう、俺の環境のせいなのか他に方法があるのか分からないが、Unityでボーンが表示されないのだ。

困った。確かに俺が作った「buki」というボーンはヒエラルキーに表示されているからインポートはされている。そして俺の期待値では上記画像の赤ペンでなぞったような感じのボーンが可視化される予定であった。

 

しかし可視化されないため

「ボーンに合わせて武器メッシュの位置を合わせてアタッチする」

という事が非常に困難な状態に。

 

攻撃モーションに合わせてひたすら微調整を繰り返す、という力技をとれないこともないが、やってられない。そこで脳死状態で3Dオブジェクトのシリンダーというものをアタッチしてみる。すると。。。

f:id:mko0123098:20200524175938g:plain

シリンダーをアタッチしてスケールと位置調整だけでいけた。。。

なんかちゃんと追従しているじゃないか。

 

詳しい仕組みは調べたがよく分からなかった。もし分かる人がいたら教えていただきたい。なんとなく、以下のような仕組みな気がする。

 ・武器ボーンの始点終点とUnityが検知してくれる

 ・子オブジェクトとしてメッシュをアタッチすると位置と回転親オブジェクトを参照(コピー?)している

 ・大きさだけはユーザが好きに決めてねー

 

 

とにもかくにもこれで俺のニャンターは見た目棒きれであるが武器を手に入れた。

 

 

この調子で気合で他の攻撃モーションにも武器ボーンを追加していく。

f:id:mko0123098:20200524212607g:plain

攻撃3

f:id:mko0123098:20200524212611g:plain

ダッシュ

せ、背中に棒が串刺しになっている。。
あと空中攻撃のジャンプ低くない?

 

だが気にすることはない。何故なら俺はニャンターで近接攻撃は使わないから。

というのは冗談で実際ダブルクロスのプレイ動画を見ても武器が少し体から離れて宙に浮いている。

これはつまりオブジェクトを完璧に体に密着させたアニメーションを作るのはプロでも難しいということだ。だから俺なんぞができなくて当然なのだ。

そうだと思い込むのだ。

 

そういえば、BlenderからUnityへエクスポートした際にうまく作成したアニメーションが読み込まれなかったりする。

どうもランダムに発生しているような気がするが。。。

うまくいく時もあるのだ。もう少し様子を見よう。

 

今日はここまで。

読んでくれてありがとう。

次回は連続攻撃の実装をしたいがその前に武器のモデルを作りたい。。。