第10回Unity1Weekへ参加した話

完成したゲームはこちら~
https://unityroom.com/games/10yensoccer

初日月曜日

朝起きてお題「10」を見る。
10年、10人、10世代、これは俺屍やロマサガ、ヴィーナス&ブレイブスのような壮大な大河RPGも作れるな……と思ったので、10円サッカーにすることにした。この企画で一番大切なのは自分の能力を適正に判断して作れるものを作りきることだと前回学んだのだ。
会社へ向かうチャリンコを漕ぎながら、10円サッカーの企画をモリモリにしていく。10円サッカーなのに500円玉とか使えたらチートっぽくて、クラスの成金ぽくていいよなぁと思ったのでそういう内容にする。

が、今日はジムの日なのだ。おうちに帰ってPCに向かったらもう12時だった。今日と明日とで、10円玉をはじいて、間を通していくプロトタイプを作り終えたい。

2日目火曜日

月曜のうちに仕様が決まってとても気分が良い。コインをクリックしたらチャージして飛ばす処理は、前に作ったゲームをほぼ流用して実装できた。過去の自分が助けに来てくれる激アツ展開である。ちゃんと一枚だけ選んで飛ばすようにできたところで気づけばもう2時。明日もあるので寝ることにした。

3日目水曜日

飲みの誘いがあったので帰ったのは11時。正直割と寝たかったとはいえUnityを立ち上げて少し触ればだんだんやる気が出てくるもので。10円サッカーの肝である「ほかの二枚の間を通さなければならない」を実装したかったが、やり方が皆目見当つかなかったので作業が停滞。これはまずいと、いったん切り上げてゴールキーパーの仮画像を作ることにした。小学生の時に絵画教室に通っていたので絵心はばっちりだ。

……。

こいつをゴール付近において、右に左にうようよさせる。あとゴールのところを通過したらGoalの文字が出てくるようにした。今日は終わり

4日目木曜日

昨日できなかった「ほかの二枚の間を通す」実装に取り組む。2枚の間にColliderをつけたObjectを置いて、適宜大きさ、方向、位置を調整する方針。方向と位置はうまくいったものの大きさのところで躓く。二点間のベクトルの長さ1と、オブジェクトのScale1とが一致しないのだ。大体ベクトル1に対してScale6くらい。2時間くらいうなって解決策が思いつかなかったので、ベクトルの長さを6倍する荒業で今回はしのぐことにした。

5日目金曜日

今日はお休みなのでいろいろと気が楽である。昨晩は解決策が思いつかなかったが、Lerpを使って二点間の座標を連続的に取得しつつ、そこに辺1の正方形をずーっと並べていく、というのが手かもしれない。でも今回はめんどくさいのでやらない。
あと、起動直後にクラッシュするため遊べてなかったFallout76が発売1週間でセールされ、特に補填もなく頭に来た。二度とベゼスダのゲームは定価で買わないと誓った。グラボの相性が悪いのか?GTX1060を買いに行かなければならない。

そしてこの日、開発が行われることはなかった……

※ちなみにこの件は、Spriteが16○16である一方でPixelPerUnitが100だったために発生した現象であった。アドバイスくださった@naichilabさん、@divideby_zeroさんありがとうございます。

6日目土曜日

胸いっぱいの自己嫌悪とともに昼前に起床。のろのろちびりちびりとゲームしたりしながらだらだら開発していたが、深夜0時を回ったあたりでようやくエンジンがかかり始め結局朝の7時まで作業続行。おかげでネックになっていたお手付き処理が片付いた。

7日目日曜日

最終日。前日のブーストにもかかわらず9時には起床。朝食をとってそのまま速やかに開発へ取り掛かる。
プレッシャーもあってか、遅れに遅れたタスクをどんどん挽回できた。そのままリミットの夜8時まで開発をぶっ通し、最後SEの実装がちょっと間に合わなかったが、当初にマストでやりたいと思っていたことはほぼできた。悔いの残る状態でアップした前回に比べると充実感で満ちている。

某所に残した振り返りも合わせてコチラに残しておく。

★振り返り
Unity1weekテーマ:10円サッカー
https://unityroom.com/games/10yensoccer

#月
プロトタイプ制作(✔3個の円をドラッグしてはじく)
#火
プロトタイプ制作(✔どの円をはじくか決められる、 ~ほかの2つの間を通さなければならない~ )
#水
~プロトタイプ制作( ほかの2つの間を通さなければならない )~
~ゴール時の処理 (スコアとしての所持金、リザルト画面)~
✔一定軌道で行ったり来たりするゴールキーパーくんの設置
#木
✔プロトタイプ制作( 残った二枚のコインの間に、Colliderをつけたオブジェクトを設置する)
~制限時間~
~ゲームオーバー処理(場外、キーパーに止められた、所持金ゼロになった)~
~ゴール時の処理 (スコアとしての所持金、リザルト画面)~

#金
~残った二枚の間を通らなかった時のお手付き処理~
~制限時間~
~ゲームオーバー処理(場外、キーパーに止められた、所持金ゼロになった)~
~ゴール時の処理 (スコアとしての所持金、リザルト画面)~
~ステージに障害物設置~
~イラストを差し替え~
#土
✔残った二枚の間を通らなかった時のお手付き処理
✔ゴール時の処理 (スコアとしての所持金、リザルト画面)
✔タイトル画面

#日
予備日
✔制限時間
~ゲームオーバー処理(場外、キーパーに止められた、所持金ゼロになった)~
✔ステージに障害物設置
✔イラストを差し替え
✔サウンド実装
✔ビルド提出

#追加で可能であれば
3枚のコインの編成:10円玉以外でも遊べる。そのコインでゴールをとればスコアに影響する。
✔ゴールした場所によって獲得スコアに倍率
オンラインランキング

#無念なバグ
たまに、左クリックを離してもコインが飛んでいかない。かなり気持ち悪い
SEの実装が一部間に合わなかった。

#割とイケてると思うもの
制限時間の表示を、背景の色が変わっていくことで表現した。UX的にもイケてると思う。

#実装項目単位で見ると、最低限やりたかったことは割と帳尻があっている。
#追加でやりたかったこともちょびっと拾えてる
#前回と比べたらサイクルも回るところまで作れたしけっこうな満足感
#コインの種類を増やすのはけっこうやってみたかったし、実装もそれを見据えて配慮してあるので、SurvivalShooterに戻る前にSEつけるついでにやってしまおうと思う。
#そろそろ、「趣味でゲーム作ってますわ~」って人に言えるようになりつつある。6月に勉強を再始動してから半年か~~~。

Unity公式チュートリアルSurvival Shooter日本語実践Chapter.6

6.Player Health

前回作ったHPバーをもとに、実際にHPの値を設定して、敵に当たったら減っていくようにするぞ。いよいよゲームらしくなってくるで~。

Unity公式ページ

“Unity公式チュートリアルSurvival Shooter日本語実践Chapter.6” の続きを読む

Unity公式チュートリアルSurvival Shooter日本語実践Chapter.4

4.Creating Enemy #1

4章のエネミー作成、やっていきます。今回は初めて見るNavMeshという機能が登場します。敵を任意の目的地に向かって歩かせることのできるドチャクソ便利機能のようなので、しっかりマスターしたいね。

“Unity公式チュートリアルSurvival Shooter日本語実践Chapter.4” の続きを読む

Unity公式チュートリアルSurvival Shooter日本語実践Chapter.3

3.Camera Setup

第3章では、カメラがPlayerの動きを追いかける機能の実装を行います。動画の時間も短いし、サクッとやっていくでー。

“Unity公式チュートリアルSurvival Shooter日本語実践Chapter.3” の続きを読む

Unity公式チュートリアルSurvival Shooter日本語実践Chapter.2

2.Player Character

第二章のプレイヤーキャラクター周りを実装、解説していきます。第一章に比べて今回の動画は35分!心が折れそうだ……

“Unity公式チュートリアルSurvival Shooter日本語実践Chapter.2” の続きを読む

Unity公式チュートリアルSurvival Shooter日本語実践Chapter.1

前回のモチベ対策記事で書いた通り、Unity公式チュートリアルをなぞる形で、3Dゲームのおさらいと、クオリティが担保されたゲームを作ることによるモチベ回復を狙っていきます。このチュートリアルは英語のものしか用意されていないため、ついでに日本語解説もわかる限りつけていきます。

作るもの

https://unity3d.com/jp/learn/tutorials/s/survival-shooter-tutorial

筆者の開発環境

Windows10
Unity2018.2.1f1
Unity歴5か月くらい

“Unity公式チュートリアルSurvival Shooter日本語実践Chapter.1” の続きを読む

個人開発のモチベーション低下対策を考えてみる

前回の「ゲームプロデューサーになろう」の開発中期から、明らかに開発のモチベが落ちてます。
このままではよくないので、モチベ低下の原因を探り、次のタイトルの開発ではその対策を講じていきます。

#モチベが下がっている理由
割と明白です。一つは、やりたいことに対して、アート、実装のクオリティが追い付かず結果、「こんなもんがやりたかったんだっけ」という満足しない着地点に終わっているせいです。
「ゲームプロデューサーになろう」も「フットバ出前」もどちらもそんな感じで、当初やりたかった実装からはだいぶ妥協した結果、遊び心地も微妙な感じになってます。
始めのころは、ほんとに自分で書いたコードが動くだけでもうれしいものでしたが、もうその時期は過ぎ去ってしまったみたいです。
次のステップとして自分の中で「人が触ってみて、ほんのひとかけらでもいいので面白いと思ってもらう」というハードルを設けていたのですが、このハードルは予想以上に高いことが分かったのでいったんこの旗は降ろすこととします。
また、明確な目標、マイルストーンが引かれていないのも問題です。期日を決めるとか、誰か具体的な友人知人に見てもらうとか、まだ気の早い話ですがなにかの展示会を目指すとか。そういう意味ではUnity1weekは期日も決まってるし遊んでもらいやすいし、ぴったりでした。

#上記への対策
Unityの公式チュートリアルをやってみます。アセットはクオリティのあるものが用意されていますし、コード自体もきちんとした書き方をおさらいできるでしょう。企画やアートのことを考えなくてよいので、すこしプログラミングの頻度が下がっていた分リハビリに丁度良いだろうと思います。たしか来週?からUnity1weekがあるので、0ベースで作るのはそこで再開、ということにします。
また、並行してドット絵の練習も進めます。テキストは購入しているので、こちらもそれに沿って進めるだけ。頭を使わなくていいので簡単ですね。

継続に当たってはマンネリが難関として立ちはだかります。チュートリアルをなぞるのは一見すると後退するように感じますが、変化をつけて刺激を与えるという意味でもこの対策をうってみます。

#愚痴
と同時に、自分にゲーム作りの適性があったならこんなことしなくてもすいすい進むんだろうな、もっと若いころから始めていれば……というのはいつも心に引っかかってます。
手を進めている自分の方が100億倍理想に近づけているので、やり続けるしかないのですが、30手前にするともっと時間のあったころのことばかり恨めしく思い返されるのもまた事実。まあしゃーない。