Unityには簡単に2D Animationを作る機能があります。その際SpriteEditorのSkinningEditorにてボーン等を設定しますが、SkinningEditor内の操作方法についての情報が少なかったので、情報をわかる限り備忘録としてまとめておきたいと思います。
検証環境
- Unity 2021.3.12f1 Appleシリコン LTS
ボーンを消す
ボーンを設定した後にボーンを消したい場合、deleteキーのみでは消せません。
EditBoneで消したいボーンを選択し、Cnt + deleteキーで削除が可能です。
ボーンを選択した状態でEdit > Deleteでも削除が可能です。
削除したいボーンの選択はひとつだけでなく複数選択でき、まとめて消すこともできます。
Spriteをレイヤー(パーツ)ごとに編集する
体や服のパーツが重なり、後ろに手や脚が隠れるなど、パーツに前後関係がある場合にレイヤーを分けてボーンを設定することで、アニメーションをより自然な動きにすることができます。※重なりがない場合はレイヤーを分けない方がボーンの設定はラクです。
ポイント
- 「.psb」でスプライトをインポートする。
- SpriteのInspector内のLayerImportのUseLayerGroupにチェックを入れる。
- SkinningEditorでVisibilityをクリックし、Spriteボタンを押す。
レイヤーごとに編集するためには「.psb」拡張子でSpriteをインポートする必要があります。私はCLIP STUDIO PAINTにて拡張子を変更しインポートしました。各レイヤーは重ねた状態でキャラクターの形にしておいてください。このとき各レイヤー名やSpriteのファイル名がアルファベット以外になっているとUnityのConsle内で警告が出ますのでご注意ください。
「.psb」拡張子のスプライトをインポートして、Scene内にドラッグします。SpriteのInspector内のLayerImportのUseLayerGroupにチェックを入れ、ApplyしたらOpenSpriteEditorを開きます。
SpriteEditorを開いたら、左上のタブからSkinningEditorをクリックし、上中央右側にあるVisibilityをクリック。設定されているBone、Spriteの一覧が画面右側に表示されます。レイヤーを確認する場合はSpriteをクリック。設定したいレイヤー(パーツ、Sprite)をそれぞれ選択することができます。Sprite名はインボート前に各レイヤー設定されているものがそのまま引き継がれ、Unity内では変更できません。
複数のレイヤーを選択し、まとめてボーンを設定することはできません。UseLayerGroupにチェックを入れると必ずレイヤー(Sprite)ごとに設定する必要があります。UseLayerGroupにチェックを入れない場合はレイヤーごとの編集はできませんが一塊のスプライトとしてボーンを設定することができます。全てのレイヤーごとにボーンを設定するのは少し手間に感じるかもしれませんが、メリットもあります(後述)。
BoneInfluenceの設定
AutoGeometryでボーンの影響範囲を設定すると、隣接する全てのパーツにボーンの動きが影響してしまいます。BoneInfluenceにてボーンの影響を設定することで影響範囲をコントロールできます。
上述の通りレイヤー(Sprite)ごとにボーンを設定しておくと、BoneInfluenceをとても簡単に設定できます。
左上のPreviewPoseにて設定したボーンを動かすことができます。後ろ脚に設定したピンク色のボーンを動かすとスカートが変形してしまうので、ボーンの影響を無くしたいと思います。
左側のWeightsからBoneInfluenceを選択します。影響を無くすor影響させるレイヤー(Sprite)を選択して画面右下に表示されるBoneInfluencesを確認します。この図ではスカートのレイヤーを選択すると、このレイヤーにスカートに設定したbone_9と両足の太ももに当たるボーンbone_10とbone_12が影響していることがわかります。
今回はスカートへの後ろ足による影響をなくしたいので、bone_12を削除します。bone_12を選択して右下の「−」ボタンをクリックします。
スカートへの影響がなくなり、スカートが元の形に戻りました。
さいごに
上記の他にもわかったことがあれば本記事に追記していく予定です。本記事がお役に立てれば幸いです。
コメント