Unity(ゲーム制作) PR

【Unity】Humanoidのアニメーションを部分的に動かす方法

Unity-Humanoidのアニメーションを部分的に動かす方法アイキャッチ画像
記事内に商品プロモーションを含む場合があります

こんにちは。ラルトン(@raruton_blog)です。

Unityの3Dゲームを作っているときに、「手だけは別の動きをして欲しいな」などと思ったことはないでしょうか。

例えば、歩いているアニメーションをしているときに、手だけは銃を撃つアニメーションをしているなどです。

そこで本記事では、このような体の一部分だけ別の動きをさせる方法を紹介します。

この記事を読むと、体の一部分だけ特定のアニメーションをさせる方法が分かります。

3Dモデルを動かす方法については、以下の記事を参考にしてください。

【簡単】Unityで3Dモデルを動かす(アニメーション)させる方法のアイキャッチ画像
【簡単】Unityで3Dモデルを動かす(アニメーション)させる方法 3Dモデルってどうやって動かすの? どうやってアニメーションを適用させるの? アニメーションの使い方がわからない... ...

やりたいこと

今回は走っているアニメーション魔法を放っているようなアニメーションを使って実装してみたいと思います。

UnityChanが走っているアニメーション
UnityChanが走っているアニメーション
UnityChanが魔法を放っているアニメーション
UnityChanが魔法を放っているアニメーション

下半身は走っているアニメーション、上半身は魔法を放っているアニメーションを使って、走りながら魔法を放っている動きを作ろうと思います。

UnityChanが走りながら魔法を放っているアニメーション
完成図

作成手順

アバターマスクの作成

まずは、アバターマスクを作成します。

Projectウィンドウで

Create > Avatar Mask

アバターマスクを作成します。

Unity-アバターマスクの作成

今回は上半身だけ魔法を放っているアニメーションにしたいので、名前を”UnityChanUpper”としました。

そして、UnityChanUpperのInspectorウィンドウのHumanoidを以下の様に、動いてほしい部分だけ緑色にします。

Unity-アバターマスクの設定

これで、アバターマスクは完了です。

アニメーターコントローラーで新しいレイヤーを作成する

続いて、Animator Controllerを開きます。

Animator Controllerが開けたら、

左上にあるLayersを選んで、+ボタンを押して、新しいレイヤーを作成します。

名前は”Upper Layer”としました。

Unity-アニメーターで新しいレイヤーの追加

続いて、Upper Layerの歯車マークを押して、

Weightを1に、Maskは先ほど作成したアバターマスク(UnityChanUpper)を選択します。

そして、BlendingをOverrideにします。

Unity-アニメーターで新しいレイヤーの設定

アニメーションをセットする

最後にアニメーションを各レイヤーにセットしていきます。

まず、Base Layerには走っているアニメーションを設定します。

Unity-ベースレイヤーのアニメーションを設定する

続いて、Upper Layerには魔法を放っているアニメーションを設定します。

Unityアッパーレイヤーのアニメーションを設定する

もし、条件付きでアニメーションを遷移させたい場合は、Base LayerUpper Layerとで、同じ条件でアニメーションを切り替わるようにすれば大丈夫です。

これで完成です!

UnityChanが走りながら魔法を放っているアニメーション

まとめ

いかがだったでしょうか。

今回の記事では、体の一部分だけ別のアニメーションをさせる方法について紹介しました。

今回使ったアニメーションは全て、Mixamoというサイトから持ってきました。

今回使用したアニメーション以外にも、豊富なアニメーションが無料で使用できるので、気になった方はアクセスしてみてください。

他にも、Unity Asset Stroreで無料のアニメーションがたくさんあります。どちらもうまく活用しましょう。

ここでは、使いやすいアニメーションがたくさん入っているBasic Motions FREEを掲載しておきます。

それでは!

© Unity Technologies Japan/UCL

【Unity】無料&有料GUIアセットおすすめ35選!!のアイキャッチ画像
【Unity】無料&有料GUIアセットおすすめ35選!! こんにちは。ラルトン(@raruton_blog)です。 Unityでゲームを作る際に、デフォルトのUIを使っていませんか? ...