新しいLive2D公式コミュニティ(日本向け)が公開されました!
ぜひご利用ください!
Live2D公式コミュニティ

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2022年内を目処に閉鎖する予定です。
閉鎖時期や内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
Live2Dに関するユーザーのみなさま同士の交流・ご質問・不具合の報告・提案・要望などについて是非お寄せください。
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。

Live2D ヘルプ

Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)

Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
【各最新OSの対応状況について】
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。

【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Cubism 製品のマニュアル・チュートリアルはこちら
 
Cubism Editorマニュアル    Cubism Editorチュートリアル    Cubism SDKマニュアル    Cubism SDKチュートリアル

UnityのCanvas内のLive2Dモデルの表示順の変更の方法

UnityのCanvas内のLive2Dモデルの表示順(手前に表示されるのか、奥に表示されるのか)はどのように変更できるのでしょうか?

Canvas内のゲームオブジェクトはHierarchyビューの下に配置するほど手前になりますが
http://albatrus.com/main/unity/7402
※こちらのページの「その他」の項

Live2Dのゲームオブジェクトはその影響を受けない?ようです。


-------------------------------
■環境
Windows10
Unity 2017.1.1f1 Personal
Cubism 3.0 モデル(公式サンプル 桃瀬ひより)
Unity_SDK 3.0
-------------------------------

よろしくお願いします。
タグ付けされた:

コメント

  • @BURAI_VC2008様

    Live2Dスタッフの小嶺と申します。
    よろしくお願いいたします。

    Live2Dの描画はOrder in Layerで制御されます。
    描画順序制御はモデルにアタッチされているCubism Render Controller(script)のOrder in Layerで全体の描画順序をコントロールするか、
    hierarchy上のモデル>Drawablesの下にあるDrawableにアタッチされているCubism Renderer(script)のLocal Orderで個別のDrawableの順序をコントロールします。

    Live2DのOrder in Lairの操作については、こちらのチュートリアルもご参考ください。
    http://docs.live2d.com/cubism-sdk-tutorials/betweendrawables/


    Canvas側の設定はRenderModeをScreen Space – Cameraに選択し、
    RenderCameraにMainCameraを指定し、
    Order in Layerを変更して操作します。


    Live2Dの使用しているLayer幅がDrawableの枚数分あるので、
    余裕をもって1000単位で操作することをお勧めいたします。

    もしCanvasの内容の中にLive2Dを挟んで表示したい場合は
    Canvasを2枚用意していただければ想定の操作ができると思われます。


    よろしくお願いいたします。
  • 小嶺様

    Order in Layerの詳細な解説、ありがとうございます。

    今回は最前面にテキストを表示したいという目的でしたので、Canvasを2枚以上用意してOrder in Layerを操作するという方法で解決することができました。
    ・Live2Dモデルの入ったCanvas:Order in Layer = 0
    ・UIテキストの入ったCanvas:Order in Layer = 1000



    Textはメニューの「GameObject>UI>Text」で作成したオブジェクトですが、こちらのオブジェクトはインスペクタにOrder in Layerのようなプロパティはなかったので、Live2Dモデルと同じCanvas内ではLayerを制御できない…で正しいでしょうか。


  • @BURAI_VC2008様

    はい、Canvas内の順番で描画の順番をコントロールすることはできないという認識で間違いありません。
    もし描画の順番を実行内で入れ替える必要がある場合は、TextなどのUIオブジェクト毎にCanvasを作り、
    そのCanvasのOrder in Layerを操作する形で制御する必要があります。

    またCubismモデルの描画順のコントロールはCubismRenderControllerで行われており、Canvasの子オブジェクトにしてもCanvasの影響はうけません。
    もし、連動させたい場合は下のようなスクリプトをCubismモデルにアタッチすると親に設定されたCanvasからSortingOrderを受け取り連動するようにできます。

    using System.Collections; using System.Collections.Generic; using UnityEngine; using Live2D.Cubism.Rendering; [ExecuteInEditMode()] public class CubismOrderLinker : MonoBehaviour { public Canvas linkCanvas; private CubismRenderController renderController; // Use this for initialization void Start () { if (linkCanvas == null) { linkCanvas = transform.GetComponentInParent<Canvas>(); } renderController = GetComponent<CubismRenderController>(); } // Update is called once per frame void Update () { if(linkCanvas != null && renderController != null) { renderController.SortingOrder = linkCanvas.sortingOrder; } } }

    このようになります。




    よろしくお願いいたします。
  • スクリプトまでありがとうございます!解決しました!
コメントするにはサインインまたは登録して下さい。