CrossOverGameJam04
http://www.crossover.link/cogj04/
2017年7月7,8,9日 品川マイクロソフトにて行いました。
(制作自体は8,9日)
お題:顔認識を使ったなにか
企画:複数端末を使用した顔の感情を使用したじゃんけん
企画の内容は以下の通り
①カメラで撮影する
②撮影した映像でAPIを叩く→結果でグーチョキパーを決定
③勝敗判定後、勝利側の攻撃モーションが走る
④勝敗表示
使用したAsset、ツール等
・iOSNative(写真撮影)
・Microsoft Cognitive Service - Emotion API(写真解析)
・MiniJSON(解析結果パース)
・Photon Cloud(同期処理)
実際の処理はこんな感じ
①PhotonCloudで部屋に2人入室したらゲームスタート
②写真を撮る
③API実行
④相手に結果を送る、相手から結果が来るまでひたすら待機
⑤結果がきたら各端末で処理してアニメーション実行
⑥勝敗を表示する
実際に使ったEmoteAPIの呼び出しメソッド
https://azure.microsoft.com/ja-jp/services/cognitive-services/emotion/
↓実際のソース(一部)
EmoteAPI.cs
/// <summary>
/// 感情認識API実行
/// </summary>
/// <param name="texture">Texture.</param>
/// <param name="callback">Callback.</param>
public IEnumerator Connect (Texture2D texture, UnityAction<EntityEmoteModel> callback)
{
Debug.Log ("Start Emote API");
// 使うAPIによってURLが変わる
var url = "https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize";
byte[] bytes = texture.EncodeToPNG ();
// ヘッダはだいたい固定
var headers = new Dictionary<string, string> () {
{"Ocp-Apim-Subscription-Key", [取得したAPI_KEYを入力してください]},
{"Content-Type", "application/octet-stream"}
};
WWW www = new WWW (url, bytes, headers);
yield return www;
Debug.Log (www.text);
// JSON形式でくるので適当にデータクラスに突っ込む
var request = new EntityEmoteModel ();
request.DeSerialize (www.text);
// データを返す
if(callback != null)
callback (request);
}
今後の課題
・構築したGitLabサーバーの速度が遅いのでPull/Pushに時間がかかりすぎる
→結局Bitbacketを使って開発を行った。
その他GameJamの醍醐味
・お昼をみんなで楽しむ
お昼駆動開発 #cogj pic.twitter.com/fefX1hvqI9
— ずんずん🍀 (@kazuma_unity) 2017年7月8日