現在、VisualStudio2019で作成したexeファイルをWindowsで起動させて、
その際に得たデータをpicojson化しUDP通信を用いてUnityのMonoBehaviourを継承したクラスで受信することを考えています。
これにより、Unity内のゲームオブジェクトを
顔の動きに合わせて動かしたいと考えています。
その際に、受信側に関して、ゲームオブジェクトに貼り付けて、データを受信するプログラムの作成がうまくいかずに難航しています。
データは下記のように、WEBカメラを用いて顔認証をした際の顔座標、顔位置を数値化したものを使います。
C++
1//Unity側への送信用データを作成する(picojsonへ読み込み) 2 picojson::object obj; 3 //顔位置X座標 4 obj.emplace(std::make_pair("horizontal_pos", actor.horizontal_pos)); 5 //顔位置Y座標 6 obj.emplace(std::make_pair("vertical_pos", actor.vertical_pos)); 7 //顔姿勢 Y軸 8 obj.emplace(std::make_pair("yow", actor.yaw)); 9 //顔姿勢 X軸 10 obj.emplace(std::make_pair("pitch", actor.pitch)); 11 //顔姿勢 Z軸 12 obj.emplace(std::make_pair("roll", actor.roll)); 13 //全部の顔器官点を格納 14 picojson::array mouse; 15 for (unsigned int i = 0; i < FACIAL_POINTS; ++i) 16 { 17 picojson::array coord; 18 coord.push_back(picojson::value((double)shape.part(i).x())); 19 coord.push_back(picojson::value((double)shape.part(i).y())); 20 mouse.push_back(picojson::value(coord)); 21 } 22 obj.emplace(std::make_pair("obj", picojson::value(mouse))); 23 //文字列に変換 24 picojson::value val(obj); 25 26 //シリアライズ 27 std::string msg = val.serialize(); 28 //送信 sendto(ソケット, 送信するデータ, データのバイト数, フラグ, アドレス情報, アドレス情報のサイズ); 29 sendto(sock, msg.c_str(), msg.size(), 0, (struct sockaddr*) & addr, sizeof(addr));
データ送信に関してはサンプルコードがあり、それを参考にすることで作成しました。
しかし、受信側に関してはwindowsを用いた場合のサンプルコードが見つけられておらず、テスト用のプログラムも作成できておりません。
私自身がUDP通信やプログラムを触り始めということもありますので、
参考となる文献や、実現するために必要なコマンドに関してご教授いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー