tanaka's Programming Memo

プログラミングについてのメモ。

Unity1週間ゲームジャム「積む」に参加しました(学生さん作品追記!)

2回目の参加でした。登録した作品はこちら↓

Unity Star Dust!

ユニティちゃんライセンスロゴ

この作品はユニティちゃんライセンス条項の元に提供されています

目次

参加目的

今回は以下のような目的で参加しました。

  • 学生さんの参加意欲の鼓舞
  • 前回の反省点を活かす
  • 新たな課題を見つける
  • 講義の役に立つ内容にする

ツイートで振り返る一週間

前回、やりたいと思った経過のツイートをしたので、それを交えつつ振り返ります。

6/19(月)

初日。お題が発表される前から、ベクトルや回転を練習できるゲームを作りたいと考えていて、少し準備していました。「前回の反省は無視して」というのは、少しの操作で画面を大きく動かすという企画的なことです。

内容は、Code.orgのマインクラフトの学習ソフトの3D版のようなもので、こんな画面を作ってみました。第2回の時に発表されていた、すしさんの「ころがり勇者」の雰囲気が好きだったので、構図や色を真似てみていました。

最初は、コマンドを「積んで」、スタックやキューの概念も含めることができるかな?と考えていたのですが、コマンドブロックを作って、積むのを実装して、その上でベクトルや回転を活かしたステージ作りとなるとちょっと大事です。また、ルールも煩雑になりそう。このネタは別でも活かせるので、今回無理やり作ることはなかろうということで保留することにしました。

「積む」というお題で思い浮かんだのがNS-TOWER。乗ったらブロックが落ちて積んでいけばいいかな?と。それで作ってみたのがこの画面です。これはこれで綺麗でしたが、背景が青空なのは前回やっていて、SkyBoxはどうも鬼門のように感じていたので今回は黒くしようと思ってました。

作業は講義後の夜からでしたが、予め用意していたプロジェクトを使ったことで、核となる部分の動きを実装できました。前回から大きな進歩です。

この時点で、画面を暗くして、音符みたいなものが光ながら飛んで、UNITE IN THE SKYを流して、ダンスしながらジャンプしていく、という今のイメージが頭の中にありました。レーザーの演出を移植したり、曲に合わせて背景を変化させることも思い浮かべてはいたのですが、そこまでは手が回りませんでした。

6/20(火)

カメラの制御に、耳に挟んでいたCinemachineを使ってみました。新しい環境を試すチャンスが増えるのもゲームジャムのいいところですね。自分の環境がまだ5.6だったので、Timelineは使えません(多分)。アセットストアからCinemachine Base Rigをインポートして、付属のサンプルシーンを見て使い方を調べました。アセットやオブジェクトを設定して、あとは切り替えたいタイミングで指定のバーチャルカメラを有効にすればいいので楽でした。

WebGLで音楽が鳴らなかったのは古いIEが立ち上がっていたからだったようで、通常のブラウザーに戻したら問題はありませんでした。

6/21(水)

この日は一日講義。午後の2年生の講義は、各自で作業を進めてもらいつつ、興味のある人はユニティちゃんのアニメーションの制御の組み方を見てもらいました。

ということで、この日はユニティちゃんにダンスをさせて、ジャンプ時にはジャンプのモーションに切り替えるなど、ほぼユニティちゃんの動きで終わり。それにしても、モデルのクオリティが高く、歌や声もあるユニティちゃんの存在は本当にありがたいです。

6/22(木)

水曜日の講義のまとめや、金曜日の準備で時間がかかり、それほど作業時間が取れない日でした。

音符の出現データの作り方に詰まってしまい、考えがまとまらないまま終わってしまいました。当初の目論見では、この日にステージデータを作って、あとは仕上げるだけに持って行きたかったのですが・・・。

6/23(金)

午後は講義のため池袋。午前と夜に作業しました。

音符の動きや出現方法がとっ散らかったままで先に進められそうになかったので、とにかくゲームとして完成させました。寝る時に出現データを作るイメージが降ってきました。残すは2日。

6/24(土)

この日は夕方から2年ぶりぐらいの友人たちとの会食があったので、作業は日中と帰宅後。

昨晩に思い浮かんでいた手順でスムーズに作業が進んで、無事にイントロ部分が作れました。

6/25(日)

最終日。Unity Cloudで躓いたり(Unityを再起動して直る)、Unityが不安定になったりと、締め切りらしいトラブルが発生。

結局、Unityの再起動で直りましたが、何か役に立てばと記事をアップ。

ステージデータ作成と、細かい部分の補足をして、ついに完成!画像イメージは締め切り間際にどたばた作って、ロゴはパワポで作るという荒業を^^; 最後のところは前回より準備不足になってしまいました。

20時をもって、一先ず完成!

お疲れ様でした!

気づいたこと・反省

企画について

企画関連の自分のツイート。ツイートを見ていて自分が楽しく感じたのが、面白い動きをしていたり、これはどうなるんだろう?と感じるものでした。1週間の作業時間なのだから、実験的でインパクトのあるものに挑戦して、新境地を開拓するのもいいなと思いました。

画像アイコン

今回は前回以上に失敗しました。準備も構想もしないまま、慌てて締め切り直前にでっち上げる始末。作品の顔であり、ここがちゃんとしていないとなかなか見てもらえません。これはどんなサービスにも共通すること。昔からずっと苦手な部分でしたが、モロに露呈してしまいました。

今、ようやくちゃんと作り直しました。画面サイズや作る手順も確認したので、次回はちゃんとせねば。

レベルデータの作成

今回最も苦戦したのが音符の出現データの作り方でした。音楽の進行に合わせて音符を出現させますが、プレイヤーがどの高さにいるかは毎回違います。座標を使った出現方法は使えませんので、準備していたTiledによるステージ作りの環境が使えなくなってしまいました。

こんがらがった時は、原理原則に戻るのが一番。最も簡単な音符の動きをまず1つ作り、それを出現させるためのオブジェクトを作って、それをプレハブ化して、と、ボトムアップで作ることで決着できました。

今回はゲームオブジェクトで実装しましたが、ゲームオブジェクトにデータを持たせると、プレハブに接続したまま作業をするのが危険になります。うっかり[Apply]すると、他のオブジェクトに意図しない変更が伝わってしまうためです(実際に一回やらかして、特定のパターンの全ての出現データが吹っ飛びました)。配置したオブジェクトはプレハブから切り離すようにしましたが、これだと全体に反映させたい変更は、個別に設定しなくてはならなくなります。ScriptableObjectを使うべき状況かな?と感じていまして、後日調査します。

利用したアセット

今回も沢山のアセットによって、楽しくゲーム作りができました。作者の皆様、ありがとうございました。

音符を光らせたりといった画面を綺麗に見せるのに必須のアセットです。

ユニティちゃんを追いかけるカメラの動きをこのアセットで作りました。コードがほとんど不要で設定できる優れものです。

音符のモデル・アニメデーターを利用しました。可愛い動きでゲームを引き立ててくれました。

ブロックのモデルに使いました。使い方としては全然違う気がしますがf^^; このアセットは他のプロジェクトでちゃんと使いました。

星を踏んだ時のパーティクル。キラキラ感がナイスです。

次回に向けて

次回のテーマは以下のものを考えています。

  • 破天荒な実験的な企画にする
    • 無難な作品は2つ作ったので、次はゲームジャムらしく挑戦的なものにしてみたいなぁと。次回は作業時間が取れなさそうな見込みもあり、より、ピンポイントでまとめたいです
    • 実験するテーマとなる技術か、アセットを見つけるのもテーマです
  • 操作するものでステージを変化させる
    • よい作品の多くがこの形式でした。自分の作品はタイミングだけで、積み方はゲームに関係しませんでした。そこが、ダイナミックさに欠けた理由のように感じました。自分が操作するものでステージが出来上がり、それによりゲームが左右されるルール。それに破天荒さを加えられれば、プレイヤーの操作でゲームを大きく変化させるという前回感じた課題も解決できるかもしれません
  • 画像アイコンを工夫する
    • とりあえず、解像度や作業手順のリサーチは済ませました。次回こそは最初からちゃんとしたものを出さねば・・・。つい、手を抜いてしまうところなので、一番大きなテーマかも・・・
  • ScriptableObjectの理解を深める
    • 次作品に使うかは不明ですが、単純に気になっているので勉強したいです

今回までに根本的な課題はかなりやっつけたので、項目がぐっと減りました。

まとめ

2回目ということもあり、前回のような疲労感はありませんでした。前回の反省点がかなり活きたので、参加して良かったという手応えがあったのも大きいと思います。

再生数も評価もまだまだな状態ですが、評価のよい作品を遊んでみると、確かに違いを感じます。評価を得ている作品は、評価に相応しい強みを持っています。同じ期間で作られたものなので、企画やセンスによる差がよく見えるのがゲームジャムの良いところ。自分の課題が見つけやすいです。

常に武器を入手し、研ぎ、鍛錬して、常在戦場の精神でいることの大切さを今回も感じました。参加したことによって得られた経験を大事にして、次回に活かそうと思えば、再生数や評価がそれほどでなくても、あまり気にならなくなります。寧ろ、伸び代があるということなので、次にどんなことができるか、楽しみが増えるように感じます。

追記:学生さん作品(2017/7/5)

最後に。最も重要な目的である学生さんの作品ですが、多分まだ登録されていません^^; 見つけられなかっただけだろうか。作品があることは先週確認したし、ビルドや登録手順も改めて紹介したのだけど、はてさて・・・

これ書いた時点で一本出ていて、本日もう一本登録されました!以下の2本です。

詩音君作 / レトロゲームシリーズ1

レトロゲームシリーズ1 | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

登録済みだった作品。テトリス的なやつです。画面見ていましたが、綺麗にまとまっていて却って見落としてました^^; MixModeが面白いです。絵が描けるのでシンプルでセンスがいいです。

kht君作 / bouncetower

bouncetower | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

落下してくるモノを、棒を傾けて跳ね返すというRigidbodyを活かした作品。個人的な一番の気に入りポイントは効果音。

今日までトラブルで登録できませんでした。Google Chromeが悪さしていたのか作品登録ができず、Firefoxでやってみたらうまくいきました。この辺りを自力で解決できるようになればまた一歩前進と思います。

追記のまとめ

2回目で、2作品登録に漕ぎ着けられました!よかった。就活があるので継続できるか不明ですが、今回の反省を活かして締め切りに間に合わせることができれば力は確実に付きますので、もう少し続けて欲しいです。1年生にも参加できそうな力量の学生さんがいるので、夏休み明けから参加を促そうと目論んでます。

作品が増えれば、バズる確率が上がるので僕の負担も減るのでありがたいのです。僕はポケモンで言えばジムリーダーなので、力を付けて追い抜いて欲しいです。