ご注意
「Convert To Unity-Native」モードでインポートしたデータは、Unityの機能に変換されるためSpriteStudio6の全機能には対応しておらず、使用できる機能に制限がつきますので、注意してください。
制限を記載します。
下記のパーツ種類以外は、インポート時に警告を出して無視されます。
- rootパーツ
- NULLパーツ
- 通常パーツ
- マスクパーツ
- メッシュパーツ
- ボーンパーツ
- ボーンポイントパーツ
- ジョイントパーツ
- コンストレイントパーツ
※インスタンスパーツとエフェクトパーツが使用できません。
※Unity5.6(Switch)環境では、マスク機能が使用できません。
※Ver.1.0.10以前では、「メッシュパーツ」(及びボーン関係)には対応していません。
使用できるアトリビュートについては以下の互換性一覧を確認し、アニメーションを作成してください。
OPTPiX SpriteStudio 互換性の比較表 SS6P for Unity
(Unity-Native)
使用できないアトリビュートについてはインポート時に警告を出して無視されます。
- X/Y/Z回転
X/Y/Z回転を複合で使用すると、UnityとSpriteStudio6との回転順序の違いで、最終的な回転結果が異なる場合があります。 - ローカルスケール
マスクパーツにはローカルスケールが適用されません。 - 優先度
優先度に設定された値は変換されません。描画順序のみが反映されます。 - 頂点変形
※Ver.1.0.4以前では、「頂点変形」「パーツカラーの頂点指定」には対応していません。
※マスクパーツでは頂点変形は使用できません。 - パーツカラー
※Ver.1.0.4以前では「頂点カラー」の指定は使用できません。「単色」のみとなります(頂点指定をした場合、全ての頂点の平均値が適用されます)。 - マスク強度
Unityとの仕様の都合で、強度の効果が近似になります。 - ユーザーデータ
「矩形」「座標」が使用できません。「数値」「文字列」のみとなります。
※特に
- 「(マスクパーツの)頂点変形」「X/Yサイズ」「原点X/Yオフセット」「UV操作系」は使用できません
- Unity5.6(Swicth環境)下では「マスクパーツ」は使用できません
- 「メッシュパーツへのマスクの適用」はできません(マスキングされません)
ので、注意してください。
- 「当たり判定」には対応していません。
- 「インスタンス」機能には対応していません。
- 「エフェクト」機能には対応していません。
- (Ver.1.0.10以前では)「メッシュ」機能には対応していません。
- マスクパーツの「マスク対象」設定のチェック状態は適用されず、常に非チェック状態として扱われます。
- 「メッシュ」パーツにはマスクがかかりません。
-
「メッシュ」パーツで、1頂点あたりに適用されるボーン数は最大4本となります。
1頂点に対して4本を超えるボーンが適用されていた場合、ウェイト順で上位4本が抽出されます(ウェイトの合計については1.0になるよう正規化されます)。
そのため、SpriteStudio6上と動きが変わるメッシュパーツがありますので、適用ボーン数には注意してください。 - 「SpriteStudio6 Player」モードにある「Tracking Assets」の機能がありませんので、インポート後にファイル・サブフォルダ名やサブフォルダ構成を変えてしまうと、使用しているアセットを追跡できなくなります。詳細はこちらを参照してください。
- AnimationClipに変換されるキーは、補間形式ではありません。同じ値になるキー以外は全て展開された階段状のキーデータになっています。この理由については、「SpriteStudio6とUnityの補間式が異なる」「経過時間が中途半端なフレーム位置になる際に補間が働いてしまい、想定外の動きをすることを抑制する」ためとなっています。
「Convert To Unity-UI」モードでインポートしたデータは、UnityのCanvas(UI・uGUI)機能に変換されるためSpriteStudio6の全機能には対応しておらず、使用できる機能に制限がつきますので、注意してください。
制限を記載します。
下記のパーツ種類以外は、インポート時に警告を出して無視されます。
- rootパーツ
- NULLパーツ
- 通常パーツ
※基本的に「メッシュ・ボーン」「マスク」「インスタンス」「エフェクト」関連のパーツが使用できません。
下記のパーツの「描画モード」以外は、インポート時に警告を出して「ミックス」の設定として扱われます。
- ミックス
- 加算
※あくまで「描画モード」であり、後述のアトリビュート「パーツカラー」の「ブレンド方式」の制限ではありません。
下記の(パーツ毎での)アトリビュートが使用可能です。
下記以外のアトリビュートを使用した場合、インポート時に警告を出して無視されます。
- 参照セル
- X/Y/Z座標
- X/Y/Z軸回転
- X/Yスケール
- X/Yローカルスケール
- 不透明度
- ローカル不透明度
- 優先度
- イメージ左右・上下反転
- 非表示
- パーツカラー(各4頂点指定も可能・ブレンド種別に制限はありません)
- 頂点変形
- 原点 X/Y オフセット
- X/Yサイズ
- UV X/Y 移動
- UV 回転
- UV X/Y スケール
※基本的に、「デフォーム」「シェーダー」「マスク」「当たり判定」「ユーザーデータ・シグナル」「インスタンス」「エフェクト」などの機能が使用できません。
- 優先度
優先度に設定された値は変換されません。描画順序のみが反映されます。
- SpriteStudio6側でのマスク機能に対応はしておりませんが、Canvas側のマスキング機能には対応しています(Maskableに対応しています)。
- このモードでインポートしたデータは、再生する前に設置するCanvasの設定を変更する必要があります(この設定を行わない場合、正常にインポートしたデータが表示されません)。
Hierarchyウィンドウ上で、インポートしたプレハブを設置するCanvasを選択し、Canvasのインスペクタの「Additional Shader Channel」の下記をチェック(選択)状態にします。- TexCoord1
- TexCoord2
- TexCoord3
「SS6Player」モードでインポートできる、パーツの当たり判定の種類は下記になります。
- なし
- 四角形 : Z方向に厚みを持った直方体に変換されます。
- 円形(スケール影響なし) : Z方向へ柱状を持つカプセルに変換されます。
これ以外の当たり判定種別は「なし」と同等に扱われますのでご注意下さい。
それに加え、下記の動作がありますので、注意してください(原則、頂点変形以外はSpriteStudio6のプレビューと同様になっています)。
- 「四角形」「円形」は、Unity上ではTransform(座標・スケール・回転)の影響を受けます(ローカルスケールの影響は受けません)。
- 「円形」は原点オフセットなどのアトリビュートの影響は受けません(座標指定以外で位置を動かすことはできません)。
- 「四角形」は頂点変形の影響を受けません。パーツに使用しているセルもしくはサイズX/Yで指定されている大きさの直方体となります(サイズX/Yの指定が優先を持ちます)。
SpriteStudio6上でインスタンスパーツが参照するソースアニメーションの側に設定する事が可能ですが、その運用は推奨しておりません。
ソースアニメーションを呼び出しているアニメーション(親アニメーション)に、専用パーツを別途作成するか・インスタンスパーツに当たり判定を付けて運用するようにしてください。
データを再インポートする場合の注意点は以下になります。
※下記で「プレハブ」と呼称しているものは「制御用プレハブ」「アニメーションのプレハブ」「エフェクトのプレハブ」の総称となります。
- プレハブの名称やサブフォルダが変更されていた場合、更新対象にはなりません。
- マテリアルやテクスチャ・データなどの格納フォルダを移動していた場合に、インポータの「Track Assets」のオプションをチェックしていない場合、移動先のデータを追跡せず・新しくデータを作成します。
アニメーションのラベルで下記のラベル名は予約されており、特別な意味を持ちます。
- 「_start」: アニメーションの有効フレームの先頭を意味します。
- 「_end」: アニメーションの有効フレームの末尾を意味します。
本ラベル名をユーザーがアニメーションに対して設置してしまった場合、SS6Player for Unityでは、インポート時に警告を出して「その名称がついたフレーム位置にはラベルが付いていない」ことにしてインポートしますので、ご注意ください。
これはSS6Playerモードでに限った内容ですが、SS6PUやUnityのバージョンを問わない仕様です。
Unityはマルチプラットフォームであることと・実際のプラットフォームのハードウェア仕様がまちまちであるため、作成したアプリケーションの実行フレームレートが想定通りにならない場合が多発します。
主に下記の理由から、再生フレームを直接取得して判定することは誤動作などの元になることがありますので、避けてください。
- 再生状況によって「同じフレームが複数回再生」される場合がある。
- 再生状況によって「フレームがスキップ」してしまう場合がある。
- 複数のアニメーション再生トラックを持っているため一概に再生フレームの判定ができない。
そのため、アニメーションとの同期処理には、できる限り「ユーザーデータ」をデータに設定し、そのコールバックを受け取る形で同期を行うことを推奨いたします。
SS6PUのユーザーデータ検知のコールバックは、「LateUpdateの実行タイミングで発行される」のと「アニメーションの表示状態更新中に呼ばれる」ため、コールバック関数内では「次のUpdateで処理されるべき処理のためのパラメータ設定(例えば効果音データの識別名の確定など)」にとどめ、それらの実際の処理は「次に回ってくるUpdateのタイミング」で行うことを推奨いたします。
特に、アニメーションの再生状態を変更するような処理については、コールバック関数内で行わないように注意してください。
LateUpdate内でのSS6PUが、どのようなアニメーションの更新とコールバックを行うかの細かなスケジュールの詳細は、こちらを参照してください。
-
アニメーション以外の再生