Spine

Spineの使い方チュートリアル – 4

こんにちは!

この記事では、Spine公式チュートリアルに沿ってSpineの操作方法について覚書をおこなって行こうかと思います。

この記事では、公式のTutorial VideoとUser Guideを自分なりに噛み砕いて再度記事にしたものになります。

また、今回の記事はMac環境で制作を行っています。

公式User Guidはこちら

公式Tutorial Videoshはこちら

SpineUserGuide-Events

01.Events

Eventsは、各種処理のトリガーとして設定されます。

例えば、「足音」や「銃の発砲音」といったEventトリガーを設定してやることで後ほど、コード上などからそのトリガーにフックさせる形で処理を実行させることが可能です。

02.Setup

ここでは、イベントの設定方法について解説が行われています。

Tree中でEventsを選択します。

TreeViewの下部のNewEventボタンを押下します。

イベント名を入力してOKを押下します。

イベントの値には、

[Integer],[Float],[String]などの型の値を指定することが可能です。

(こちらのイベント発生時に値が返ってきます。)

03.Keying

イベントの発生を設定するにはAnimateモードで設定を行います。

任意のTimeLineに位置を進めます。

任意の値を入れます。

キーマークが更新されるので押下して保存します。

04.Responding to events

コードをこのように打ち込んで設定したeventの値を取得することができます。

SpineUserGuide-TransformConstraints

01.TransformConstraints

TransformConstraintsを使用するとボーンアニメ(回転、座標、スケール)

などの情報を他のボーンにコピーすることができます。

同期するパラメーターを限定することで面白い効果を得ることもできます。

例えば、回転のみ同期して座標は同期しないなど

02.Setup

TransformConstraintを適用したいBoneを選択します。

TreeView下部の[New]ボタン押下から[TransformConstraint]を選択します。

TreeViewのConstraints配下に選択したBoneのConstraintが作成されます。

また、新規BoneをConstraintのターゲットにしたい場合は、空白部分を選択します。

03.Mix

TransformConstraintの拘束度はTreeView下部のスライダーの値をいじって設定します。

ミックスが0の時は、対象ボーン自体のtransformを使いConstrauntの値は影響しません。

ミックスが100の場合は、対象ボーンのtransformがConstraintの元ボーンの値になります。

Linkslidersの値にチェックが入っていると各種Sliderの値が全て同じになります。

04.Offset

TransformConstraintには、Offsetのスライダーがあり

ここの値によって対象ボーンに設定した値が追加されます。

05.Match

TransformConstraint中の[Match]ボタン押下で最初に拘束されたボーンのタランスフォームにマッチします。

Offsetで設定された値を起点にしたい時に使用するようです。

先端にMatchする手順

この状態でMixを100に設定しても

Boneの先端が残り続けます。

06.Keying

Animateモードを選択します。

任意のTimeLine中でMixの値を変更します。

TransformConstraintの横キーのマークがオレンジになるのでクリックして値を保存します。

SpineUserGuide-InverseKinematics

01.InverseKinematics

通常のアニメ:フォワードキネマティクス FK

FKはトップダウン式のアニメになります。

例えば、「手」の前に「腕」を設定し「腕」を回転させると「手」が追従します。

全てのアニメーションに適応できますが、場合によってはキーの設定数が多くなるため工数がかかってしまいます。

例)腕以外の体部分を動かすときなど腕ボーンを継続的に動かす必要があるためキー設定数が多くなってしまいます。

ボトムアップアニメ:インバースキネマティクス IK

IKはボトムアップ式のアニメになります。

例)「手」にIKを設定した場合には「腕」がそれに追従する形で動きます。

IKはたくさんの利用用途があります。

例えば、歩行アニメで足の床貫通を防いだり(体が上下する動きなど)

SpineはFK、またはIKをミックスすることでBoneアニメーションを作成することが可能です。

02.Setup

IKは3本のBoneを使用します。

図では上から順番に

親Bone -> 子Bone -> ターゲットBone

となっています。

このように動きます。

それでは、設定方法について進めていきます。

IKを設定するには、まず親と子Boneを選択します。

New -> IK Constraintを選択します。

ターゲットボーンの作成には、既存のボーンをクリックか空白部分をクリックで作成が可能です。

03.MixingFK/IK

IKの影響度はIK ConstraintのMixの値を変えることで変更可能です。

Mixの値が0であれば、FKのみ

Mixの値が100であればIKのみのアニメーションになります。

Mixがそれ以外の場合であるならばIKとFKとのそのMix率の割合分のアニメーションになります。

こちらは、 FK時とIK時のBone位置が線で表示されます。

また、コンストライントが無効の場合はFKの位置でBoneが表示されます。

04.Keying

IK ConstraintのMixの値をAnimate中に変えることができます。

変えるとキーマークがオレンジになるのでクリックして保存します。

また、Mixの値はアニメーションカーブを適用することが可能です。

SpineUserGuide-Constraints

01.Constraints

コンストレイントは、ボーン階層を使用せずにボーンを調整するための強力な方法になります。

02.Constrained by

TreeViewの右側のアイコン部位に拘束対象状態を示すアイコンが表示されます。

コンストレイントに影響されたBoneはこのように中が空いたような表示になり

拘束元Boneの影響でのみ動くようになり自分自身では動くことができなくなります。

03.Order

コンストレイントはTreeの描画順に実行されます。

ここにPath ConstraintとIK Constraintが適用されたBoneがあります。

ここで、IK ConstraintがPath Constraintの先に設定されていますが

この状態だとIKのConstraintが動作しません。

(拘束されたBoneにワールドトランスフォームが再計算されIKを未拘束の状態に戻すからとのこと)

(Path Constraintの拘束によってIKのConstraintが打ち消されているため?)

TreeViewでconstraintをドラッグし順序を変更することでIKの拘束が有効になります。

 

取り急ぎ、こちらでSpineのチュートリアル動画の覚書を一旦終わります!

長かった・・・・!

今度はこちらのチュートリアルの内容を応用してオリジナルキャラクターにアニメーションを適用して

その内容をブログに記載していければと考えています。