のびっこ日記

(*|         |*)v ういっすー。 VRとかコンピュータービジョンとかARとかに興味があります。OpenCVとかPCLとかOculusRiftとかUnityとかKinectとかLeapMotionとか手を出していますが、いろいろドツボにハマっててくじけそう。誰か教えてー

necomimiの集中力の値で初音ミクさんにネコミミ生やしてみた(・         ・)その2

f:id:nobikko_nobinobi:20140724012717p:plain

NeuroSkyのnecomimiで遊んでる件の続きです(*・         ・*)

前回、necomimiの集中力の値が上がると初音ミクさんにもネコミミが生えるようにしたのですが、値の取得が安定していなかったのと、ネコミミの生え方が滑らかではなかったのとで、困っていました。

 

necomimi値取得のThread化

値取得のThread化は、にゃるらとさんのこちらの記事

nyaruratoの製作記録 necomimiをUnityで使う

を参考にさせて頂きました。ありがとうございます。

Thread化したところ、GUIスレッドが軽くなり動作が安定したようです。

一部、connect()/disconnect()が動くよう私の方でも改変しました。太字部分が変更点です。

 

    :

    :

private Thread th;

    :

    :

void Start () {
        Connect();
}

public void Disconnect(){
        // if(IsInvoking("ParseData")){
        // CancelInvoke("ParseData");
        th.Abort ();
        th = null;
        stream.Close();
        // }
}

public void Connect(){
        // if(!IsInvoking("ParseData")){
        th = new Thread (parse_call);
        client = new TcpClient("127.0.0.1", 13854);
        stream = client.GetStream();
        buffer = new byte[1024];
        byte[] myWriteBuffer = Encoding.ASCII.GetBytes(@"{""enableRawOutput"": true,        ""format"": ""Json""}");
        stream.Write(myWriteBuffer, 0, myWriteBuffer.Length);

        // InvokeRepeating("ParseData",0.1f,0.02f);
        th.Start ();
        // }
}
void parse_call(){
        while (true) {
        ParseData ();
        }
}

 

その他

その他、MMDモデルの設定をHumanoidにしたりと、Unityの基本的なところをまだ勉強しながら、いじってる段階です。そもそも手がまだカカシになってますし・・Orz

Unity、よかったら誰か教えてください。

 

それではまた(*・           ・*v