tanaka's Programming Memo

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

Unity1DayChangeJamに参加しました!

ぽにさん( @PonixNews )主催のUnity1DayChangeJamに参加しました!30名中の9番目。立ち上げは大変そうだし、後半は把握が大変そう、と思っていたのでナイスな順番決めビンゴでした。

f:id:am1tanaka:20180704224501p:plain

目次

作った部分

ざっくりと以下のようなことをやりました。

  • license.txtのUTF8化(文字化けしてたので)
  • M+ FONTSのmplus-2m-regularを組み込み、Textにフォントを設定。WebGLビルド時の日本語表示に対応
  • PostProcessing Stack V2の組み込みと、グラフィック設定でHDRを有効にして、列車のバックファイアーと血をBloomで光らせる
  • momoさんが作成された17体の作者モデルを使ったスネークゲームをぶっこんだ

スネークゲームを改造する方法

スネークゲーム部分は、以下のような感じで簡単に要素を増やしていただけます。ネタが詰まったらスネークゲームを豪華にしてあげてください。全然違うゲームにするのも可。

作者ーズのモデルを増やす

17体以降のモデルが追加されたら、SnakePlayerオブジェクトのFollow Modelsにモデルを追加すれば、自動的に増えるようになっています。

f:id:am1tanaka:20180704220447p:plain

現在はここに16体設定していて、残りの1体はぽにさんで常に先頭にいます。後続キャラはランダムに出現させているので、この順番に意味はありません。

設定するのはプレハブではなくモデルデータなのでその点注意を!

敵を増やす

次のことを設定すれば、敵として処理されます。

f:id:am1tanaka:20180704221037p:plain

  • TagEnemyにする
  • 何らかのColliderを設定して、Is Triggerはオフにする

あとはご自由にどうぞ。

Random Spawnerスクリプトをアタッチすると、Colliderが何にも衝突しないようにステージ内のどこかに配置します。

ステージを拡張する

Staticを設定した上で、ご自由に拡張してくださって構いません。広さを変更した場合は、敵やえさを出現させる範囲の調整が必要になるかも知れません。

SnakeGameManagerオブジェクトのSnake Spawnerスクリプトが出現範囲を定義するものです。

f:id:am1tanaka:20180704221524p:plain

このオブジェクトのSpawn BoundsCenterExtentで、出現する範囲の中心座標と、X,Y,Z方向の大きさのを指定します。設定した範囲は上記の例の通り、赤いGizmoで枠が表示されます。

スピードアップ

プレイヤーを徐々にスピードアップさせるなどもいいかなと思います。

f:id:am1tanaka:20180704223455p:plain

SnakePlayerオブジェクトのSpeedプロパティが初期速度です。初期値は4なので、秒速4メートルです。privateで宣言してますが、多分変更するのはSnakePlayerスクリプト内だと思うので大丈夫だと思いますし、駄目ならお好きに変更してください!

企画の紆余曲折

スネークゲームを作ることは、作業当日の朝飯後に決めました。プロジェクト開始から企画決定までの紆余曲折の記録です。

開始当初

ファーストランナーのちょいちょいさんによる凄まじいインパクトのものが出てきました。

続けてろますた38さんが列車を走らせて豪快にぽにさんを放り出す運ぶという展開に。

テンション高!この辺を受けて、当初はこんな感じのものを考えてました。

f:id:am1tanaka:20180628230930p:plain

列車で無事に運べたぽにさんの人数が、巨神兵的な感じで立ち上がって、世の終わりを告げるという感じのもの。真マジンガー 衝撃! Z編の最終回とか、シンゴジラとか、アルマゲドンとかそんな雰囲気。

ゲームとしては、巨神をブルームで光らせながら立ち上げて、時々光線を撃ってきて、それが地面に当たって岩を飛ばしてくる。その岩をよけながらエネルギーを貯めて、突撃するような、スーパーファミコン版のスターフォックス的な。

続いて、3日目にカフェさんが画面遷移、4日目にパンさんが雨の演出、5日目に麻々ソーマさんがノベルエンジンを入れて下さりました。ノベルエンジンによって、冒頭のストーリーがうまく実装できそうな手応えになりました。

6日目にnaichiさんがエラーを解決して下さり、別展開としてコインプッシャーが実装されました。コインプッシャーとアルマゲドンだとあまりに展開が違うな^^;と思い、この段階ではダライアスみたいなステージ選択を入れようかなと考えていました。

7日目に転機

そして7日目。momoさんがコインプッシャーに最初の17名の参加者のモデルを追加して下さりました!

自分のもある!これを活かさない手はありません。アルマゲドンは没にして、これらのキャラクターを活かせる作品を考え始めました。

パズルボブル的なやつ、おはじき的なやつなど考えつつ、グラディウスのオプションがキャラクターになってるやつなどあれこれ考えているうちに、レミングスボコスカウォーズのようなものがまとまりました。高い場所をキャラクターたちがうろうろ適当に歩き回るので、落下しないようにマウスで方向を修正しながら、ところどころ捕まっているキャラクターを解放してゴールを目指すというもの。

f:id:am1tanaka:20180628222756p:plain

フライングですが、ProBuilderを使ってステージも作ってみてました。が、どうもしっくりこないので考え続けて、勇者ヨシヒコのドラ〇エ風シーンが浮かんできました。あれでスネークゲームを作ればいいか、ということで今回のやつに辿り着きました。

当日

担当日の朝、急遽こんなのも考えました。

f:id:am1tanaka:20180628225045j:plain

狙う方向を決めて仲間を発射していって、ブロックを崩して、戻ってくる仲間を回収するようなゲーム。以前、ニカイドウレンジさんのイベントで遊んだゲームから着想したものでした。これはこれで面白そうなんだけど、作る必要のあるものが多すぎるなと思って、スネークゲームに戻して実装しました。

まとめ

トモぞヴPさんが参加表明をされているツイートを見てこの企画に気づきました(TL全部読んでないですすみません)。面白そうだし、1日だから負担も少ないしと、早々に参加を決めました。

毎日の変化が大きくて、当日を迎えるまで何が出てくるか分からない楽しさがありました。バトンタッチ後も進化を続けていて、何かあればみんなで解決策を交換してと収穫も多いです。

素敵な企画を提案、運営して下さったぽにさん、ありがとうございます!参加者の皆さん、楽しい雰囲気や刺激をありがとうございます。まだまだ完成まで精鋭の皆さんが控えているので、どういう変化を見せるか楽しみです。

最後に。誰か通しのスコアを用意してランキング入れてください~。

あとBGMや効果音なども入るといいなぁ~とか書いてたら、青木ととさんがスネークゲームをパワーアップしてくださってた!!!画面が全然かっこよくなってるしBGMと効果音も~~~!!!

3Dモデル、アイコン、2Dキャラに加えて、また一つ嬉しいことが増えました。momoさんのモデルも映えてます!嬉しいこと続きのプロジェクトで、本当に参加してよかったです^^

利用アセット

  • UNITY TECHNOLOGIES. Post Processing Stack V2:画面エフェクトに利用
    • Package Managerでインストールしました
  • UNITY TECHNOLOGIES. Pro Grids:ステージの配置に利用
    • Package Managerでインストールしました
  • UNITY TECHNOLOGIES. UtilityアセットのFollowTarget.cs:カメラの制御に利用
    • Standard Assetsに付属のUtilityからインポートしました
  • M+ FONTS PROJECT. :M+ FONTS:mplus-2m-regular.ttfを利用