個々のスプライトのスワップ
スプライトスワップ を使用すると、他のスプライトには影響を与えずに、アクターのスプライトを 1 つだけ変更できます。これにより、アクターの外観の一部のみを変更し (衣服やスキンの色を変えるなど)、外観の他の部分はそのまま維持することができます。
以下の例では、アクターのスカーフのバリエーションとなる 2 つのスプライトがあります。1 つは緑、もう 1 つは青です。このワークフローは、同じアクターのスカーフを一方から他方に切り替える方法を示したものです。
左: オリジナルの green scarf
スプライト。右: バリエーションとなる blue scarf
スプライト。
両方のスカーフのスプライトを同じ Sprite Library アセット に配置し、同じ カテゴリ (
Scarf
という名前) に加えます。各スプライトに重複しない ラベル 名 (このケースではそれぞれ
green scarf
とblue scarf
) を付けます。 このステップと前のステップは、スプライトをドラッグして Categories タブの空白のスペースにドロップすることで自動化できます。シーン内で インスタンス化されたプレハブ を選択し、Hierarchy ウィンドウで
Scarf
ゲームオブジェクトを選択します。Scarf
ゲームオブジェクトの Sprite Resolver コンポーネント に移動します。Sprite Resolver のビジュアルセレクターで、Scarf
カテゴリに利用できるスプライトが 2 つ表示されます。blue scarf
を選択して、Scarf
ゲームオブジェクトによってレンダリングされるスプライトを青いスカーフに切り替えます。
Sprite Resolver の Label がblue scarf
に設定されます。
複数のスプライトをまとめて切り替える場合は、Sprite Library アセットをスワップ し、交代するスプライトセットに全体を切り替えることをお勧めします。
スプライトのピボットの位置合わせ
スキンしたスプライト を使用する際は、そのメッシュの頂点の位置が現在のスケルトンのポーズに基づいて計算され、各スプライトの個別のピボットの影響は受けません。ただし、スキンが適用されていない (アクターのスケルトンに リグが設定 されていない) スプライトを スワップ する場合は、ピボットの相対的な位置が同じにならないため、適切に揃わないことがあります。これは、スプライトのサイズに大きな違いがある場合に特に顕著になります。以下の例は、スキンスプライトをスキンが適用されていないスプライトとスワップしたときに、スプライトにどのような不具合が生じる可能性があるのかを示しています。
図 1: 元の open hand スプライト。 |
図 2: thumbs up スプライトにスワップ。 |
この例では、Skinning エディターで、スプライトを含むゲームオブジェクトと Sprite Swap コンポーネントが、open hand
スプライトにうまく揃えられています。thumbs up
スプライトが同じスケルトンにリグ設定されていないため、ピボットの相対的な位置が元のスプライトと異なり、うまく揃いません。スキンが適用されていない thumbs up
スプライトをうまく揃えるためには、open hand
スプライトのピボットの相対的な位置に合わせて、ピボットを調整する必要があります。
ノート: スプライトがスケルトンにリグ設定されている場合は、個々のピボットの位置が、ウェイトが設定されているボーンの影響度と位置によってオーバーライドされます。
スプライトのピボットの位置を変更するには、まず Sprite Editor でスプライトを選択します。Sprite Editor ウィンドウの右下に Sprite パネルが表示されます。Sprite パネルには、Name、Position、Pivot プロパティなど、選択したスプライトの詳細が表示されます。Pivot ドロップダウンメニューのリストから、既定のピボットオプションを選択できます。Center (中央)、Top Left (左上)、Custom Pivot (Custom Pivot の位置のプロパティ設定を解除して、ピボットの独自の位置を入力可能にします) などのオプションがあります。
この例では、スワップした 2 つのスプライトを揃えるため、Pivot プロパティを Center から Custom Position に変更し、Custom Pivot の位置を入力して thumbs up
スプライトと open hand
スプライトの位置を揃えています。
変更を適用すると、スプライトスワップ後に、スワップしたスプライトがアクターの他の部分と揃うようになります。