Unityの機能に変換して使用する

SpriteStudio Ver.6で作成したデータを、Unity機能を使用するデータに変換をおこない、アニメーションを使用する方法を解説します。

Unity機能を使用することで表示速度のアップが期待できます。ただし、SpriteStudioで使用できる機能に制限がありますのでご注意ください。

本ページは以下のバージョンを使用して解説しています。

  • OPTPiX SpriteStudio:Version 6.1.3
  • SS6Player For Unity:Ver.1.0.28
  • Unity:2017.2.0f3

目次

事前準備

アニメーションを作成する前に「互換性」を確認する

SpriteStudioでアニメーションを作成する前に、使用するアトリビュートをUnityの標準機能で再現することができるもののみに制限してください。
互換性のないアトリビュートを使用すると想定外の挙動をする可能性があり、修正作業が発生するためです。

最新のアトリビュート対応状況については「OPTPiX SpriteStudio 互換性の比較表」をご確認ください。

また、使用可能機能につきましても制限があるケースがあります。詳細につきましてはGitHubの下記ページをご確認ください。

本ページでは SS6Player for Unity v1.0.18 を使用したケースの設定を紹介します。使用するSS6Player for Unityのバージョンをご確認の上、都度最新の情報を参照ください。

「プロジェクトの設定」の「互換性」を開き「SS6PlayerForUnity(Unity-Native)」を選択してください。
互換性のあるアトリビュートのみが選択された状態になります。
(SpriteStudio Ver.6.1.3以前をご利用の場合は「カスタム」を設定し、手動で使用できるアトリビュートと機能を選択してください)

SS6Player for Unity v1.0.18で使用可能なアトリビュートは以下の通りです。
メッシュボーン機能は使用できますが、エフェクト機能は使用できません。

  • 参照セル
  • X座標
  • Y座標
  • Z座標
  • X軸回転
  • Y軸回転
  • Z軸回転
  • Xスケール
  • Yスケール
  • ローカルスケールX
  • ローカルスケールY
  • 不透明度
  • ローカル不透明度
  • 優先度
  • 非表示
  • パーツカラー
  • 頂点変形
  • マスク強度
  • ユーザーデータ

Unityをインストールする

まだUnityをパソコンにインストールしていない場合、Unityのサイトからダウンロードし、インストールを行ってください。
なお、SS6Player for UnityはUnity 2017.1.0 以降のみ対応しています。これ以前のUnityは対応しておりませんのでご注意ください。

Unityをインストールしたら、プロジェクトを作成してください。

SS6Player for Unity を導入する

SpriteStudioでアニメーションを作成し、Unityのインストールも完了したら、Unityに「SS6Player For Unity」を導入します。

詳しい方法は「Unityにアニメーションを表示する」を参照してください。

Unityの標準機能のみに制限してアニメーションをインポートする

SS6Player for Unityの導入まで完了したら、SpriteStudio Ver.6で作成したsspj(プロジェクトファイル)のデータを変換し、Unityに取り込みます。

sspjをUnityにインポートする

1.プロジェクトウィンドウのAssets以下に、新たにフォルダを作成し、そこにsspjをインポートします。

「Assets」フォルダを選択し、右クリックでコンテキストメニューを開きます。

「Create」→「Folder」を選択し、フォルダを作成します。

今回は「animation」という名前のフォルダを作成しました。


2.フォルダを選択します。画像のようにフォルダが表示されている箇所で選択するようにしてください。

フォルダが選択されると、プロジェクトウィンドウの下部分にフォルダ名が表示されます。

また、インスペクターウィンドウにフォルダが表示されます。

3.作成したフォルダを選択した状態で
「Tools」→「SpriteStudio6」→「Importer」
を選択します。

4.「SpriteStudio6 Player for Unity Import-Settings」というダイアログが表示されます。

「Import mode」のプルダウンメニューを「Convert To Unity-Native」に切り替えます。

5.「Import」をクリックすると、インポート処理を開始します。

▶をクリックするとインポート時のオプションが開閉します。

「Setting Save/Load/Reset」を開いたメニューの「Reset(Restore initial setting)をクリックするとオプションを初期設定に戻します。

6.「Import」をクリックするとエクスプローラが表示されます。

作成したsspjを選択してください。

7.インポートが無事完了すると、選択したフォルダの中にデータが追加されます。

この中にsspjをコンバートしたデータが格納されています。

インポート時にエラーが発生する

インポート時にエラー(Select Asset-Folder you want to store in before import, in the “Project” window.)が発生してしまう場合、フォルダが選択されていない可能性があります。

Inspectorウィンドウにフォルダが表示されている・Projectウィンドウの下部にフォルダ名が表示されている状態が『フォルダが選択されている状態』です。状態を改めてご確認ください。

詳しくは以下のページをご覧ください。

アニメーションをシーンに配置する

プレハブをシーンに配置する

1.インポートしたデータのフォルダを開くと、制御用のプレハブが格納されています。

2.インポートしたデータにある制御用プレハブをヒエラルキーウィンドウへドラッグします。

3.ヒエラルキーウィンドウへ設定したプレハブを開きます。

するとrootパーツに相当するGameObjectが表示されますので選択します。

4.ヒエラルキーウィンドウ上のgame objectを選択します。

インスペクターに「Script_SpriteStudio6_HolderAssetUnityNative」が表示されます。

その中の項目「Table Animation Clip」を選択して展開してください。

5.Element のファイル名の部分をクリックしてください。

するとプロジェクトウィンドウ内のアニメーションクリップが点灯します。

6.この点灯したアニメーションクリップを選択して、ヒエラルキーウィンドウのrootパーツに相当するGameObjectへドラッグ&ドロップします。

するとAnimatorオブジェクトが追加されます。

7.インスペクターウィンドウ上に「Animator」が追加されているのを確認してください。

これでアニメーションの準備は完了です。

カメラを準備する

画面に表示するため、カメラの準備をします。

今回は2種類の方法を紹介します。

SpriteStudio 6 アセットの2Dカメラを使用する

SpriteStudio6に内包されている「Camera」のフォルダにあるカメラプレハブを使用します。
「Camera2D Pixel (720p)」を選択します。

ヒエラルキーウィンドウにドラッグします。

これでカメラの準備は完了です。

MainCameraを使用して配置

新しいプロジェクトを作ると作成される「MainCamera」を使用することもできます

MainCameraを選択し、インスペクターウィンドウ上の「Position」で位置を調整してください。
CameraPreviewでカメラ位置の確認ができます。

アニメーションを再生する

シーンウィンドウの上部にある「▶」をクリックすると、アニメーションの再生を開始します。

アニメーションデータを作成する際の注意点

互換性があるアトリビュートでも、一部再現できない機能がございます。アニメーションを作成する際は十分ご注意くださいますようお願いいたします。

インスタンス機能は非対応

  • インスタンス機能は対応しておりません。誤ってインスタンスパーツを配置しないようご注意ください。

当たり判定は非対応

  • 当たり判定に対応していません。

メッシュ・ボーン機能の制限

  • メッシュパーツに対してマスク機能が適用されません
    「Convert To Unity-Native」を使用して再生を行う場合は、マスクパーツによるマスキングが適用されません。アニメーション制作時、メッシュパーツにマスク機能を適用しないようご注意ください。
  • メッシューパーツの1つの頂点に対応するボーンパーツは4個まで
    メッシュパーツの頂点に対応するボーンパーツは4個までという制限があります。
    メッシュパーツひとつにつき、ボーンパーツの個数を4個までに制限していただく事を推奨します。
    ※5個以上のボーンパーツが存在した場合は、ウェイトでソートした上位4個のボーンパーツのウェイトを再正規化して適用します。Unity上での再生動作が微妙に変化する可能性がありますのでご注意ください。

マスク機能の制限

  • マスクパーツにはローカルスケールが適用されません
    マスクパーツにローカルスケールが適用されませんので、マスクパーツでローカルスケールを使用しないでください。
  • マスクパーツには頂点変形が適用されません
    マスクパーツに頂点変形が適用されませんので、マスクパーツで頂点変形を使用しないでください。
  • マスク強度の効果にて、差異が生じます
    マスクパーツでマスク強度を使用した演出を行われる場合、マスク強度が0に近い数字で表示に差異が生じます。ご使用の際はご注意ください。
  • マスクパーツの「マスク対象」チェック設定は適用されません
    マスクパーツの「マスク対象」の設定は対応していません。常にマスク対象が非チェックの状態の動作を行います。

頂点変形使用時の機能制限

  • 頂点変形を使用したパーツでは、パーツカラーの頂点指定は対応していません。

パーツカラーの機能制限

  • 頂点変形を使用したパーツについて、パーツカラーの頂点指定は対応していません。

ユーザーデータの機能制限

  • 「矩形」「座標」には対応していません。「数値」「文字列」のみ使用してください。

X軸回転 / Y軸回転 / Z軸回転

  • これら「軸回転」のアトリビュートを同時に使用することは避けてください。
    SpriteStudioと Unity制御の回転順序が異なる為、複数のX・Y・Z軸回転に値が入った際、意図せぬ表示となることがあります。

ユーザーデータを設定したアニメーションを再生する場合の注意点

ユーザーデータアトリビュートを使用したアニメーションを Unity-Nativeの方法で再生を行うと

Animation Event ‘FunctionEventText’ has no receiver! Are you missing a component?

というエラーで停止してしまいます。

これはユーザーデータのイベントを処理するスクリプトを組み込むことで解消されます。

1.今回は、イベント処理を行う「UserDataScript.cs」という名称のスクリプトを作成しました。
処理関数は空なので、何もせずに終了するのみです。
2.このスクリプトを「Animation」フォルダの中に格納します。エクスプローラからUnityに直接ドロップすることが可能です。

3.このスクリプトを、ヒエラルキーウィンドウのrootパーツに相当する GameObject へドラッグして組み込んでください。

アニメーションが再生されていない状態で組み込んでください。

4.インスペクターウィンドウ上に組み込んだスクリプトが表示されます。

この状態で再生し、エラーが表示されないことを確認してください。

スクリプトのソースコード

今回ユーザーデータの処理に使用した「UserDataScript.cs」のコードは以下の通りです。

UserDataScript.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UserDataScript : MonoBehaviour
{
	void FunctionEventText(string value)
	{
	}

	void FunctionEventInt(int value)
	{
	}
}

関連ページ