見出し画像

Unityでキャラを走らせる

以下の動画を参考に進めました

細かな試行錯誤はさておき、Unityでのアニメーション手順だけをメモします。

Unityの設定をする

パッケージマネージャで2D Animationが入っているかチェックします。
2D PSD importerが入っているかも確認します。

画像データを準備する。

画像データは、.psbの形式でなくてはいけません。
と動画内では言いますが、psdでもよさそうです。

動画内では、Unityのバージョンアップでpsdでも対応できるといいですねと、言及されていますので。とりあえずpsbでいれてみました。

レイヤの分けられたジャケットのお兄さんを動かします
レイヤがしっかりわけられています。

これを、Unityのプロジェクトにドラッグすると・・・

各パーツそれぞれが分けられて格納されます
psbでインポートした状態、Layer Importのコンポーネント以下がある。

psdで試してみましょう

ファイルのインスペクターをチェックします

デフォルトのインポートでは
レイヤーがわかれていないが・・・
インポータを変更すると
バッチリ分かれてる!

しかし、レイヤー名で怒られます。

psbでは今回怒られなかったので、psbのデータで作業をやります。

スプライトエディタを開き
Skinning Editorを開きます
可視性を開くと、レイヤが分かれているのがわかります!
Create Boneでボーンを作りましょう
軸を選んで子ボーンを展開することができます

絵とボーンをあわせましょう。

AutoGeometry→Generate For All Visible
いろいろいじって、もとに戻したくなったらRestore Pose

まあ、思うようには動かないですよね。
調整していきましょう。


頭を動かすと、胸や腕もついてくる・・・
BoneInfluenceをチェック。頭のボーンはbone_2が影響している。bone_2ってなんだ?
作業しやすいようにboneの名前を変えます
boneの名前がわかりやすくなった
上半身のスプライトにheadのボーンを影響させている。ので、これをマイナスボタンで削除

頭だけうごかしたいのに、まだうまくいかない。
ボーンの親子関係を見直すと、頭だけが動くようになる。

スプライトのインフルエンスだけでなくボーンの親子関係も見ましょう


スプライトを超えてボーンを貼ったら後で困る
切り直すのがよい。

スプライトそれぞれ、ボーンそれぞれ反応させたくないところを消してゆく

微調整

ボーンに近い頂点だけが反応しているので

足など簡単に崩れるのだ
Subdivideつまみをもう少しあげて再度Generat


Weight SliderをSmoothにしてAmountを変えると、遠くの頂点にも影響を与えることができる


Weight Brushを使うと、頂点ひとつひとつに、影響度を変えることができる

てのひら周辺は腕の影響を減らす
腕を伸ばしてもてのひらは伸びない

などの工夫をする

ウェイトスライダーでおおまかな設定をしてWeightBrushで細かい設定をする。

編集終わったら、[適用]ボタンを押下で保存!

FKとIK

FK = Forward Kinematics
IK = Inverse Kinematics
どちらも関節を動かす手法だが、FKは細かく設定、IKは楽にざっくり設定可能

では、ゲームのシーンにキャラクターを配置してみましょう

と、いきたいところですが・・・

Boneの名前を変えることで、スクリプト側にエラーが?

一度、再生してみると、出なくなりましたので・・・大丈夫なのでしょう。

シーンビューに出してみました。もし真っ黒なら、カメラの、グローバルライトの設定をチェックしましょう

顔の表情差分があるようなら、ここで非表示にします。

さて、このお兄ちゃんにアニメーターを追加

あとでアニメーションをつけますので

これにIK Managerを追加します

[IK Manager 2D]を追加
一番簡単なLimbを追加する(ふたつの関節をひとつのコントローラーで動かそう)
LimSolver2Dのオブジェクトが作成される
Oh 逆関節だぜ
Flipにチェックをいれる


正しい関節になりました

この調子で、両足のIKコントローラを作りましょう

できました

顔の差分などを切り替えるには

顔の差分などをやる場合は、[SpriteSwap]という機能を使います。

Sprite Libraryを追加してほしい

作成→2D→SpriteLibrary Assetを追加しよう

追加したら
スプライトライブラリエディタを開く
この中にカテゴリとスプライトを追加していく

ライブラリを、本体にアタッチしたら、

Sprite LivraryコンポーネントにSpriteLibraryをアタッチ

差分を追加したいオブジェクトにSpriteResolverコンポーネントを追加

SpriteResolverコンポーネントを追加
他の顔は非表示で、見えてるオブジェクトだけにコンポーネントをつければ良い
これでスクリプトなどからも変更可能になる

アニメーション作り

歩くとはなにか。を知りましょう。
リチャードウィリアムスのWalk_Cycle

ANIMATORS SURVIVAL KITより
コンタクトとパッシングの繰り返しでアニメーションが作られる。

・体の位置の上下をふまえよう

キーとしては、右足4フレーム、左足4フレームの8フレームを作ろう

実際には48フレームで1周させよう。と、事前に数値を考える。

あとは、アニメーションを作っていこう。
・全身の上下運動のキーフレームを打つと、次のものが作りやすい

頭は,二個目のキーフレームでさがる,4個目のキーフレームであがる。

なんやかんや色々やって

明らかに、完成品として外に出してはならないアニメーションができました。
この子、バックしてない?

これはアカン。勉強が足りませんね。
以下を読んでアニメーションそのものを勉強する必要があります。

類似の別キャラクターにデータをコピーしたい場合、
SpriteEditorを開く。

Skinning Editorの下の方に、コピーRigがあるので、こちらで対処する。

コピーしたらエディタ画面は閉じて良い。別のスプライトを開きましょう

コピーした先では、IKmanagerなどは、コピー元のものを参照し続けていますので、そういったところも修正すると、キレイにコピーすることができます。


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