UnityのUniversal Render Pipelineサポート
March 9th, 2020
Spine-unityランタイムがUnity2019.3のUniversal Render Pipelineとその2D Rendererに対応したことを発表させていただきます。
Universal Render Pipeline (URP)は高いグラフィックスパフォーマンスを提供するために最適化された、構築済みScriptable Render Pipeline(SRP)であり、Lightweight Render Pipeline(LWRP)の後継パイプラインです。モバイルプラットフォームからハイエンドPC、コンソールまでシームレスに拡張できます。これは新しい 2D Renderer ワークフローを追加しており、2Dゲーム専用に設計された柔軟な2Dライティングシステムを提供しています。
現在、Spine-Unityランタイムを拡張できる追加のUnity Package Manager(UPM)パッケージ com.esotericsoftware.spine.urp-shaders
を公開しており、 ダウンロード してURPサポートを追加することで利用できるようになります。
別のパッケージが必要な理由
Unityは、多くのオプションモジュールを新しいUnity Package Manager(UPM)エコシステムに移行しました。 URPベースシェーダーファイルもまた、 Universal RP
という名前でUPMパッケージとしても提供されており、ただちにすべての新しいUnityプロジェクトに含まれてはいません。
よってURP Spineシェーダーをspine-unityランタイムに含めてしまうと、Unityの Universal RP
パッケージがプロジェクトにインストールされていない場合に、混乱を招くエラーメッセージと追加の設定手順が発生してしまいます。 URP SpineシェーダーをUPMパッケージとして提供することで、このような依存関係は自動的に解決され、この追加機能が使いやすくなります。
今後、私たちはUnityのオプションパッケージに依存する他のSpine-unityの機能用に別途UPMパッケージを提供する予定です。
インストール
UPMパッケージはこちらのダウンロードページかまたはGitリポジトリのspine-unity/Modulesサブディレクトリからダウンロードできます。パッケージのインストール方法については、Spine-unityのドキュメントページに載っている拡張UPMパッケージのインストールのガイドラインに従ってください。
URPの参考例
パッケージには、com.esotericsoftware.spine.urp-shaders-3.8/Examples/2D/URP 2D Shaders.unity
とcom.esotericsoftware.spine.urp-shaders-3.8/Examples/3D/URP 3D Shaders.unity
に確認用に上のアニメーションGIFに似た2つのサンプルシーンが含まれています。これらはURPシェーダーをそれぞれ2Dおよび3Dレンダラーセットアップで使用する方法を実演しています。 このシーンは、Project Settings - Graphics
で設定されている現在のUniversalRenderPipelineAsset
の設定の変更に反応することに注意してください。
使用方法
Spine-unityランタイムのSpine/Skeleton Lit
、 Spine/Sprite/Vertex Lit
とPixel Lit
のスタンダードSpineシェーダーはこのUniversal Render Pipelineには互換性がありません。代わりに、 Spine Universal RP Shaders
パッケージはUniversal Render Pipeline専用に作られたシェーダーを提供しており、以下の 2D Renderer
サポートを含みます:
Universal Render Pipeline/2D/Spine/Skeleton Lit
Spine/Skeleton Lit
シェーダーのUniversal 2D Renderer版です。Universal Render Pipeline/2D/Spine/Sprite
Spine/Sprite/Vertex Lit
およびPixel Lit
シェーダーのUniversal 2D Renderer版です。Universal Render Pipeline/Spine/Skeleton
Spine/Skeleton
シェーダーのUniversal版です。Universal Render Pipeline/Spine/Skeleton Lit
Spine/Skeleton Lit
シェーダーのUniversal版です。Universal Render Pipeline/Spine/Sprite
Spine/Sprite/Vertex Lit
およびPixel Lit
シェーダーのUniversal版です。
これらのシェーダーは、マテリアルプロパティの Shader
メニューから通常どおりマテリアルに割り当てることができます。
Universal Render PipelineシェーダーはProject Settings - Graphics
で割り当てられた UniversalRenderPipelineAsset
の設定を反映します。次のGIFは、これらの設定を変更することでシーン内のキャラクターがどのように影響を受けるかを示しています:
制限事項
他のすべてのSpineシェーダーと同様に、LWRPシェーダーは Linear
色空間を使用する際にPremultiply alpha
(PMA)アトラステクスチャをサポートしていません。もしあなたが Linear
色空間を使用している場合は、アトラステクスチャのPremultiply alpha
設定を無効にして straight alpha
テクスチャとしてエクスポートしてください。詳しくはこちらのstraight alphaのエクスポートおよびインポート設定の手順 をご覧ください。
もしあなたが現在アクティブにしている色空間を確認したい場合はEdit > Project Settings > Player > Other Settings > Color Space
からご確認いただけます。
これらのSpine-Unityランタイムへの追加により、ハイエンドデバイスとローエンドデバイスの両方でさらに印象的なゲームやアプリを作成できることを願っています。フォーラムであなたの考えを共有してください。