アニメーション用インスペクタ詳細解説 - SpriteStudio/SS6PlayerForUnity GitHub Wiki
「SpriteStudio6 Player」モードでの、アニメーション用のインスペクタの詳細を解説します。
- 対象コンポーネント(クラス): Script_SpriteStudio6_Root
アニメーション用インスペクタには、大きく分けて4種類の区分があります。
- Static Datas : 静的データ
- Table-Material : マテリアルテーブル(Ver.1.x系)
- Initial/Preview Play Setting : 初期再生状態設定
- プレビュー(Ver.2.1以降)
※「Table-Material」は、SS6PU Ver.1.x系までの「インポート時にマテリアルを静的に作成する」仕様の際に存在したもので、Ver.2.0以降では「実行時にマテリアルを動的に作成する」仕様の変更に伴い構造そのものが削除されています。
Static Datas
このグループは、アニメーションが持っている静的データ(シーン上に同じアニメーションが登場している場合に共有されるデータ)群です。
通常、この項目は操作したりすることはないはずです(むしろ、みだりに変更しないでください)。
Data:CellMap
アニメーションで使用するセルマップのマスタデータです。
この項目をクリックすると、Projectウィンドウでセルマップのマスタデータが格納されているアセットフォルダとデータがわかります。
Data:Animation
アニメーションで使用するアニメーションのマスタデータです。
この項目をクリックすると、Projectウィンドウでマスタデータが格納されているアセットフォルダとデータがわかります。
Holder:Asset(Ver.2.0.0以降)
現在本アニメーションが保持(参照)している、「アセットホルダ」です。
アセットホルダの役割や詳細については、こちらを(アセットホルダ用インスペクタ詳細解説)を参照ください。
Table-Material(Ver.1.x系)
このグループは、アニメーションが再生時に使用するマテリアルのテーブルです。
本項目は、Ver.1.x系でのみ存在しています(Ver2.0以降ではマテリアルの管理方法が根底から変更になったために、必要がなくなり・削除されています)。
(以降、Ver.1.x系=Ver.1.x系での解説になります)
このマテリアルテーブルはこのアニメーション用のテーブルなので変更しても構いません(プレハブのこのテーブルを変更しない限り、影響が他の同じアニメーションに及ぶことはありません)。
ただし、通常このテーブルを手で操作することは現実的ではありません(マテリアルの並びに規則があるのと種類が多いため、設定で間違いを起こすことが少なくありません)。
主に、確認用(スクリプトなどから正しくマテリアルが設定できているか等)に使用することが大半だと思われます。
テーブルの並びは下記の順序になっています。
※下記リストのインデックスは1から開始されていますが、インスペクタ上での番号は0オリジンになっていますので、その点注意してください。
- テクスチャ-0 マスク対象外 マスク描画前段描画用
- テクスチャ-0 マスク対象外 マスク用
- テクスチャ-0 マスク対象外 ミックス用
- テクスチャ-0 マスク対象外 加算合成用
- テクスチャ-0 マスク対象外 減算合成用
- テクスチャ-0 マスク対象外 乗算合成用
- テクスチャ-0 マスク対象外 アルファ乗算合成用
- テクスチャ-0 マスク対象外 スクリーン合成用
- テクスチャ-0 マスク対象外 除外合成用
- テクスチャ-0 マスク対象外 反転合成用
- テクスチャ-0 マスク対象 マスク描画前段描画用
- テクスチャ-0 マスク対象 マスク用
- テクスチャ-0 マスク対象 ミックス用
- テクスチャ-0 マスク対象 加算合成用
- テクスチャ-0 マスク対象 減算合成用
- テクスチャ-0 マスク対象 乗算合成用
- テクスチャ-0 マスク対象 アルファ乗算合成用
- テクスチャ-0 マスク対象 スクリーン合成用
- テクスチャ-0 マスク対象 除外合成用
- テクスチャ-0 マスク対象 反転合成用
- テクスチャ-1 マスク対象外 マスク描画前段描画用
- テクスチャ-1 マスク対象外 マスク用 ……
※プログラマ向け補足:
プログラム(スクリプト)からマテリアルテーブルの内容を取得・変更する場合には、添字を直値指定や自力算出せずに(スクリプト解説にある)Script_SpriteStudio6_Root.Material.IndexGetTable関数などを使用するようにしてください。
Initial/Preview Play Setting
このグループは、アニメーションの初期状態の再生アニメーションを設定するための項目群です。
Order In Layer
同一描画レイヤー内でのアニメーションの描画順序を強制的に指定します(デフォルトは0)。
値が大きくなるほど描画順序が後(描画優先度が上)になり、負数の設定も可能です。
カメラからの距離(深度)よりも優先されます(同じ値が設定されているオブジェクト間では深度で優先度が決定されます)。
詳細については、こちら(Issue)を参照してください。
※例えば、Unityのスプライトなどとの優先度指定に使用することができます。
※この値はアニメーションオブジェクト毎に付加されているMeshRendererの「Renderer.sortingOrder」にそのまま設定されます。
Hide Force
チェックすると、アニメーションそのものを非表示にします。
※非表示であっても、最低限の処理は行われます。
Collider Interlock Hide
チェックすると、アニメーションのパーツに設置されているコライダかコリジョン(当たり判定)の効果を「そのパーツの非表示状態」と同期させます。
※パーツが非表示状態になった場合に、コライダも効果しないようになります。
※パーツの非表示状態は、「そのパーツ単体の非表示指定」ではなく・親パーツから継承した「最終的な・実効状態としての非表示」なことに注意してください。
ただ、物理接触(コライダ)を使用している際に、その接触状態などは考慮しないで効果・非効果を切り替えるので注意してください(コライダ自体が突然発生したり・消えたりするために、特に物理接触している時に予想外の接触影響を及ぼす場合があります)。
Planarization
チェックすると、そのアニメーションオブジェクトを表示する際のZ軸の厚みをなくします(あたかも1枚の平面のように描画されます)。
SpriteStudio6上での作成の都合(例えばX/Y軸回転を使っていたり・Z座標のパーツソート基準で作成していたりする場合など)でZ方向への厚みが生じてしまい、(Near/Far)クリップに引っかかってしまうようなアニメーションの厚みを無視して表示するために使用します。
ただし、当たり判定などのZ座標については消すことはできません(あくまで表示のためだけのものです)。
詳細についてはこちら(Issue)を参照してください。
Number of Track
アニメーション再生トラックの数を指定します。
0を指定するとデフォルト(トラック数: 1)になります。
この数はアニメーションが同時に再生可能なアニメーション数を表します。
ただし、複数トラックが必要になるケースは、スクリプトからアニメーション合成を行ったり・トラックトランジション(2アニメーション間での補間遷移)を行う場合であり、そのための初期値を設定するため以外には変更する必要性がありません。
※スクリプトからトラック数を変更する関数も存在しています。
※この値でトラック数を増やしても、インスペクタ上で各トラックにアニメーションを個別設定することはできません(アニメーション合成もトラックトランジションもUIで行うには設定が複雑なため、設定ミスを誘発することから、現状そのようなUIを搭載する予定はありません)。
Initial Stop
チェックすると、実行開始した時にアニメーションを停止(最初のフレームで停止している)状態にします。
Animation Name
再生するアニメーションを選択します。
本項目をクリックすると、保持しているアニメーション(このアニメーションの元になったssaeファイルが持っている全アニメーション)が出てきますので、その中からアニメーションを選択します。
Range Start Label
アニメーションの再生を行うフレーム区間の先頭をラベルで指定します。
本項目をクリックすると、設定されているアニメーションに定義されているラベルが出てきますので、その中からラベルを選択します。
アニメーション再生時にループさせた場合、このラベルで指定された位置(正確には本ラベル+Range Start Offsetのフレーム)をループの先頭とします。
ただし、ラベルがアニメーションの有効フレーム(SpriteStudio6上での「開始」「終了」の値)外である場合、再生アニメーションは有効フレーム内にクリップされますので注意してください。
Range Start Offset
アニメーションの再生を行うフレーム領域の先頭ラベルからのオフセットフレームを指定します。
実際に設定可能な数値はこの設定直下の「Valid Value Range」に表示されています。
Range End Label
アニメーションの再生を行うフレーム領域の終端をラベルで指定します。
本項目をクリックすると、設定されているアニメーションに定義されているラベルが出てきますので、その中からラベルを選択します。
アニメーション再生時にループさせた場合、このラベルで指定された位置(正確には本ラベル+Range End Offsetのフレーム)をループの終端とします。
ただし、ラベルがアニメーションの有効フレーム(SpriteStudio6上での「開始」「終了」の値)外である場合、再生アニメーションは有効フレーム内にクリップされますので注意してください。
Range End Offset
アニメーションの再生を行うフレーム領域の終端ラベルからのオフセットフレームを指定します。
実際に設定可能な数値はこの設定直下の「Valid Value Range」に表示されています。
Play Pingpong
チェックすると、アニメーションを往復(ピンポン)再生します。
Rate Time-Progress
アニメーションの再生速度を設定します。
1.0で等速再生になり、値が大きくなるほど高速で再生します。
また、負の値を与えると逆再生します(-1.0で等速逆再生)。
0を指定すると、アニメーションは停止したままになります(再生しているが時間が経過しない状態です。ただし、可能にはしてありますが、あまり推奨できない設定です)。
Number of Plays
アニメーションの再生回数を設定します。
0で無限ループ再生になり、1以上の数でその回数再生して停止します。
Reset(Reinitialize)
このボタンを押すと現在設定されている値をデフォルト値に戻します。
プレビュー(Ver.2.1以降)
アニメーションのインスペクタには、プレビューの機能がついています。
このプレビューは、Hierarchyウィンドウ上で、(シーンもしくは・「Open Prefab」で開いているプレハブの中の)Script_SpriteStudio6_Rootコンポーネントが付与されているGameObjectを選択していると表示されます。
また、下記の設定項目でプレビュー設定を変更してもHierarchyウィンドウ上で設定しているオブジェクトの設定は書き換わりません(プレビューの再生設定とインスペクタ側での再生設定は切り離されています)。
この1~5の各設定項目は以下の役割があります。
-
プレビュー設定の折り畳み
このボタンが「>」の時にクリックすると、プレビュー設定のアイコン群が全て右端に格納され「<」のアイコンのみが表示された状態になります。
「<」の状態をクリックすると、全てのプレビュー設定のアイコンが表示され、「>」のアイコンに戻ります。 -
再生ボタン
プレビュー内のアニメーションを(4の)フレーム位置から再生します。
再生中は三角が青く点灯します。
再生中に再度このアイコンをクリックすると、現在の再生フレーム位置で停止します。
再生がアニメーションの末尾に到達すると、先頭に戻って再度再生されます。 -
アニメーションの選択
クリックすると、アニメーションがプルダウンで表示されますので、プレビューするアニメーションを選択してください。 -
フレームの設定
再生しているフレームを数値で入力します(フレームを確定させるには、フレームを入力後にENTERキーを押す必要があります)。
ただし、2の再生ボタンが「再生中(青い点灯)」の場合には入力できません(現在のフレームを表示しているだけになります)。
フレームを変更するとプレビューに表示されている画像のフレーム位置も追従します。
0よりも低い値を指定すると、強制的に0フレームにクリップされます。
最大フレームよりも大きい値を指定すると、強制的に最終フレームにクリップされます。FPS(1秒間のフレーム数)は、SpriteStudio6のアニメーションデータ(ssae)に設定されているものになります(Unityの描画設定のFPS値ではありません)。
-
プレビューのスケールの設定
「x 0.25」「x 0.33」「x 0.5」「x 0.66」「x 1.0」「x 1.5」「x 2.0」「x 3.0」「x 4.0」のいずれかからプレビューに表示する倍率を選択します。
主にプレビュー画面に対して大きすぎたり・小さすぎたりするアニメーションを好みに近いサイズで見るために使用してください。
ただし、アニメーションの原点をプレビュー画像の任意の位置にずらすことは、現在行えません(プレビュー画像の中心が原点に固定されています)。