【Unity1Week】ワケザムライ制作記録【お題「2」】
ご!ピクジンです。
unity1weekの季節がやってまいりました。
自分がu1wに参加し始めてからなんやかんやで1年くらい経ちましたね。
その割には相変わらずスパゲッティコードばかり書いてますが、ニビジムのたんぱんこぞうを倒せるくらいにはレベルが上がったことと思います。
今回は制作記録をババッと振り返ります。
作ったもの
タイトル:『ワケザムライ』
マウスをドラッグさせて飛んでくる物を斬りまくる爽快アクションです。
最近マウス買ったのでマウス使うゲームにしちゃいました。
えへへ。
今回の目的
前回のu1w参加以降、ゲーム開発のモチベーションがだだ下がりしていました。
燃え尽きるほどのクオリティでもないだろ!
調子乗んな!
そんな自分の性根を叩き直すのが最優先事項でした。
あと、おニューのPCに作業環境を移すのも目的でした。
まだ性能に見合ったもん作れないけど早いうちに慣れたほうがいいですからね。
テーマからアイデア出し、ルール決め
さて、今回のお題は「2」とのことです。
??????
なんてもんテーマにしてるんですか......
さて困った。
開始当初はモチベが低く、何か思いついてもめんどくさそうだとか駄々をこねる始末。
メモ書きに残していたアイデアの断片はこちら
- 2つの物
- チャンスは2回
- 制限時間は2秒
- 2重 重なってる
- 半分こ
- シェア
- ◎
- アメリカンクラッカー(玉が2つ)
- 2つのボタンだけしか使えない
- 2枚しか使えない
- 2つのことしかできない
-ジーキル博士の彷魔が刻(2面性をテーマにしたクソゲー)
-他のプレイヤーとゆるく協力する(ツイートを利用)
-2点を繋げれば線
めんどくさいなりに、調べればすぐできそう且つなんとなーくわかりやすそうな「半分こ」で作り始めることとしました。
まずは手っ取り早くスプライトを切断する方法を調べてみます。
出たわ。
ちょっと触ったりコードを確認して挙動を確認。
切れたわ。
勝ったな。
後でアセットストアを覗いたらもっとよさげなものがありましたが、有料だったので見送りました。
今回しか使わないかもしれないし有料なのはちょっとね......
次にゲームのルールを考えます。
さすがに出てきたものを斬るだけではゲームとして味気ない。
スカッとして普通に楽しいけどね。
「半分こ」→ケーキを切り分ける、リンゴを2つに割る
→スプライトを切ってできた2つのオブジェクトの面積を比べて、1:1に近いほど高いポイントを得られる
てなわけでルール決定。
物をスパスパ斬る気持ちよさと、均等に斬り分ける正確さを競うことをコンセプトとしました。
斬ったスプライトの面積を比べる
まずは斬ったスプライトの面積を比較する処理を作ります。
これがなければゲームになりませんからね。
スプライトの面積はPollygonCollider2Dから求めることになるのですが、こちらのスライドを参考に(どころかほぼ丸写し)しました。
先人の知恵はじゃんじゃん借りていきましょう。
面積の比較は簡単で、一方の面積÷2つの面積の合計を調べればいいわけです。
気持ちよさの追求
次は斬った時の気持ちよさを増すこととしました。
今回使ったunity-sprite-cutterは斬った後に滑り落ちるような挙動になります。
これはこれで趣があっていいのですが、若干迫力に欠けるかと思います。
こういった表現は居合切りなど斬る対象が1つのみの時に使うのが相応しいかと思います。
今回は飛んでくる大量の物を連続で斬っていくので、派手に横に吹っ飛ぶようにしたほうがスパスパ斬ってく感じがして気持ちよさそうです。
処理としては、マウスドラッグの開始点と終了点のベクトルを90度回転させたものをAddForceしてあげます。
ただ、与えるベクトルを間違えると逆に動いてしまうので、切り分けたスプライトの位置関係を判定できるようにします。
座標で判定すればいいのでは?とお思いかもしれませんが、このアセットの仕様上2つのオブジェクトの座標は同じなので無理でした。
どうしたもんかと思いながらいろいろ実験していると、どうやら以下の条件でオブジェクトを切り分けてるっぽいことがわかりました。
この条件を元に与えるベクトルを決定してなんとかやりたい動きはできました。
大まかなのでたまにおかしな挙動になりますが、それなりに動けばいいので放置。
動きはこんな感じ。
また、オブジェクトを斬れた時と斬り損ねた時で効果音を変えたり、マウスドラッグ中の音を追加したりしております。
前作の記事でも言いましたが、操作の手応えを出す上で効果音には気を配りたいところです。
さらに、オブジェクトをちょうど半分に斬れた時はより一層気持ちよさが増すように効果音やエフェクトが派手になるようにしました。
ポケモンで言うところの「効果は抜群だ!」や「急所に当たった!」みたいなものです。
飛んでくる物を作る
このゲームでやることは非常にシンプルなので、的の種類を増やして楽しみを増やそうかなと思います。
オブジェクトの動き方によって3タイプに分けて考えます。
1.落下型
上から下に落ちてくるだけのシンプルなもの
・リンゴ
・ホールケーキ(リンゴよりも大きい)
2.投擲型
左右から放物線を描いて投げ込まれるもの
・野球ボール
・サッカーボール(大きい)
・ピザ(大きいけど速度が速い)
3.飛行型
左右に真っ直ぐ飛んでいくもの
・ラジコン飛行機
・紙飛行機(滑空するように少し落ちていく)
・UFO(かなり小さくてかなり速い)
タイプが同じものでも、動き方や大きさに変化をつけて差別化します。
見た目が変わったら何かしら違いを付けるよう意識しました。
画像は画像検索で出てきた人様のドット絵作品やいらすとや素材などをガン見しながら描きました。
何がなんだかわかる程度には描けたと思いますが時間を使いすぎました。
できれば今後はやりたくない。
オブジェクトの生成処理は、経過時間毎にどのオブジェクトが何%で出現するかをcsvファイルで管理することとしました。
最初は落下型だけしか出てきませんが、徐々に投擲型も出てくるようになり、最終的には飛行型も出てくるようになってます。
遊んだ方はお気付きかと思います。
csvファイルの読み込みはこちらの記事を参考に。
重み付き抽選についてはこちらを参考に。
生成位置と角度はScriptableObjectで設定した範囲からランダムに選んでます。
タイトル画面の話
タイトル画面の雑な「はじめる」ボタンを斬って始めるようになっています。
前回ほどではないですがチュートリアルを内包しています。
黄色い斜め線に沿って斬るとちょうど半分になるんですが、どうなんですかねあれ。
マウスを使うのでマウスをドラッグさせるアニメーションを表示して操作説明。
文字での説明も入れたほうが良かったかも。
お気付きの方がいたかわかりませんが、タイトルロゴも切れるようになっています。
タイトルでいろいろ斬れたほうが面白いかな~って思って配置しました。
余裕があればもっと増やしたかったですね。
終わりに
今回の作品は触るのは楽しくできたと思いますが、ゲームの面白さに関しては並以下のように思います。
毎回斬新さで安定して戦えるようになるのが当分の目標ですね。
発想する訓練を続けていきたいと思います。
それはそれとして、どんなゲームでも完成させると気分がいいもんです。
皆さんもじゃんじゃん作りましょう。
この記事が気に入ったらサポートをしてみませんか?