モデルのDrawable間に別のスプライトを挟む

最終更新: 2020年1月30日

ここでは、モデルのDrawable間に別のスプライトを配置する方法を説明します。

概要

モデルの一部だけ、描画を前にしたい(もしくは後ろにしたい)場合、モデルのDrawableに追加されているCubism Rendererから描画順を変更できます。
描画順は、Local Orderにする数値によって制御することができます。

これによって設定した部分の間にスプライトを配置した際、一部Drawableがスプライトの前面に、その他Drawableは背面に描画するということが可能です。

手順

まず最初に、モデルのルートにアタッチされているCubismRenderControllerコンポーネントの Order In Layer の数値を変更します。

その後、各DrawableにアタッチされているCubismRendererコンポーネントの LocalOrder に設定されている数値も変更します。
モデルのルートにあるCubismRenderControllerのOrder In Layerは、/Drawables/以下の全オブジェクトのLocal Orderにも影響します。

例えば、Order In Layerが“0”の時に、Local Orderを“1”にした場合、設定されるDrawableの描画順は1になります。
また、Order In Layerが“3”の時に、Local Orderを“2”にした場合、設定されるDrawableの描画順は5になります。
Order In Layerが“5”の時に、Local Orderに“-2”を設定した場合、Drawableの描画順は3になります。
Order In Layerの詳しい説明については、以下リンクをご覧ください。
Unity – マニュアル: Sprite Renderer

以下のように、DrawableとDrawbleの間に別のスプライトを挟み込みたい場合、CubismRendererコンポーネントのLocal Orderの数値を変更します。
[Drawable] [スプライト] [Drawable]

実例:モデルにスプライトを抱えさせる

実例として、新規スプライトを作成し、モデルがスプライトを脇で抱えるようなポーズをさせます。

まず、Spriteの設定を行います。Hierarchyウィンドウ内を右クリックし、“2D Object” > “Sprite”をクリックして新規Spriteを作成します。
その後、作成したSpriteをクリックし、InspectorウィンドウのSprite Renderer > Spriteの項目をUI Spriteに設定します。また、Sprite Renderer > Order In Layerに“1”を設定します。

次にモデルの設定をします。
モデルの左手・左前腕部分のLocal Orderの数値を“2”にします。
そうすることで、数値を変更した左手・左前腕部分→スプライト→数値未設定のモデルという順に描画がされるようになりました。

以上の設定で、数値を変更した左手首および左前腕部分→Sprite→数値未設定のモデルという順に描画されるようになります。

この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。