【Unity】ボーンを入れてオブジェクトのアニメーションを作成する方法

ボーンでアニメーション作成 Unity

こんにちは、ともくんのゲーム作り部屋にようこそ!

このページでは、

「Unityのボーンってなに?」

「ボーンを使ってアニメーションを作成したい!」

というお悩みの方に向けた内容となっています。

Unityでは、ボーン(Bone)を使ってキャラクターなどの骨格を作ることができます。

ボーンは「骨」という意味ですが、静止画にこのボーンを入れていくことで、実際の人と同じで、手足など骨が入っているように動かすことができるようになります。

また、ボーンにアニメーションで動きを付けてあげることで、キャラクターが歩いたり、泳いだりといった動きを作れるようになります。

そこでこのページでは、Unityで設定できるボーン(Bone)という機能について、どういうことができるのか、またボーンを使ったアニメーションの作成方法をまとめていきます。

この記事を書いた人

ゲーム作りを学び始めた一児のパパです。
このブログは、子供から「ゲームを作ってみたい!」と言われ、非プログラマーでゲーム作りをしたことない僕が、ゲーム作りの本を読んで独学でゲーム開発を学んでいるブログです。
同じように初めてゲーム作りをしている方と一緒に学んでいけるようなブログに出来たらいいなと思っています。
また、「このコードはおかしい」とか「もっと良い書き方があるよ!」などあれば、どんどん指摘して頂けると助かります。

ボーン(Bone)とは?

まずは、Unityで設定できるボーン(Bone)について紹介していきます。

骨格を作ることができる機能

冒頭でも解説した通り、Unityのボーンはその名の通り「骨」を意味していて、オブジェクトに対して骨格を作ることができる機能です。

もう少し簡単に言えば、キャラクターなどの静止画に骨を入れることで、手足や首などの体を動かす仕組みが作れるようになります。

例えば、腕の骨を回す処理を作れば、プレイヤーが腕を回してくれるようになったり、足の骨を動かす処理を作れば、プレイヤーの足を動かせるようになります。

このように、Unityではボーンを使うことで、よりキャラクターの動きを細かくリアルに設定できるようになります。

ボーンを動かしてアニメーションを作れる

オブジェクトにボーンを入れて、そのボーンを回転させて動かす処理をアニメーションの機能で作ることができます。

Unityで2Dアニメーションを作る場合、基本的には静止画を少しずつ動かした画像を準備して、それらをアニメーションのタイムライン上にセットしていくことで、パラパラ漫画のような仕組みで作ることができます。

しかしこの方法だと、様々なアニメーションを作っていく場合には、それぞれのアニメーションに対応した静止画を準備していかなければいけません。

一方で、オブジェクトにボーンを設定している場合は、ボーンの回転量をアニメーションのタイムライン上で変動させていくことで、プレイヤーなどの体を動かすアニメーションを作れるようになります。

パラパラ漫画とは異なり、ボーンを回転させるだけで様々なポーズを作っていくことができるというメリットがあります。

ボーン(Bone)を使って2Dアニメーションを作成する方法

ここからは、実際にUnityでボーンを使って2Dアニメーションを作成する方法を紹介していきます。

スプライト画像を準備する

まずは、ボーンを入れるキャラクターなどのスプライト画像を準備します。

ここでは、Photoshopを使って以下のような簡単な棒人間のキャラクターを作ってみました。

Photoshopで作成する場合、パーツ毎にレイヤーを分けて作成し、これらを「PSB」というファイル形式にして、レイヤーも一緒にする設定で保存しておきます。

そして、このPSBファイルをUnityにインポートしてあげることで、Photoshopで分けたレイヤーに沿って、それぞれのパーツが子オブジェクトに入ったPrefabファイルが作成されます。

このように、パーツ毎に切り分けてUnityに取り込むことで、後ほどボーンを使ってそれぞれのパーツを動かす際に非常に効率的になります。

なお、PSBファイルをUnityにインポートする際は、「2D PSD Importer」が必要になるため、インストールされていない場合は、Package Managerからインストールしましょう。

骨格を作っていく

次に、Unityに取り込んだ素材に、ボーンを入れて骨格を作っていきます。

骨格を作る場合は、インポートした画像を選択して、インスペクターウィンドウの「Open Sprite Editor」を選択します。

Sprite Editorが開いたら、上のメニュー部分から「Skinning Editor」を選択します。

すると以下の画面になるので、ここで骨格を作っていくことになります。

流れとしては、

  • ボーン(Bone)を設定する
  • ジオメトリ(Geometry)を作成する
  • Weightを調整する

となります。

ボーン(Bone)を設定する

ボーンの設定は、「Bones」という部分から行います。

  • Edit Bone:ボーンの位置や長さを編集する
  • Create Bone:新しくボーンを生成する
  • Split Bone:ボーンを二つに分割する

ボーンを新たに設定する場合は、「Create Bone」を選択して、マウスでボーンを設定し始める場所をクリック、終わる場所でもう一度クリックしてあげると、以下のようにボーンが設定されます。

また、クリックし終わった場所からもう一度ボーンを生成することで、ボーンを繋げて設定することができます。

なお、ボーンの設定を終わらせる場合は、マウスの右クリックを押します。

この作業をキャラクターの腕や足などの骨となる部分に、それぞれ設定してあげます。

設定が終わったら、右上にある「Visibility」を押して、ボーンの階層と名前を変更しておきます。

階層を作っておくことで、繋がっているボーンを一緒に動かすことができます。

ここでは、以下のように設定してみました。

ジオメトリ(Geometry)を作成する

以下のGeometryという部分で、レイヤーごとにメッシュを作っていく作業を行います。

  • Auto Geometry:ジオメトリを自動で生成する
  • Edit Geometry:ジオメトリの頂点や線を編集する
  • Create Vertex:新しく頂点を生成する
  • Create Edge:新しく線を生成する
  • Split Edge:線を分割する

このジオメトリを作成することで、ボーンを動かすとキャラクターの画像部分も動くようになります。

ここでは、ジオメトリを自動で生成したいので、「Auto Geometry」を選択して、「Visibility」「Sprite」のタブを押して、ジオメトリを作成するスプライト画像を選択してあげます。

また、Visibilityの下にAuto Geometryを使った際の設定項目が表示されます。

  • Outline Detail:輪郭の精度を決める項目で、メッシュの外側の頂点の数を設定する
  • Alpha Tolerance:設定した値よりも低いアルファ値を持つ部分を透明にする
  • Subdivide:メッシュの内側に頂点を追加して線を増やして敷きつめる
  • Weights:自動でWeightが設定される

それぞれの項目を設定して、「Geometry for Selected」を選択すると、それぞれのパーツの画像に対してジオメトリが作成されます。

この時点で一度、動きを試してみたいので、「Pose」の中にある「Preview Pose」を選択します。

そして、ボーンを回転させてみると、

上のようにキャラクターが動くようになりました。

なお、最初のボーンの位置に戻す際は、「Restore Pose」をクリックすると戻ります。

Weightを調整する

Weightとは、ボーンを動かした際にジオメトリに対して、どの程度の影響(重み)を与えるかを決めている設定で、以下の「Weights」から行います。

  • Auto Weights:自動でボーンとジオメトリの重みを調整する
  • Weight Slider:選択したジオメトリと頂点のボーンの重みをスライダーで調整する
  • Weight Brush:選択したジオメトリの頂点のボーンの重みをブラシで調整する
  • Bone Influence:選択したスプライトに影響を与えるボーンを選択
  • Sprite Influence:選択したボーンに影響を与えるスプライトを選択

先ほど、棒人間の腕や足のボーンを動かした際に、胴体部分が一緒に引っ張られてしまっておかしい部分があるので、ここでは引っ張られないように調整してみます。

「Bone Influence」を選択して、胴体の部分(ジオメトリ)をマウスでダブルクリックします。

右下部分にこのジオメトリに影響しているボーンが表示されるので、腕と足に繋がっているボーンを選択して、-ボタンを押すことで、そのボーンをこの胴体の影響から外すことができます。

これでもう一度ボーンを動かしてみると、

胴体が引っ張られずに腕と足を動かすことができるようになりました。

他のジオメトリでもおかしい部分は調整を行い、終わったら右上の「Apply」を押してウィンドウを閉じます。

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

キャラクターのオブジェクトにボーンを設定することができたので、最後にアニメーションを作成していきます。

キャラクターをシーン内に配置して、オブジェクトを選択した状態でメニューの「Window」から「Animation」の中にある「Animation」を選択します。

Animationウィンドウの中に表示されている「Create」を選択して、アニメーションを作成していきます。

今回は、キーフレームに先ほど設定したボーンを回転させる処理を設定したいので、Animationウィンドウの左側の「Add Property」を選択して、それぞれのボーンの「Transform」にある「Rotation」の項目を+ボタンで選んでいきます。

ここでは、以下のように8個のボーンを設定しています。

次に左側の録画ボタンをクリックして、キーフレームを設定したい時間軸の部分を選択します。

この状態でシーンウィンドウに戻り、それぞれのボーンの回転量を変更してあげると、キーフレームにその回転量が自動で設定されます。

同じように他の時間軸を選択してから、ボーンを回転させてキャラクターの動きを設定してあげることで、それぞれのキーフレームでの回転量を指定していくことができます。

設定できたら、もう一度録画ボタンを押して停止しておきます。

例えば、キーフレームを数か所設定するだけで、

上記の体操のような動きを作ることができたり、

歩いているような動きも簡単にアニメーションで作ることができます。

なお、アニメーションに関しては、以下の記事も参考にしてみてください。

まとめ

このページでは、Unityでボーンを使って2Dのアニメーションを作成する方法についてまとめていきましたが、いかがでしたでしょうか?

Unityでは、ボーンをキャラクターなどのオブジェクトに設定することで、人間と同じように骨格を組んで骨を動かすという仕組みを作ることができます。

また、ボーンを回転させるだけで腕や足を自由に動かすことができ、アニメーションの機能を使って様々な動きを作ることができます。

そのため、ボーンを使うことで、ゲーム内でプレイヤーを操作する際に、よりリアルな動きを与えることができます。

最後までお読みいただきまして、ありがとうございました!

コメント