【Unity】アニメーションを用いてUnityちゃんに武器を持たせる手順


Unityちゃん_武器_冒頭

以前の記事で簡易的なアニメーションの作成方法についてご紹介しました。よろしければ以下の記事を先にご覧いただけると幸いです。

Blenderを使ってUnityにアニメーションを追加する手順

アニメーションをつくってモデルを動かしているうちに、素手のアニメーションだけじゃ物足りなくなった方、いらっしゃるのではないでしょうか?

今回はアクションの幅を広げる「武器」をUnityちゃんに持たせるための手順をご紹介していきます。

Blenderでの武器保持アニメーション作成からUnityでの調整まで一気にご紹介していきます。

ユニティちゃんライセンス
本稿はユニティちゃんライセンス条項の元に提供されています。

武器アセットをダウンロードする

まずはUnityちゃんに持たせたい武器をアセットストアでダウンロードしましょう。

武器アセット
Low Poly Weapons

Low Poly Weapons

本稿では上記の武器アセットを使用していきます。

Blenderでアニメーションを作成する

Blenderに武器アセットをインポートする

Unity側にインポートした武器アセットを、Blender側にもインポートしていきます。これはアニメーションをつくる際に、武器をつかむ指の曲げ具合等を調整するためです。

手順は以下の通りです。

1.[ファイル]->[インポート]->[FBX(.fbx)]の手順でフォルダを開く。

武器アセット_インポート手順1
手順1

2.使用する武器アセットが入っているフォルダを開く。
3.武器アセットを選択する。

Blender_武器追加
手順2

 

もしアセットが古かった場合、以下のようなエラーログが出ます。

Blender_インポートエラーログ
インポートエラーログ

そういった場合は下記のURLに飛びFBXコンバーターをダウンロードしてください。

FBXコンバーター

FBXコンバーター_ダウンロードサイト

FBXコンバーターのアイコンは以下の通りです。

FBXコンバーター_アイコン
アイコン

使用方法は簡単です。以下の手順の通り武器アセットのコンバートを行ってください。

  1. 「Add…」をクリックしてコンバートしたい武器アセットを選択。
  2. コンバート後のバージョンが最新のものであるか確認。
  3. 「Convert」をクリック。
アセット_コンバート手順
コンバート手順

コンバートされた武器アセットは、コンバート後も元の武器アセットフォルダに保存されます。

以下がコンバートされたアセットが保存されているフォルダのアイコンです。

武器アセット_コンバート後_フォルダアイコン
アセット コンバート後 フォルダ

使用したい武器アセットがコンバートされていることが確認出来たら、先ほどご紹介した手順でBlenderにインポートしてください。

Blender_コンバート後アセット_追加手順
追加手順

武器に合わせてアニメーションを作成する

まず、武器モデルの大きさ・位置・角度は、人型ボーンがつかめるように任意の値で調節してください。

Blender_武器アセット調整前
調整前

3Dビューは平行投影モードの方が調整しやすいかもしれません。テンキーの「5」で平行投影モードに変更可能です。

武器に合わせる部分は主に「手のボーン」です。武器の大きさに合わせて指の関節の角度調節をして、武器を保持しているアニメーションを作り出します。

後ほどUnity側でも様々な調節を行うため、ひとまず上記のこぶしの様な形ができれば大丈夫です。

Blenderのテンキー操作こぶしの作り方のコツについては以下の記事をご覧ください。

【Blender】視点操作方法と人型アニメーションをつくる際のコツ

 

手の形が決まったら好きなアニメーションを作成していきましょう。

*手の形は変えずに他のボーンのポーズを調整していってください。手のボーンをコピー&ペーストすると楽です。

ボーン_C&P
ボーン コピー&ペースト

今回は以下のような待機モーションを作成し、Unityちゃんに適用していきます。

BlenderからUnityへアニメーションをエクスポートする際に、ポーズの調整用にインポートした武器アセットは削除しておいてください。

削除しておかないと武器アセットも一緒にUnityにエクスポートされてしまいます。

BlenderからUnityへアニメーションをエクスポートする手順については以下の記事をご覧ください。

Blenderを使ってUnityにアニメーションを追加する手順

Unityで位置調整

武器アセットのTransform調整

使用する武器アセットにもよりますが、以下のように武器が大きい場合があります。

Unity_武器アセット_初期_大きさ
武器アセット 大きさ

細かい調整に入る前にひとまず大まかな位置・大きさ調整をしておきます。とりあえずの大きさの目安はBlenderで調節した値と同様の値がベターかと思われます。

Unity_武器アセット_調整後_大きさ
武器アセット 大きさ・角度 調整後

アセットの子オブジェクト化

使用したい武器アセットを、Unityちゃんの子オブジェクトにしていきます。今回はBlender側で、左手で武器を持つように調整したため、武器アセットをUnityちゃんの「左手」の子オブジェクトにします。

ドラッグ&ドロップで簡単に子オブジェクト化できます。

*「左手」のオブジェクトは子オブジェクトの中でも奥深くにいるので注意してください。

子オブジェクト化すると以下のように武器オブジェクトもUnityちゃんの動きに合わせて、動作していくようなります。

子オブジェクト_連動
子オブジェクト化 連動

ゲームを実行して調整する

作成したアニメーションの動かし方はお好きな方法で構いません。アニメーターコントローラー、タイムラインの使用方法については以下の記事をご覧ください。

今回はUnityちゃんに付属しているアニメーターコントローラー「UnityChanLocomotions」とスクリプト「SampleUnityChanController」を使用していきます。

Idle」に先ほどBlenderで作成した待機モーションを入れます。

AnimatoController_中身_Idle
AnimatoController

ゲームを実行してみます。

正面から見る分には問題なさそうですが、別角度から見ると粗が出ていることが確認できます。

 

ゲームを一時停止している状態で武器アセットのTransformの細かい調整を施していきます。

Unity_ゲーム_一時停止_調整前
Transform 調整前
Unity_ゲーム_一時停止_調整後
Transform 調整後

*位置、角度だけでなく手に合わせて、大きさも少し変更しています。マニピュレータを使用すると調整しやすいです。

武器位置調整
マニピュレータ

 

値の設定ができたらTransform右側上部にある歯車のマークをクリックして「CopyComponent」を選択してください。

Unity_CopyComponent_手順
CopyComponent

その次にゲームを終了し、武器アセットを選択して同様に歯車をクリックして「PasteComponentValue」を選択してください。

Unity_PasteComponentValue_手順
PasteComponentValue

これで先ほど調整した武器アセットのTransformが、デフォルトで反映されている状態になりました。

 

再びゲームを実行してみましょう。

Unity_待機モーション_正面_修正後
待機モーション 調整後

人差し指が埋もれていたり、少し手の甲をはみ出たりと若干の粗さは残るものの、武器を持たせることができました。

 

*おまけ

Attack3_shin

一度武器のTransformが調整できると、上記のようなアニメーションも簡単に作成できます。よろしければチャレンジしてみてください。

回転アニメーションについては以下の記事をご覧ください。

【Blender】180°以上の回転アニメーションをつくる際の注意点

まとめ

いかがでしたでしょうか。今回はUnityちゃんに武器を持たせてみました。アセットストア、Blender、Unityと横断的にご説明してきたため混乱された方もいらっしゃるかもしれません。申し訳ありません。

アニメーションの作成、細かいTransformの調整は少し手間がかかりますが、キャラクターの動きの質はかなり向上します。

キャラクターを好きに動かしたい方、様々なモノをキャラクターに持たせたい方は、今回ご紹介した手法を応用して、アニメーションの動きの幅を広げてみると面白いかもしれません。

Blenderにおけるアニメーション作成、Unityのアニメーション機能について興味を持った方はこちら↓


UnityChan_武器_アイキャッチ

この記事はいかがでしたか?
もし「参考になった」「面白かった」という場合は、応援シェアお願いします!