2014年7月23日水曜日

ユニティちゃんゲームジャム2014 参加レポート

公式サイト:
ゲームジャム開催中のツイートまとめ



先日ユニティちゃんゲームジャム2014に参加し、「どきどきユニティちゃんとの夏休み」というゲームを6人のチームで29時間かけて開発した。非常に充実した2日間+αだったので、参加レポートを公開する。
なお参加前に書いた記事は下記のリンクで見られる。


ユニティちゃんゲームジャム2014 参加レポート 目次

  • 冥王星チーム結成編
  • ブレインストーミング編
  • α版開発編
  • β版開発編
  • 発表編
  • うにくり発表編
  • さいごに




冥王星チーム結成編

はるばる来たぜBKC
新名神・草津田神ICを降りて1分、やってきました立命館大学BKC(びわこ・くさつキャンパス)。筆者がゲームジャムに参加するのはこれで3回目である。
BKC会場ではゲームジャム経験者が行き渡るようチーム分けされており、チーム名は惑星の名前から付けられている。筆者は冥王星チームに振り分けられた。

冥王星チーム メンバー名とゲーム開発経験・希望職種
  • 久野(筆者): Unityでのゲーム実装、プログラミング
  • のむそん: プログラミング、イラストメイキング
  • モリタク: Unityでのゲーム実装、プログラミング
  • ペンタ: プログラミング
  • しょう: プログラミング
  • さこやん: プログラミング、応援!

メンバーに挨拶をし、筆者がリーダーを務める事となった。開会式の前にUnity 4.5.1とユニティちゃんパッケージを全員のPCにインストールさせ、それじゃ始めるとしますか!




ブレインストーミング編




最初にブレインストーミングで作るゲームの案を出すのだが、筆者はブレインストーミングを行う前に上記動画の最初の6分間をメンバー全員に見せた。この動画はGGJ 2014の開会式で流された動画である。

何故この動画を見せたか?それは筆者がGGJ 2014で苦い経験をした事に由来する。
GGJ 2014でのブレインストーミングにて、筆者は挙がったゲーム案を面白くなさそうだと思ったが、他にアイデアが思い浮かばなかったので決定した。30時間かけて出来上がったのはつまらないゲームだった。 それが悔しかったので1ヶ月間1人で開発し続けたが、 出来上がったのはやはりつまらないゲームだった。

筆者はこの経験から「企画段階で面白くないゲームは、どんなに頑張っても面白くならない」ことを学んだのだ(異論はあるかもしれない)。

1回目のブレインストーミング
動画を見せた後に1回目のブレインストーミングを行ったが、どの案も面白くなさそうだった。正直な気持ちをメンバーに伝え、2回目を実施することにした。

2回目のブレインストーミング(決定稿)
2回目のブレインストーミングではーとふる彼氏の話題で盛り上がり、ナンパしてくる動物からユニティちゃんを守るアイデアが生まれた。
さらに「最近のVRは甘い!添い寝?キス?世の中そんな甘いもんじゃないよ!」とペンタさんとのむそんさんが大暴走。筆者も調子に乗ってトゥルーラブストーリーネクストキングの例を挙げ、最終的にメンバー全員が盛り上がったため、この案でゲームを作ることにした。

ブレインストーミング決定稿
  • ゲーム概要
    • プレイヤーを絶望させるゲーム
    • いい感じになった瞬間に、PCのインカメで撮影したキモい顔を晒す
    • プレイヤーがユニティちゃんを助けるオープニング
    • ナンパしてくる動物達からユニティちゃんを守るミニゲーム
    • 画面上のハートゲージ、実はユニティちゃんの好感度ではなく「焦り度」
    • ベタベタし過ぎると「焦り度」が上がり、ユニティちゃんから嫌われる(告白失敗)
  • ミニゲーム
    • 鳩がナンパしてきた!さあどうする?
    • 馬と勝負!負けたら「爽快感のある彼がステキ!」と言い残してGame Over
    • 頭をなでると「焦り度」アップ(色々なモーション)
  • エンディング
    • ちゃんと落とす
    • デート後の分かれ道でプレイヤーの告白タイム(録音した肉声を使う)
    • でもフラれる「ずっとキモいと思ってた。仕方なく一緒にいた」
    • 立ち去るユニティちゃんを引きとめようとすると、振り向いて「大っ嫌い!」リピート
    • 撮影したプレイヤーの顔を晒し「俺ってこんなにキモい顔してたのか」と絶望させる



α版開発編


α版に向け、ストーリー班・ミニゲーム班・環境構築班に分かれて作業
次にα版の開発を行った。ここで言うα版とは、ゲーム内容がわかるイメージ図や企画書の事である。
α版開発体制は下記の通り。
  • ストーリー:のむそん、ぺんた
  • ミニゲーム:しゅう、もりたく、さこやん
  • 環境構築(Asset Server):筆者
ストーリーの流れ
模造紙を前にあーでもないこーでもないと言い合うメンバー。楽しそうで何より。
最終的にストーリーとミニゲームの流れは以下のようになった。
  • タイトル画面:どきどきユニティちゃんとの夏休み 
  • デモ1:ユニティちゃんが鳩から襲われる
  • ミニゲーム1:鳩に豆鉄砲を撃って撃退し、ユニティちゃんを守れ!
  • コミュニケーション1:「助けてくれてありがとう!」ボディタッチで焦り度上昇 
  • デモ2:動物園でデート!ユニティちゃん馬にさらわれる
  • ミニゲーム2:馬に追いつけ!追いつけないと「野性的な彼がステキ」エンド
  • コミュニケーション2:「あー怖かった!」横に並んで餌を与える構図。ボディタッチ。
  • デモ3:海でデート!
  • ミニゲーム3:スイカ割り
  • コミュニケーション3:帰り道でプレイヤーが告白。フラれる。「大っ嫌い!」リピート
  • エンディング:画面にプレイヤーの顔を晒す
しかーしこの時点で開始から6時間が経過しており、とても全部作れるとは思えない。そこでミニゲーム1・コミュニケーション1・ミニゲーム2を優先的に作り、時間に余裕が出来たら他の機能を作ることにする。



β版開発編


続いてβ版作成である。ここで言うβ版とは、実際に遊べるデモの事である。
β版開発体制は下記の通り。
  • ミニゲーム1(鳩):しょう 
  • ミニゲーム2(馬):モリタク
  • コミュニケーション:のむそん
  • OpenCV連携:ペンタ
  • ストーリー台本:さこやん(深夜まで用事があるため、PC無しで出来る作業を割り振る)
  • 開発サポート担当:筆者
しかしなかなかうまくいかない。例えば…

しゅう「鳩の無料アセットが無い!」
筆者「MMD2Mechanimを実装する時間は無いなー。有料アセット使う?」
しゅう「蜘蛛のアセットが無料だから、もうこの蜘蛛でいいや」
(鳩に豆鉄砲のアイデアが消える)

のむそん「Mecanim難しい…」
筆者「よっしゃ任せろ。ゲームツクールで予習した甲斐があったぜ!」
~15分後~
筆者「ごめん予習した内容全然覚えてねぇわ」←ごめん

BKCの学食シーキューブ
まともな食事をとらないと後が辛いと思ったので、皆でオシャレな学食シーキューブに行く。安いなーと思ったが、更に安い学食もあるらしい。


晩飯の後もお笑いゲーム道場は続く。例えば…


さこやん「ストーリーの台本を書いてきました!」
筆者「すげぇ!ありがとう!」
~数時間後~
筆者「ストーリーデモ画面を実装する時間無いね…」←マジごめん

筆者「コミュニケーション画面でユニティちゃんを移動させたいよね。やってみる」
~数時間後~
筆者「ごめん。ちょっと長引きそう」←おいやめろ
~数時間後~
筆者「できたよ!でもコミュニケーション画面に組み込む時間ないね…」←マジごめん


タコタコパーティ 1回目(一日目の夜食)
タコタコパーティ 2回目(二日目の朝食)
BKC会場は夜間閉門されるので食糧調達が出来なくなるのだが、何とウエストウニティス株式会社の後援によりタコタコパーティが開催される事になった(たこ焼きとタコスの提供)。ありがとうございます。
 
しかし開発は進まない。翌朝になって、筆者もだいぶ壊れてきた。
 
冥王星チームの皆さん
極めつけはこの写真である。もはや説明不要。



しかしマージが始まると一気にゲームらしくなった。さらに手の空いた者たちがタイトル画面、エンディング画面を作り、KENZO-STUDIOさんと綾河キラリさんの音楽素材からBGMを選定し、最終的に以下の機能が実装された。
  • タイトル画面:ペンタ
  • ミニゲーム1(蜘蛛):しょう
  • コミュニケーション:のむそん
  • ミニゲーム2(馬):モリタク
  • 顔晒し画面(仮画像):ペンタ
  • エンディング画面:さこやん
  • BGM選定:さこやん
  • マージ作業:筆者

筆者「順番にコミットしてね」
モリタク「Terrainアセット使ったからコミットしたよー」
のむそん「Terrainアセット使ったからコミットしたよー」
筆者「あれ、何かTerrainオブジェクトが全部真っ白になってる」

まあこんなトラブルもありましたが、今思い返しても、最後の開発スピードは異常だった。「その時不思議な事がおこった」としか思えない。

しかしこのゲームの肝である、顔晒し機能(カメラで撮影したユーザーの顔を晒す)は時間内に完成しなかった…。


発表編

発表用ホワイトボードその1

発表用ホワイトボードその2

いよいよ発表の時間である。発表は以下のルールで行われた。
  • 全10チームを前半チーム・後半チームの2つに分ける
  • 前半チームは40分間何度もゲームを発表し続ける。後半チームのメンバーは発表を見て、面白いと思ったゲームに投票する
  • 前半チームの発表時間が終わったら、今度は後半チームが発表し、前半チームが投票する
  • 一番得票の多いチームが優勝
なお発表は学生のメンバーにしてもらった(大勢の前で説明する練習よ)。


リアルユニティちゃんに遊んでいただく

野間先生にも遊んでいただく
リアルユニティちゃんや立命館大学の野間先生に遊んでいただいた。入賞は出来なかったが多くの方から得票を得た。

しかし顔晒し機能が!このゲームの肝である顔晒し機能が出来てない!!

あまりに悔しかったので、1週間後に開催されるUnityの勉強会「Unityクリエイターズ(うにくり)」までに顔晒し機能を完成させ、LT発表することにした。
ペンタさんからソースを頂き、Visual Studioと格闘すること数日間、完成したのは勉強会当日の午前4時だった。




うにくり発表編


うにくりでの発表におけるツイート(16時17分頃から)
そしてUnityクリエイターズでの発表である。当日のツイートは下記まとめで見られる(16時17分頃)。

顔晒し機能 種明かし
会場は大いに盛り上がった。やったぜ。

顔晒し機能 技術的解説
顔晒し機能を技術的に解説すると、以下の通りである。
  • 展示者はカメラアプリをバックグラウンドで密かに起動しておく
  • プレイヤーがゲームを起動すると、UnityゲームとカメラアプリがTCP接続を確立する。
  • コミュニケーション画面でプレイヤーがユニティちゃんにタッチするとユニティちゃんが可愛いアクションをとるが、バックグラウンドではUnityゲームがカメラアプリに撮影命令を出す。
  • カメラアプリはUnityゲームのStreamingAssetsフォルダにキャプチャ画像を格納する。
  • StreamingAssetsフォルダに格納されたファイルはUnityでビルド時に統合されなくなり、ビルド後に変更することが出来る。
  • エンディングでプレイヤーの顔を表示!
  • プレイヤーは「俺、二次元のキャラにこんなにニヤニヤしてたのか」と絶望する。

今回はカメラ撮影機能をVisual Studio 2012とopenFrameworkで実装した(Visual Studio 2013ではopenFrameworkのコンパイルエラーが発生するので注意!)
しかしUnityクリエイターズでの別の発表で、Unity標準のWebCamTextureを使えば簡単にカメラ撮影が出来ることを知ったのだったorz




さいごに


参加者の記念撮影 (BKC公式サイトより転載)
というわけで、2日間のユニティちゃんゲームジャムが終了した。
筆者の感想は「やりきった」「最後の最後で何故かゲームになっていた」である。は「デスマーチになったこと」「Unityクリエイターズの発表で会場全体が大爆笑したのを、メンバーに見せられなかったこと」である。
 はぁーやっぱゲームジャム楽しいわ。また参加しよう。

これにてユニティちゃんゲームジャムの参加レポートは終わりなのですが、BKC会場やUnityクリエイターズ会場では他にも面白そうなゲームがあったので、いつか紹介記事を書く予定。

0 件のコメント:

コメントを投稿