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

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2023年夏ごろを目処に方針を決定する予定です。
(2022/12/27追記 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でLive2Dの手前に半透明込みのエフェクトを表示しようとしております。
マニュアルにある通り、L2D_RENDER_DRAW_MESHにて描画をしようとしておりますが、
setRenderModeでL2D_RENDER_DRAW_MESHに設定するとLive2Dの表示が消えてしまいます。

SDK付属のDrawMeshModeのプロジェクトを実行してもLive2Dが消えてしまい、
L2D_RENDER_DRAW_MESH_NOWに変更すると描画されるようになります。

上記、不具合についてどのような原因が考えられますでしょうか?
実行環境は下記の通りとなります。

Windows7 Professional
Unity ver4.5.5f1
Live2D Cubism SDK [2014/11/07] 2.0.01_1

コメント

  • Unityの仕様により、L2D_RENDER_DRAW_MESHの場合は、Live2DModelUnity.draw()の呼び出しタイミングをOnRenderObject()からUpdate()に変更する必要があります。
    以下のページの、「描画モードの設定方法」の3を参照してください。
    https://sites.google.com/a/cybernoids.jp/cubism2/sdk_tutorial/platform-setting/unity/csharp/render-mode
  • お世話になっております。

    ご返答ありがとうございます。

    記載漏れがあり、申し訳ございません。
    draw()のタイミングはOnRenderObject()からUpdate()に変更しています。

    下記がソースになります。
    Sceneはこのmain.csを空のゲームオブジェクトにアタッチし、Moc FIleにmiku.moc.bytesをセット。
    Textureにmiku.2048/texture_00.pngをセットした状態となっております。
    カメラのプロジェクションもOrthographicへ変更してあります。

    追加で提示すべきことがありましたら、ご指摘お願い致します。


    =============================================
    using UnityEngine;
    using System.Collections;
    using live2d; //Live2Dライブラリを使用

    public class main : MonoBehaviour {

    public TextAsset mocFile; // mocファイル
    public Texture2D texture; // テクスチャファイル
    private Live2DModelUnity live2DModel; //Live2Dモデルクラス

    void Start ()
    {
    //初期化(Live2Dを使用する前に必ず1度だけ呼び出す)
    Live2D.init();
    //モデルデータを読み込む
    live2DModel = Live2DModelUnity.loadModel ( mocFile.bytes );
    //テクスチャの関連付け
    live2DModel.setTexture( 0, texture );

    //描画モードを指定
    live2DModel.setRenderMode( Live2D.L2D_RENDER_DRAW_MESH );
    }

    // デフォルトでは DrawMeshNow でLive2Dモデルを描画するので OnRenderObject を使う
    void OnRenderObject ()
    {
    }

    void Update ()
    {
    //表示位置と大きさの指定
    Matrix4x4 m1 = Matrix4x4.Ortho( 0, 900, 900, 0, -0.5f, 0.5f );
    Matrix4x4 m2 = transform.localToWorldMatrix;
    Matrix4x4 m3 = m2 * m1;
    live2DModel.setMatrix( m3 );

    //経過時間で顔の角度Xを動かす
    float time = UtSystem.getUserTimeMSec() / 1000f;
    live2DModel.setParamFloat( "PARAM_ANGLE_X", 30 * Mathf.Sin( time ), 1);

    //頂点の更新
    live2DModel.update();

    //モデルの描画
    live2DModel.draw();
    }
    }

    y_a_s_(Dev Staff)
  • 確認したところ、最新バージョンのSDKのバグでした。
    一つ前の2.0.00_1では正常に表示されるますので、そちらのライブラリをお使いください。
    この不具合は次の更新時に修正させていただきます。
    報告ありがとうございました。
  • お世話になっております。

    ご返答ありがとうございます。
    SDK側の不具合の件、了解しました。
    ひとまず、2.0.00_1で開発を進めます。

    ご丁寧に対応いただき、ありがとうございました。
  • こちらこそお騒がせして申し訳ありません。
    近日中に修正版を公開いたします。
コメントするにはサインインまたは登録して下さい。