質問は基本的に1スレッドにつき1つの内容でお願いします。
お問い合わせの際は下記の情報を明記をお願いいたします。
▼ソフトウェアに関するご質問の場合
・【問題が発生したソフトウェア名とバージョン】(例:Cubism Editor 3.1.02、Euclid Editor 1.2.0 など)
・【ご利用のPC環境】例:Windows10、macOS HighSierra など
・【グラフィックボード】例:GeForce GTX 950M など
・【メモリ】例:8GB
・【原画(イラスト)を制作したソフトウェア】例:Photoshop , CLIP STUDIO , SAI など
・【問い合わせ内容がわかるスクリーンショットまたは動画】
---------------------------
▼SDKに関するご質問の場合
・現象の再現を行い検証させていただきますので、再現する最小のプロジェクトのご提供か、再現するまでの手順
・使用したSDKのバージョン
お問い合わせの際は下記の情報を明記をお願いいたします。
▼ソフトウェアに関するご質問の場合
・【問題が発生したソフトウェア名とバージョン】(例:Cubism Editor 3.1.02、Euclid Editor 1.2.0 など)
・【ご利用のPC環境】例:Windows10、macOS HighSierra など
・【グラフィックボード】例:GeForce GTX 950M など
・【メモリ】例:8GB
・【原画(イラスト)を制作したソフトウェア】例:Photoshop , CLIP STUDIO , SAI など
・【問い合わせ内容がわかるスクリーンショットまたは動画】
---------------------------
▼SDKに関するご質問の場合
・現象の再現を行い検証させていただきますので、再現する最小のプロジェクトのご提供か、再現するまでの手順
・使用したSDKのバージョン
タッチやフリックが反応しない時がある
UnityからiPadにビルドして、なんとか動作するまでこぎつけましたが、時々タッチやフリックが反応しない時があります。
主に長いセリフの時に起こりやすい現象かと思います。
シャッフルした時のアクションは反応します。何度か振ってると動作するようになります。
これはセリフが長すぎるのでしょうか?
主に長いセリフの時に起こりやすい現象かと思います。
シャッフルした時のアクションは反応します。何度か振ってると動作するようになります。
これはセリフが長すぎるのでしょうか?
コメント
NullReferenceException: Object reference not set to an instance of an object
main.OnRenderObject () (at Assets/Scripts/main.cs:38)
Assets/Scripts/main.csの38行目でエラーのようなので、その部分ってここに載せられますか?
できればその周辺のコードもあると特定し易いと思うのですが。
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になったままなのではないかなと…。
もし違っていたら申し訳ありません。
このページをそのままコピペしたのだと思います。
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の文字の大文字小文字が異なっています。
ただフリックやタッチが反応しなくなるのは、別の理由であることがわかりました。
クライアントからのフリックやタッチのアクション変更指示で、モーションのフォルダやファイル名が存在しないものを指定している箇所がありました。
ここで空回りしていたのが原因のようです。
おさがわせして申し訳ありません。
ありがとうございました。