新しい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のuGUIを使う場合のSortingLayerについて

UnityのuGUI機能、sortingLayersで描画順番を指定することは可能でしょうか?

http://sites.cybernoids.jp/cubism2/sdk_tutorial/platform-setting/unity/csharp/render-mode

このRenderModeの切り替えも試してみましたが、上手く行きませんでした。
(Default固定のように感じました)

直に

renderer.sortingLayerName = "mid";

のように指定する形でも構いませんので、何か方法があればご教授頂ければと思います。
タグ付けされた:

コメント

  • 編集済: 2月 2015
    ちょっと把握できてないので教えてほしいのですが、uGUIにsortingLayersってありましたっけ?
    (確かUnityの2D機能だったような...)

    以下のようなソースにするとLive2DとSprite画像の描画順が制御できるかと思います。

    using UnityEngine; using System; using System.Collections; using live2d; [ExecuteInEditMode] public class SimpleModel : MonoBehaviour { public TextAsset mocFile ; public Texture2D[] textureFiles ; private Live2DModelUnity live2DModel; private Matrix4x4 live2DCanvasPos; void Start () { Live2D.init(); live2DModel = Live2DModelUnity.loadModel(mocFile.bytes); // Live2Dのレンダーモード変更 live2DModel.setRenderMode(Live2D.L2D_RENDER_DRAW_MESH); for (int i = 0; i < textureFiles.Length; i++) { live2DModel.setTexture(i, textureFiles[i]); } float modelWidth = live2DModel.getCanvasWidth(); live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50.0f, 50.0f); } void Update() //void OnRenderObject() { if (live2DModel == null) return; live2DModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos); if (!Application.isPlaying) { live2DModel.update(); live2DModel.draw(); return; } double t = (UtSystem.getUserTimeMSec()/1000.0) * 2 * Math.PI ; live2DModel.setParamFloat( "PARAM_ANGLE_X" , (float) (30 * Math.Sin( t/3.0 )) ) ; live2DModel.update(); live2DModel.draw(); } }

    ちなみにこの方式だとsortinglayerを使わず、Z軸でも描画順が制御できるかと思います。


    ただ今後Unity側で廃止される描画方式らしいので、背景画像は2DSpriteで配置して
    Live2Dモデルよりも前に表示したい画像はUGUIを使うといいかもです。

  • naotaroさん
    教えて頂き、ありがとうございます。

    Spriteの描画順を指定する場合は、
    Sorting Layerを使わず、このようにやるか、
    カメラを複数使うなど行う必要がありそうですね。

    大変参考になりました。ありがとうございました!
コメントするにはサインインまたは登録して下さい。