アカデミー内ハッカソン個人的反省会②
前回の続きです。今回は当日にしたことと反省まとめです。
当日に関しては...大きく分けて2つ問題にぶちあたりました。
発表用のスライドを当日まで全く作っていなかったので、当日急いでチームメイトに作ってもらうことに。
→スライドはとても素晴らしいものでした!!でもあまり準備が出来ていないまま発表に突入してしまった...
また、マージが上手くいかず失敗し時間をロスしてしまった...
→unity側でゲームが完成していても、VRに対応させた時に不具合が生じることがある。
具体的にはunityで動かしていると問題ないのに、HMDをかぶると斜めのコースをすり抜けてしまったりなどしました。
コースが急斜面だとunity上からVRにした時に当たり判定の面がずれてコライダーをすり抜けてしまうことがある...らしい。
どうすれば失敗しなかったか
チームの方がタスク表を作っていた時や試験後の話し合い時に、発表スライドをどうするのか、また発表の流れをどうするのか自分がチームに言及していれば良かった。
マージについては、FOVEを持っていたリーダーに話をして、自分の作ったコースでHMDを使っても問題なくクリアができるかどうかを先に検証してもらえば良かった。(コースのブラッシュアップに夢中になっていて、そこまで頭が回っていなかった...)
...それでも当日予想していたよりは何とかなったのは、
・スライドができてない。
→作業分担してなんとか終わらせよう
・マージが上手くいかない。コースがすり抜ける。
→コース面のパーツはコース担当に集める。その後リーダーの本データに送るという流れを作ろう。プラスでコライダーを貼ってなんとかしよう。
など、問題点の現状把握、改善するために今何をすべきかが一応明確だったからだと思った。(当日の作業分担大事。何もやってない人を出さない)
他の班のコンテンツを体験して感じたこと
VRと実際に感じる感覚を組み合わせると没入感が物凄いことになる...
ブランコに乗って靴飛ばしをするというVRゲームで、ブランコの動きに合わせて座ったゴロゴロ椅子を誰かに揺らして貰うと本当にブランコに乗ってる感が凄かった(アルプスの少女ハイジみたいで楽しかった)。
またスノボーVRで、舞ってくる雪と一緒に扇風機でリアルに冷たい風を受けるという気温をVR空間のものに合わせるものもありました。(これもかなり没入感があって楽しかった)
あと企業枠の賞をとっていたボルダリングVRも楽しそうで体験したかったのですが並んでいてできなかった...泣
VRで体験したいと思わせるには何よりも楽しそうって思わせるインパクトが大事なのかも...?
まとめ!(長くなったので簡単にまとめます)
担当割り振りは自分の得意面をなるべく生かすべき!もちろん苦手なことからも逃げない!
はじめにイメージ画を使って共有するとゲームの完成形が伝わりやすい!
各自の能力と開発にかけられる時間を考えたうえでのタスク表の作成!このときにゲーム開発だけじゃなく発表スライド作成とか発表練習とかもタスクに入れる!
バージョン管理と共同開発環境大事!!(夏までにGitの勉強...)
VRにおいてはHMDつけた状態でゲームをクリアできて初めてゲームとなる!!(当たり前)
あとはチーム内の雰囲気とか割と大事かも...
とにかく次にチームでゲームを作るときはこれらのことを意識して頑張りますっ!!
...同じ失敗は繰り返さない...
おわり
アカデミー内ハッカソン個人的反省会①
先日、自分が通っているアカデミーにてハッカソン(マラソンとハッカーをかけたやつで、今回はFOVEという視線や瞬きを感知できるHMDを使ったVRスポーツゲームの作成と発表)がありました。
個人的によかったことと反省点がめちゃくちゃいっぱいあるので忘れないうちに記事にしようと思って今書いています。
今後の自分宛のメモとして書いているので分かりづらいのと、めっちゃ長いです...(長くなりすぎて2つに分けました)
まず、今回は私にとって初めてのチームでのゲーム作りでした。私を含めて6人チームで、プログラミングやunityスキルの高さもバラバラな6人でスタートしました。
ハッカソンでのテーマは、
障害を持つ方がVRを使うことで健常者以上の体験ができるような身体拡張コンテンツを作ること
(素晴らしいテーマだと思いました...)
自分たちが作ったゲームは、ホバーボード(back to the futureに出てくる浮かぶスケボーみたいなもの)に乗ってコースを駆け巡りゴールを目指すというVRゲーム。
初日にスポーツゲームを作るということを知らされ、スキーがしたい→スノボーがしたい→いや、浮かぶホバーボードにしよう!!みたいなかなりその場の雰囲気で作るものが決まりました笑
具体的な当日までの流れ、何をしたか
ハッカソン2週間前の初日はテーマ発表からのアイディア出し、大まかな担当割り振りをしていました。(この時点では本当に大まかなもののみ。ステージ、キャラ、スクリプト、モブキャラ、BGM等)
実は自分は以前に他にゲーム作成をしていて、その時に1番作っていて楽しくて、自分の中では他よりマシにできるなと思っていた事がステージ作成だったので、できればステージ作成をしたい...とその旨を自分の以前作ったゲームや作品等と共に班員に伝えました。(スクリプトメインとか他の担当だったら絶対にチームに迷惑をかけると思った)
その後、ハッカソンテーマ発表三日後くらいにリーダーが先駆けてイメージ画を描いてくれたため(これは大きかったと思う)チーム全体に具体的な作るゲームの内容が伝わったのがとても良かったです。
自分はそのイメージを元にstage担当だったこともあり、それっぽいステージを検索してインプットしまくってテストステージとplayerを試しに作ってみました。(プロトタイプです)
イメージにもあったネオン感のある都市を表現するのにpost processing stackというアセットのBloom機能がとても綺麗にネオン感が仕上がったため、これはいろんなゲームで重宝するなと思いました。
その後unity試験があり、チーム打ち合わせ。(この時点で残り1週間)
試験後の打ち合わせで話したこと
改めてチームの役割分担(この時に初めて会ったチームの方もいたため)
各々、具体的にどのくらいハッカソンに時間を割けるかの確認
スクリプトをどの程度書けるのかの確認
unityのバージョンの統一(全員おなじverのunityをこの日にDL)
共同開発に使うツールをどうするかの話し合い(Gitとか)
また、どこかで1度グループで集まって作業ができるかを確認したが、チーム全員が集まれる日がなかったため、Skypeで通話することに。
Skype通話でしたこと
タスク管理表の作成(大まかな分担を元に具体的にやることリストとやる人を細かく決めていた)
この時にチームの方が意識してくれたのが、プログラミングが得意不得意であっても全員が何かしらのスクリプトを絶対に書くこと(実力をつける、経験にするため)
またチーム制作であり、Gitやunitycollaborateを使って共同作業を試みようとしましたがGitは上手くいかず、unitycollaborateとslack内でpackage化したデータをやりとりし当日マージするというやり方に。。
なぜできなかったのか
→Gitをまず最初にやろうとしたがGithubを使った開発経験のある方がチーム内に1人のみ、インストールし共同作業が出来るところまで至るのに学習コストがかかりそうだっため断念(今回の開発期間は2週間であり、最初の週はunity試験勉強もあったためとにかく時間がなかった)
→unitycollaboratieについては一応繋ぐことには成功。データのアップロード等も問題なくできた、ただし無料で使えるのが3人までで、他の人はpackage化したデータでやり取りするという形に。
その後は各々自分の役割通りのものを作りpackage化してslackでやり取りして...という感じでした。
(ハッカソンまでの5日間くらいの自分はほとんどステージ作ってた記憶しかないです...笑)
ステージ作る時に自分が意識したのは、なるべくアセットを使わないで自分で作る。
壁を走ったりジャンプしたり飛んだり、走っている時に爽快感を感じさせるような構成。(めっちゃ〇リオカート参考にしました)
自分の作業スピードが遅すぎて正直かなり妥協をしました...レースゲームって単純に考えれば分かりますけどステージめっちゃ広いです、半端な量じゃないです笑
なのでもう1人手伝ってくれる方を頼むべきでした。。
そして自分の担当がもうひとつ、タイム表示のスクリプトがありました。スクリプト自体は本当に単純なものでタイムをスタートから計って表示し、ゴールについた時点でタイムを止めてゴールタイムを表示するというものです。
迷っていたのがこのタイム表示のUIをどこに配置するか。
VRにおける文字の表示は空中に配置するかカメラに固定して一定の場所に表示させ続けるかというところなんですが、、ハッカソン前日にもくもく会にてニムさんという方から聞いた話で、人間の視界は人によって広かったり狭かったり個人差があるらしくて、VRにおいても人によって見える画面の範囲が違うみたいで。
ある人には端っこに文字が見えるけど他の人には見えない、なんてことになったら大問題...!!
かといってど真ん中にあるとレースゲームにおいては邪魔になってしまう...建物にそれっぽい感じに組み込んでみたところ、いい感じになったのでそれで行こうってなりました。(これが後にアカデミーの先生に言及してもらえました...!!ニムさんに感謝!🙏)
...つづく(果たしてここまで見てくれている人はいるのだろうか)
1weekgamejam初参加
今回は初めて1週間ゲームジャムというイベントに参加しました!
以前にprobuilder game jamというイベントでもゲームを投稿していたのですが、あれはunityのチュートリアルを応用したものだったので...内容を考えて自分で一からゲームを作ったのは今回が初めてでした。
今回作ったゲームは、GIRIGIRI Cube Jump!!というゲーム。
SDunity-chanを操作してCubeのギリギリでジャンプをしてキューブからピアノ音を奏でてコースを進んでゆくゲームです。
https://unityroom.com/games/girigiri_cube_jump
テーマが発表される前に考えていたものとは全く別物になりました(笑)
思い描いていたゲームを作ったというより、自分にできる機能を作ってみて
それをもとに内容をふくらませていった感じでした...!!
(個人的に当たり判定を勉強したかったのでOnTriggerEnterとかOnTriggerExitを使ったキューブの仕組みを作ってみました。)
最初はOnTriggerEnterを使って音を鳴らしていたのですが
playerが当たるたびに音が何度も鳴るので物凄くうるさかったので
OnTriggerExitに変更...
またplayerのSDunitychanに普通のunitychanのコントローラを
少し書き換えたものとanimationを設定し操作できるようにしました。
スクリプト部分はスタート画面、ボタンでシーン遷移を作ったことと
タイム表示と鳴らした音を表示するとかくらいですね...(まだまだ少ない)
ゲームを1から作り終えてみた率直な感想は、、、
自分にはまだまだ技術が足りない!!!
unityを使ったC#本を少しかじったくらいの自分ではまずスクリプトが全然書けない!
○○実装したいな→ググる
→ネットの情報の中から今の自分にできそうなやり方でやってみる(この時点で理解できてないことが多くて自分にできることが少ない)
→ネットのやり方でまねしていてもうまくいかなかったり...(どうしてうまくいかなかったかを突き止める力がまだ弱い)
...これは作りながらちょっとずつできるようになっていこうかなと。
今回の反省点と次に生かしたいこと
テーマが出る前と初日に作りたいゲームを思い描いていましたが実現するためのプログラミング力unity力が足りず断念...(時間の無駄であった)
何するか迷って想像膨らませすぎて何もできないよりはまず自分にできることから始めてみること!
またunitychanのコントローラースクリプトがこのゲームにおいては難しかったのでもっと操作性の良いものにしたい(自分なりのものに作り替えたい)
次回はできれば自作したキャラクターに自分でアニメーションを作って操作できるようにしたいなぁと...(淡い願望)