新しい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からiPadにビルドして、なんとか動作するまでこぎつけましたが、時々タッチやフリックが反応しない時があります。
主に長いセリフの時に起こりやすい現象かと思います。
シャッフルした時のアクションは反応します。何度か振ってると動作するようになります。
これはセリフが長すぎるのでしょうか?
タグ付けされた:

コメント

  • セリフが長すぎることは原因かどうかわかりませんけど、ログにはなにか表示されていますか?
  • アプリとしてiPad上で動かしているので、ログは見えませんが、Unity上では以下の警告がたくさん出ます。
    NullReferenceException: Object reference not set to an instance of an object
    main.OnRenderObject () (at Assets/Scripts/main.cs:38)
  • どこかのデータが取得できてないようなので、問題がありそうですね。

    Assets/Scripts/main.csの38行目でエラーのようなので、その部分ってここに載せられますか?
    できればその周辺のコードもあると特定し易いと思うのですが。
  • 全部で42行しかないので、全部掲載しますね。

    using UnityEngine;
    using System;
    using System.Collections;
    using live2d;

    public class main : MonoBehaviour {
    public TextAsset mocFile;
    public Texture2D[] textures;

    private Live2DModelUnity live2DModel;


    // Use this for initialization
    void Start () {

    Live2D.init ();

    live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);

    for(int i = 0; i<textures.Length; i++)
    {
    live2DModel.setTexture(i, textures[i]);
    }
    }
    // Update is called once per frame
    void Update () {

    }
    void OnRenderObject()
    {
    Matrix4x4 m1=Matrix4x4.Ortho(
    -200.0f, 200.0f,
    200.0f,-200.0f,
    -0.5f,0.5f);
    Matrix4x4 m2 = transform.localToWorldMatrix;
    Matrix4x4 m3 = m2*m1;

    live2DModel.setMatrix(m3);  ←ここが38行目です
    live2DModel.update();
    live2DModel.draw();
    }
    }
  • とりあえず場当たり的な対処ですけど
    OnRenderObjectの最初で
    if(live2dModel==null)return;

    としておけばエラーは消えるかなと思います。
  • 横から失礼しますが、このエラーは実行時に出ているものでしょうか?

    もしOnRenderObjectがエディタ上でも呼び出されているとすれば
    Live2D.init()を通る前に実行されてしまうので
    live2DModelがNullになったままなのではないかなと…。

    もし違っていたら申し訳ありません。
  • む、難しい…o┤*´Д`*├o アァー
    このページをそのままコピペしたのだと思います。

    http://sites.cybernoids.jp/cubism/sdk_tutorial/platform-setting/unity/csharp/createproject

    一応、OnRenderObjectの最初で
    if(live2dModel==null)return;
    をやってみましたがエラーが出てキャラが表示されませんでした><
  • 何らかのエラーが出たのなら、とりあえずそのエラーのログを載せないと
    対応する側も原因の特定が非常に難しくなりますよ。

    それと、エラーが出るタイミング
    (実行時に常時繰り返し出ている。エディタ上で既に出ている。特定の操作時に1度だけ等々)
    もあれば対応がしやすくなるのではと思います。
  • 大変失礼しました。
    OnRenderObjectの最初ということで、この場所でよかったのでしょうか?

    void OnRenderObject()
    {
    if(live2dModel==null)return;
    Matrix4x4 m1=Matrix4x4.Ortho(
    -200.0f, 200.0f,
    200.0f,-200.0f,
    -0.5f,0.5f);
    Matrix4x4 m2 = transform.localToWorldMatrix;
    Matrix4x4 m3 = m2*m1;

    live2DModel.setMatrix(m3);
    live2DModel.update();
    live2DModel.draw();
    }

    そして、以下のエラーが出てます。

    Assets/Scripts/main.cs(31,20): error CS0103: The name `live2dModel' does not exist in the current context

    現在のコンテキストにLive2DModelは存在しない…ですかね?
    (-ω-;)ウーン
  • 単純なスペルミスのエラーのようですね。

    宣言する部分では「private Live2DModelUnity live2DModel;」
    32行目の部分では「if(live2dModel==null)return;」
    dの文字の大文字小文字が異なっています。
  • 助かりました。そのとおりでした。dを大文字にしたらエラーが出なくなりました。
    ただフリックやタッチが反応しなくなるのは、別の理由であることがわかりました。

    クライアントからのフリックやタッチのアクション変更指示で、モーションのフォルダやファイル名が存在しないものを指定している箇所がありました。

    ここで空回りしていたのが原因のようです。

    おさがわせして申し訳ありません。
    ありがとうございました。
コメントするにはサインインまたは登録して下さい。