今回は Anima 2D
の後継、Unity 2D Animation(V2)
でボーンベースで動くキャラクターを作成してみます。
なお今回は長くなりすぎたのでIk周りはやりません。セットアップまでです。
スケルタルベースのキャラクター表現
最近のゲームでよく見るスタイルの、スケルタル(骨格)ベースのキャラクター表現です。スプライトを差し替えるスプライトアニメーション
と比較して、高解像度なスプライトで高フレームレートなアニメーションを実現出来るのが特徴です。
この表現を行う為のツールとしてAnima2D
がありましたが、Unityに吸収されUnity 2D Animation
パッケージとUnity 2D IK
パッケージという形で統合されました。
で、今回 Unity 2D AnimationがVersion 2にアップデートされたので、使い方を見てみます。*1
パッケージの導入
パッケージはPackage Manager
から導入出来ます。GUIで変更可能で、JSONを書き換える必要はありません。
今回の操作ではPSD Importer
も使用します。これはスプライトのレイアウトを云々するのを楽にしてくれます。
PSBをインポート
最初にPSDをPSBにしてインポートします。
PSDはパーツごとにレイヤーを統合しておきます。全て統合しても利用は可能ですが、可動部が非常に大きいパーツ(例えば腕や足、頭)は分割してあるのが良さそうです。
レイヤーをまとめたら、PSDではなくビッグデータ(PSB)フォーマットで出力し、Unityプロジェクトへインポートします。PSD Importer
が導入されていれば、これでスプライトは自動的にスライスされ、分割で配置されます。
なお今回のアプローチではCharacter Rig
が必ず必要です。
場合によってはPivotの位置をキャラクターの足元になるように(目分量で)調整して、次はスプライトのセットアップです。
スキンのセットアップ
スプライトエディターからSkinning Editor
を開きます。この項目がない場合は2D Animation
パッケージが多分無いです。
ボーンのセットアップ
最初にボーンをセットアップします。
Create Bone
でボーンを作っていきます。このボーンが、まさにキャラクターの骨になります。
ボーンはボーンの先端から少し離して配置することも出来ます。例えば肩や足、髪の毛など、腰の影響を受けるが接触はしていないというパーツは、一旦離して配置します。この場合、最後にクリックしたボーンの影響下になります。
なおボーンを設定すべきスプライトが影に隠れて見えにくい場合は、右上の項目からスプライトを個別に表示することも可能です。他にもダブルクリックでメッシュを表示したりもできます(上では自分はダブルクリックで腕を表示しています)
ジオメトリのセットアップ
次にスプライトを変形させるために、メッシュを作成します。これは自動で作ることが出来ます。
Auto Geometory
を選択後、Generate For All Visible
でメッシュが自動的に生成されます。ついでにボーンに紐付いたウェイトも自動的に設定されます。
自動生成が気に入らなければ(変形するメッシュの密度が足りないようなら)手動で調整することも出来ますが、今回はしません。
ウェイトのセットアップ
メッシュとウェイトを自動生成すると、予想外のボーンに対してウェイトがかかっていたりします。例えば腕のボーンが体にかかっていたり、その逆だったり。これを放置すると、ボーンを動かした時にメッシュが奇妙な変形を起こす事になります。
例えば下の図の場合、腰のボーンの影響を受けているため二の腕がたるんでしまっています。
なのでメッシュが影響を受けるボーンを限定します。
ボーンの影響はBone Influence
でメッシュ毎に設定することが出来ます。これでメッシュが影響すべきボーンを限定してやれば、上のような問題は起こらなくなります。またブラシでボーンの影響の強度を調整したりもします。
キャラクターを配置
セットアップが完了したら、シーンに配置します。
PSBでインポートしたファイルをそのままシーンに配置すれば、ボーンの設定されたキャラクターとして配置して、FKで各パーツを動かせます。
なおキャラクターが大きすぎたり、キャラクターの中心位置が微妙な場合、大きさはPixel Per Unit、中心位置はPivotで調整します。
感想
スプライトの配置や描画順がサクッと出来て、実際のレイアウトを確認しながらボーンを調整してジオメトリとウェイトが自動でできるのは楽で良いです。次はキャラクターを動かしたりアニメーションさせたりします。
なお「試したいけどPSBなんて持ってないよ!」という場合は、下のプロジェクトからサンプルを入手出来ます。
しかし何故PSBなんでしょう。PSDだったら多くのツールで編集が可能なのに
関連
PSD Importerが使えない場合