原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】複数のアニメーションをLayerを使ってブレンドする

大寒波

数年に一度の大寒波でこの三連休は一歩も外へ出ていない皆さんこんにちは。子供頃は雪が降ると大はしゃぎだったのに、大人になると憂鬱で仕方ないのは何故でしょう?

 

結果発表

unity1weekの評価期間も終わり、私の作品についても結果が発表されました。

相変わらず各指標が3点台という箸にも棒にも掛からぬ結果になったわけですが、振り返るともっと演出に力を入れたらよかったなぁとか、最初のステージをもっと簡素にしてボスを早めに登場するようにしたら良かったなぁとか、色々と反省点が思い浮かびます。

unity1weekのゲームを実況している方の配信を見たのですが、私のゲームに関しては、かなり簡単だと思っていた最初のステージすら苦戦しており、見せ場のボス戦にも到達できずじまいで終わっていました、こちらの意図通りに操作してもらう難しさを学びましたね。

 

unityroom.com

 

アニメーションを設定する

そんな今回の作品。いわゆるランゲームというやつで、キャラクターが走りながら敵を攻撃しゴールを目指す、という形式なのですが、自機となるキャラクターには「Cyber Girl」というアセットを使用しています。

assetstore.unity.com

このアセットを使用した理由は、unityroomに投稿されているゲームやtwitter等で目にする個人製作のゲームの殆どで主役となるキャラクターには女性が起用されていることに気づいたからです。

ゲーム制作者って圧倒的に男性が多いと思うのですがね、何故か主役が女性のゲームを作っている方が多い気がします。

理由は分かりませんがとりあえず需要があるのだろうと言う事で、元々制作中の脱出ゲームの為に購入していた「Cyber Girl」のモデルを自機とすることにしました。

 

しかし、このアセットはモデル単体のみが販売されているアセットなので、それだけではでくの坊のまま、当然ながら走るとか、攻撃するなんてアニメーションは自分で設定することになります。

 

f:id:Karvan:20210112210955p:plain

 アセットストアから購入した段階のモデル

 

なので、それらのアニメーションの方もアセットストアから購入しました。

プロモーションの動画を見ても滅茶苦茶カッコいい。

assetstore.unity.com

www.youtube.com

 

今回はこのアセットに梱包されている「走る」アニメーションと

f:id:Karvan:20210112211255g:plain

 

「攻撃」アニメーションを先程のCyberGirlのモデルに設定することにしました。

f:id:Karvan:20210112211400g:plain

 

動作をブレンドする

先程の3DモデルにはAnimation TypeとしてHumanoidが設定されているので、通常は設定したいアニメションをAnimtorで設定するだけで使用することが出来るのですが、今回の場合は「走りながら敵を攻撃」したいので「走る」動作と「攻撃」動作をブレンドする必要がありました。

 

こういった場合は「走る」動作をベースに「攻撃」動作を加算して作る方法があります。

まず、Animator ControllerのLayerを「走る」動作、「攻撃」動作それぞれで分けて設定します。

 

f:id:Karvan:20210112211635p:plain

 Base Layerに「走る」動作、Attack Layerに「攻撃」動作を設定します。

その後、Attack Layer側のBlendingに「Additive(加算)」を設定し、Weightで重みを設定します。

 

実際に動かしてみると・・・

f:id:Karvan:20210112211815g:plain

・・・ん~、なんか変。攻撃の動作に走っているときの姿勢が加わっているので前傾姿勢過ぎて攻撃している感がありません。

良く考えると「走る」動作に必要なのは「両足」だけなので、それ以外部分は「攻撃」動作させれば良いことに気づきます。

 

AvatarMask

こんな時はAvatarMaskを使って特定の箇所のボーンの動作を上書きするようにします。

 Avatar MaskはProjectタブで右クリック→Create→Avator Maskで作ることができます。

f:id:Karvan:20210112212110p:plain


Avator Maskでは四肢と頭、胴体それぞについてマスクするか設定できるので、今回は両足をマスクすることにします。

 f:id:Karvan:20210112212135p:plain

 

Attack Layer側のBlendingに「Override(上書)」に変更し、Maskの項目に作成したAvator Maskを設定します。

f:id:Karvan:20210112212201p:plain

 

これで実行すると

f:id:Karvan:20210112212245g:plain

 それっぽい動作をさせることが出来ました。めでたしめでたし。

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。