【Unity】2D:スプライトでスケタルアニメーションを作成する

メモ。
2Dスプライトを用いてスケタルアニメーションを作成する方法。

■やり方

◇画像インポート

まず、画像をインポートする。(Photoshopのpsd,psbフォーマット)
(※レイヤー毎に体のパーツを分けておくと後の作業がやりやすい)

画像のインスペクターを開いて、インポーター設定を変更する。
LayerManagementページに切り替えるとレイヤーを設定して有効・無効を制御できるようになる。

UnityEditor.U2D,PSDImporter

◇メッシュ、ボーン、ウェイトを仕込む

プロジェクトエディターで、インポートした画像のインスペクターにあるOpen Sprite Editorボタンを押して、スプライトエディターを開く。

スプライトエディターのツールバー>可視性 をクリックするとボーンとスプライトのリストが開く。

<ボーン設定>
手始めに左ツールメニュー>ボーン>Create Bone を選択し、ボーンを作成していく。
操作は、マウス左ドラッグで、ボーンを作成、右ボタンで確定。
また、ボーン作成時、ボーンの根っこ部分を関節に合わせると動かした時の都合がよくなる。

<ウエイト設定>
次に左ツールメニュー>ウェイト>Auto Weights で、各ボーンにあわせてウェイト値を自動的に適用する。
Associeite Bonesを有効にして、Generate Allボタンをクリックして実行する。余白部分をマウス左ボタンダブルクリックして、全選択解除してから実行するとトラブらないばず。

ウェイト

個別でウェイトを付ける場合は、下記の手順で行う。
・ボーン選択は、クリックする。(or Boneリストで選択)
・メッシュ選択は、ダブルクリックする。(or スプライトリストで選択)

ウェイト値が複数のボーンに適用されてしまったときの切り分け方法は、左ツールメニュー>ウェイト>Bone Influenceを利用する。ウェイト値不要なボーンを選択して-ボタンをクリックして削除しておく。

Bone Influence

ウェイト値の微調整は、左ツールメニュー>ウェイト>Weight Blushで行う。ポイント毎に塗分けることで、ウェイト値を調整できる。
1つのボーンにウェイト値を100%割り振りしたい場合は、Hardness:100 にしてから塗る。

Weight Blush

■IKを適用する

状態は、ヒエラルキーウィンドウのリストで確認。
一番上のプレイヤーオブジェクトを選択して、インスペクター>コンポーネントで、IK Manager 2Dを選択実行。

プレイヤーオブジェクトのインスペクター

IK Manager 2D>IK Solversリストの+ボタンで、Chan(CCD)を追加する。
するとヒエラルキーで、プレイヤーオブジェクトの下層に
New CCDSolver2Dが作成される。

<設定>
Effecter:手首のボーンを指定
Target:”Create Targetボタンを押すと自動的に作成される”
Chane Length:3(IKの影響が、どこまでのボーン範囲を指定)

なお、腕全体(上腕、下腕、手)にIKを適用する場合、Constrain Rotationを無効にしておく方が都合がよい場合あり。手首が変な変形をしないように。

<Tips>
人間の関節を設定する場合は、IK Manager 2D>IK Solversリストの+ボタンで、Limbを追加する方がシンプル。(腕や足の関節は、この設定の方が簡単にできる)

New LimbSolver2D>インスペクター
Create Targetボタン

IKを操作する場合は、余白部分で選択解除してから行う。
先端の「〇」部分をマウス左ボタンでつかんで操作する。

IK操作

なお、FK、IKの切り替え、または、FK・IKのブレンドは、親オブジェクトのインスペクター>IK Manager>IK Solvers>Weight で行う。
・IK:1 (IKの影響を受ける。ボーンの回転編集不可)
・FK:0 (IKの影響を受けない。ボーンの回転編集可能)

FK・IKをブレンドする時は、キーフレームを適用してから。するとよい。

インスペクター

脚と足に設定する場合は、値を調整しておくと、ルートを移動して、屈伸した時、足の位置がズレなくなる。
・Iterations:50
・Velocity:1

■各スプライトのPivotを設定

スプライトシートがある場合は、スライスする時にPivot位置を選択する。調整は、スプライトシート全体的に適用される。

また、カスタムで、個別にPivot位置を調整できる。カスタムの場合は、スライス1つづつ設定可能。(一括設定ははできなかった)

スプライトエディター>Sprite Editop

左ツールメニュー>Set Pivot を選択して、編集画面の◎をマウス操作で移動する。

スプライトエディター>Skinning Editor

■部位変更

スプライトを別のスプライトに入れ替えることができる。

・アセット>2D>Sprite Library Assets
 Sprite Library Editor(カテゴリ、ラベルを編集)

・プレイヤーにコンポーネントを追加。(インスペクター)
 Sprite Library

・変更したい部位のコンポーネントを追加。(インスペクター)
 Sprite Resolver
 ※部位変更を設定し、キーフレームを打つ。

Sprite Resolver.Sprite.Hash にキーを打つ(K)

アニメーションウィンドウ

■当たり判定(コリジョン)

プレイヤーオブジェクトを選択した状態で、インスペクター>コンポーネントボタンをクリックし、Capsule Collider 2D を追加適用して、Colliderのサイズ、位置調整を行う。

Capsule Collider 2D
インスペクター>Capsule Collider 2D


■参考動画

以上。

この記事が気に入ったらサポートをしてみませんか?