両手持ち武器

November 22nd, 2019

final result

Spineを使用してキャラクターに武器を持たせ、必要に応じて武器を捨てられるセットアップを作れないかと思ったことはありませんか?ご心配なく!このブログでは、こちらのtipsについて詳細に説明し、ステップごとのやり方をご紹介します。

このチュートリアルでは、IKコンストレイントトランスフォームコンストレイントを使用する必要があるため、Spine Professionalが必要です。

スケルトン設定

initial skeleton setup

まず基本的な体のリグから始め、武器を表現するボーンを作成します。このチュートリアルでは、画像やメッシュアタッチメントは省略してスケルトンの構造に焦点を当てます。

武器ボーンが自由に動くには、体のボーンの子孫であってはいけません。そのため、親として適切な場所は、スケルトンのrootボーンになります。

上の画像は初期のセットアップを示しています。武器は緑のボーン、weaponにより表現され、残りの体は標準の人間のボーン階層セットアップを形成しています。

武器と体のボーンの他に、hand-on-weapon-lhand-on-weapon-rという2本のボーンを作成します。これらは後でIKコンストレイントのターゲットとなり、体のリグの手を武器から離さないようにするために使用します。

コンストレイント設定

全てのボーンが配置され、武器と体がボーン階層内で分離されていれば、コンストレイントを使ってこの2つを接続できるようになります。

IKコンストレイントの作成

ik setup

まず腕が武器部分の左右の手がくっつく場所を追従することを確認しなければなりません。arm-l-uparm-l-downという2本の腕ボーンを選択してIKコンストレイントを作成し、hand-on-weapon-lをターゲットとして設定します。同じことを右腕にも行います。

2本の腕は直ちにそれぞれのターゲットボーンを指しますが、武器なしでポーズや動きをアニメーションできるようにするために、設定モードではこれを無効にします。2つのIKコンストレイントのMix100から0に変更します。これにより腕を自由にポーズさせることが可能になり、好きなようにアニメーションさせることができます。

トランスフォームコンストレイントの作成

transform setup

仕上げとして親の回転を追従しているのではなく実際に武器を持っているように見せるために、手を武器の回転に合わせます。これはhand-lを選択してトランスフォームコンストレイントを作成し、weaponボーンをターゲットとすることで行います。もう1方の手にも同じ設定を行います。正しく表現するには、オフセット回転(offset rotation )を「90」に設定します。全てのミックスは0に設定し、設定モードで武器を持った手が回転しないようにします。これにより武器のない動きとポーズのアニメーション作成が簡単になります。

武器を追従するアニメ―ションを作成する

武器を追従する腕と手のアニメーションを作成するには、IKとトランスフォームコンストレイントのミックスの値が100になるようキーを作成するだけです。これだけで手と腕が武器を追従するようになります!

ik animate

transform animate

全てうまくいっていれば、最終的にアニメ化モードで以下のようなセットアップが見れるはずです:

final skeleton setup

バリエーション

1つのトランスフォームコンストレイントを使用して手と武器の両方を制約することが可能です。一般的に、コンストレイントが少なければ少ないほどリグがシンプルになるという利点があります。しかし、キャラクター片手だけを武器から離す必要がある場合、これはそれほど便利ではないかもしれません。

また、キャラクターが武器を持っていない時でも、IKコンストレイトを腕に使用することができます。この場合、IKコンストレイントのミックスを0に設定し、武器を持っている時のコンストレイントミックスを100に設定します。

結論

final result

キャラクターに片手または両手で武器を持たせる、武器を捨てさせる、武器でトリックを行うなど様々なことが可能です。このセットアップはオンまたはオフにすることができるため、ピストル、ショットガン、マシンガン、ヤリなど様々な武器タイプに複数セットアップを使用できます。コンストレイントミックスはアニメーションの中で、あるいは実行時にコードでも設定できます。

このセットアップの例は以下でダウンロードできます。here

このセットアップがあなたのプロジェクトのお役にたつことを願っています!forumでこの投稿について自由に話し合いましょう。