おれんじりりぃぶろぐ

きっと何者にもなれないエンジニアのブログ

Unity1週間ゲームジャム「密」に参加した

f:id:orange_lily27:20200509224119p:plain:w400

概要

unityroom主催の1週間ゲームジャム(unity1week)に参加しました。2回目の参加です! 定期的に開催されていて、毎回変わるお題に従って1週間でゲームを作り、もう一週間で投稿されたゲームを評価するという仕組みになっています。

今回、4/27〜5/3に開催されたお題「密」に参加したので、その備忘録です。

どういうゲームなん?

作ったゲームはこちらです。
人類が新種のウイルスと存亡かけて闘うピンボールゲームなっています。よかったら遊んでみてください。

unityroom.com

目標

今回のゲームジャム参加にあたり、何かしら目標を持ってチャレンジすることにしました。結果が見えやすく次に繋がるし、モチベーションも保ちやすいかなという意図です。

以下の2点を目標としていました。 1. 分かりやすい、気持ちがよいゲームを作りたい 2. 前回(1回目)の参加時よりも自分のゲーム開発力や実現力を上げたい

1 に関してはユーザーにどういう感覚を体験してほしいかのユーザー視点の目標ですね。

2 に関してもうちょっと具体化するとある程度理詰めというかロジカルにゲーム制作できないか? ということです。2に関しては、制作者がどうなっていたいかの目標ですね。

ゲームシステム

とにもかくにもゲームシステムが決まらないとゲームは作れません! unity1weekは日曜深夜0時にお題が発表されてゲームシステムを考えていくとになりますが、お題が発表される前から「ピンボール」をベースにしてお題の要素を足すという方針でいました。

いやだってピンボールを面白くないっていう人いないでしょ?あのマイクロソフトもデフォルトゲームとして採用したくらいだよ。あのサイゲームスさんだってピンボールゲー出してきてるくらいだよ。 それと、ルールが分からない人もいない。だからチュートリアルもいらない。目標の1にぴったりなわけです。 あとまあ、制作期間1週間といつつもその前から準備もできるし、ピンボールという確立したゲームシステムを軸とすることで1週間で何も完成しないことはないだろうという理由でピンボールを採用しています。

そして、お題の「密」が発表されるわけです。ストレートなお題が来たわけなので、密に蔓延しているウイルスを撃退するピンボールゲームすればプレイしていて気持ちいい!ってなりそうってなりました。

大枠のゲームシステムまでできたので次にルールやデザインの作り込みです。unity1weekでは6つの評価軸「楽しさ」「絵作り」「サウンド」「操作性」「雰囲気」「斬新さ」があるのでこれらの要素と照らし合わせつつ作り込みを開始しました。 まあ、これらの要素を意識すればとりあえずはゲームとして成り立つでしょうという意図から要素別に作り込みをするという方法を今回は取ってみることにしました。

楽しさ

さっきも言った通り「ピンボール」をベースにしているのである程度は面白いわけです。ですが、あとの「斬新さ」とも関わってきますがプラスワン要素は必要です。 どうしようかなと。まあ、今世間は特殊な環境下にあるわけでこれをピンボールと組合わせれば面白いのかなと。個人的にシミュレーションゲームが好きなのでそういった発想になりやすかったと思います。 ピンボールという土台に対して、家や薬局(病院)を配置して、人が家から飛び出してきたりしてウイルスが拡散するみたいなギミックを入れることにしました。

もっと拡散モデルとか使って人口管理もしてみたいながっつりしたシミュレーションゲームにすることも考えましたが、分かりやすい、気持ちいいという今回目指している感覚から離れそうだったのでやめました。

それ以外にも小池さん、吉村さん、西村さんあたりをボールにして密つ巴の肉弾戦ピンボールも考えましたが不謹慎と捉えられたり、ネタが滑って終わっていく可能性のほうが高そうだったのでやめました。

絵作り

デザインセンスないんですわ。unity1weekは毎回300以上のゲームが出てくるので見た目でインパクトが与えられるのは大きな強みなんですが残念ながらそれができません。 じゃあ、どうするか。気持ちよさや分かりやすさを邪魔しないようなシンプルなデザインでいくことにしました。 アセットや素材も活用しているので、デザインベースをシンプルにしておくことで組み合わせも案外うまく行きました。

コメントでシンプルで良かったと言ってもらえているのである程度狙い通りいったと思います。ただ、他の人のゲームで遊ぶと絵作りできる人いいなってなりますね。

サウンド

サウンド大事ですよね、大事。 効果音については、「当たった」とか「ゲームクリア」とかリアクションがあった時につけると思うんですが、人とウイルスの衝突や建物とウイルスの衝突にはあえて音をつけなかったです。 このゲームの目的がウイルスを撃破することなので、そこを目立たせたくカプセルとウイルスの組み合わせのみ音がなっています。あんまり毒々しい音にするのもあれかと思ったのでぽこっみたい音を見繕ってきました。何がいいのかわからん。

BGMに関しては、教えてもらった以下のサイトから選んでいます。

音楽素材 10,245件 1/2049 ページ|フリーBGM DOVA-SYNDROME

考えていたこととしてはゲーム中とホーム画面で雰囲気を変えたかったくらいで、直感で適当に選んでいます。みんなどういうふうに選んでいるのか。BGMマイスターの資格ほしいですね。

操作性

「分かりやすい、気持ちがよいゲームを作りたい」っていう目標の中で一番の重要要素ですね。 自分はこの操作性の中にルールの細かい仕様も含まれていると思って操作性について考えました。

まず、得点制にするのかタイムアタックにするのかですね。ウイルスを全部撃破したぞ!、気持ちいい!ってなってほしいので必然的にタイムアタックにしました。 あとは、失敗要素(ゲームオーバー)をなるべくないようにしています。カプセルの大きさのわりにフリッパーの間隔が広めなのでそれくらいです。これもなくてもよかったかもと思っています。 ゲーム操作がそれほど上手くなくてもクリアしてほしいし、気持ちいい!ってなってほしいのでこのような設計にしました。 ただ、それだと玄人の人向けの要素が皆無になってしまうのでランキングを入れてタイムアタックで競ってもらうという仕組みにしています。でも、魅力としては弱いですね、、、ゲームバランス。。。

雰囲気

雰囲気、これね、よく分かんないですよね。 これを意図的に作って出せる人は天才ですね。

斬新さ

今回のゲームは、あまり斬新さを意識していませんでした。 既存のピンボールをベースにウイルスというシミュレーション要素を足して新しいアイデアを作るというのは上手くいったかと思いますが、「楽しさ」を考える上での副産物かなと思います。

総評

目標1については、ありがたいことにいただいているコメントを見るに達しているのかなと思います。軸を置いたことで仕様やルール決めもスムーズにできました。「分かりやすい、気持ちいい」に反しているものはどんどん排除していきました。

目標2に関してロジカルにゲーム制作できないか?はだいたいこんな感じの流れになるのかなと。 1. ユーザー視点の目標、開発者向けの目標を決める 2. 目標を満たすような既存の遊び方プラスワンアイデアを考える 3. 「楽しさ」 「絵作り」「サウンド」「操作性」「雰囲気」「斬新さ」の要素別に作り込みをする

これをやれば一応ひととおりゲームができるというのは自分の中で持てたのかなと思います。 ただ、欠点はやっぱりあって型にはまったゲームしかできない気がします。 要素も入れ替えるなり削るなりしたほうが良さそうです。「斬新さ」「雰囲気」は作り込み要素としてはほとんど捨てになってしまっていました。 あとこの作り方だと頭痛くなりますね。うん、やめたほうがいいです。

というわけで、目標に対してはそれなりにいいアプローチができた気がします。 じゃあ、反省点はないのかというとそんなことはなくて書ききれないくらいあるわけですが、一番痛感したこととして「分かりやすさ、シンプルさ」だけだと面白いゲームに対するアプローチが弱い。ああ、ゲーム作るのって難しい。

SceneViewでCmaeraの速度を変える

Unity2019.3を試してみて気づいた機能があったのでメモ

こんな機能ができてました。

f:id:orange_lily27:20200306171122p:plain:w300

カメラ速度など変更できるようになっていました。 ちなみにカメラ速度の変化は、マウス右クリックでw:前進、s:後進で確認できます。

以前はSceneViewMotionを無理やりリフレクションして値を書きかえるといった方法もありましたがもう必要なさそうです。

GameObjectの子オブジェクトを全削除する方法

よく使うのでメモ。

最初は以下で対応できるかと思ったが、親自身も削除されてしまうのでやりたいことと違った。

foreach ( Transform tr in icon_parent.gameobject.transform )
{
    GameObject.Destroy(tr.gameObject);
}

以下で親は残して子どもだけ削除できる。

for(int i = 0; i < icon_parent.transform.childCount; i++)
{
    Destroy(icon_parent.transform.GetChild(i).gameObject);
}

launchdでnodeが起動できなくなった

launchdでnode起動をしようとしたところ下記エラーがでたの回避した話です。

env: node: No such file or directory

path参照が上手くいってくれていなかったのでplistの中に指定したら行けました。

<key>EnvironmentVariables</key>
<dict>
  <key>PATH</key>
  <string>実際のPATH</string>
</dict>

Unity1週間ゲームジャム「さがす」に参加した

概要

f:id:orange_lily27:20191027210758p:plain:w300

UnityRoom主催のUnity1週間ゲームジャム(10/14~10/21)に参加したのでその備忘録的な感想です。

作ったゲームはこちらです。

unityroom.com

お題発表

まずはお題が発表されるのでゲームの企画を考えます。 今回は「さがす」がテーマだったのでそれに合った企画を考えます。 パッと思いついたのが以下でした。

  • 2Dアクション + 探索要素をつけ加える
  • 間違い探しゲーム
  • たくさんある文字の中から特定の文字、単語を見つける

時間がないことは明白なので、この中から選ぶこととしました。 マリオ的な2Dアクションを1度作って見たかったので「2Dアクション + 探索要素をつけ加える」で行くことにしました。

探索要素は暗闇の中で懐中電灯を照らして鍵を見つけるというギミックに落とし込みました。

制作

平日、あまり時間が取れないことは分かっていたので初日の祝日一日で基礎実装を組めるように頑張りました。
とはいえ、あまりに適当ではなくステージの追加などはかんたんにできたほうが良いだろうと最低限の共通部分には気を使いました。
その辺の話は別途ゲームづくりの実装の話としてまとめたいと思います。
あと、普段慣れていないWebGLのプラットフォームならではのハマりどころもあったので早めにビルドは一度しておいたほうが良いです。

おれんじりりぃ on Twitter: "この問題な気がする https://t.co/wNzsQLTapI"

おれんじりりぃ on Twitter: "これに嵌ってた、今の時点で気づいて良かった https://t.co/1N552Gj3bL #unity1week"

投稿

いざ、投稿です。ちょっとだけ遅刻しましたが無事に公開です。 unity roomへの投稿方法は管理人のnaichiさんがまとめてくださっています。

公開にしなければ途中でバイナリを上げることも可能なので一度早めに上げておくのがおすすめです。 一度、公開してもアップデートできるのである程度出来上がった段階で公開してしまうのが良さそうです。
締め切り時間は設けられていますが、遅刻もOKの仕組みです。特にペナルティもありません。
が、お互いに遊び合う評価期間がもう1週間設けられているので投稿が遅くなるほどその点は不利になってしまいます。時間を守ることを目指すのが良さそうでした。

反省

評価結果です。締切から1週間後に評価期間を経て発表されます。

f:id:orange_lily27:20191027204727p:plain:w300

どれもこれも突出する部分がなかったので、次回は1要素でも時間をかけてインパクトを出せる要素を作りたいと思います。
あと、アップロード時にアイコンの指定ができますが、これはプレイ動画のGIFが良かったです。一覧で並んだときにどんなゲームかすぐに分かるのでプレイしてもらいやすくなりそうです。

面白かったゲーム

評価期間中は、誰が自分のゲームを遊んでくれたかが分かります。
ランダムに遊ぶボタンも用意されているのでお互いのゲームを遊びやすく評価しやすい工夫がされています。

自分がプレイして面白かったと思うゲームいくつかメモしておきます。

ノベルゲームでめっちゃ時間はかかりますが面白かったです。

くだらない(いい意味で)んだけど超面白い。 ローグライクとの組み合わせも良かったです。

ねこかわいい。

今後の展開

ステージを増やすのとジャンプの気持ちよさをもう少し探求したらiOS/AndroidのStoreでも公開を目指そうと思います!

まとめ

Unity1週間ゲームジャムはとても手軽に参加できるし、お互い評価しやすいされやすい仕組みになっているのでまったく遊んでもらえないということもないです。 ゲーム趣味で作っている人ならちょっと無理にでも時間作って参加するととても楽しいイベントです!
次回も必ず参加しよう。