(第三回)Unityでゲーム開発 作成編①

(第三回)Unityでゲーム開発 作成編①

目次

はじめに
前回の修正
作成開始
次回予告

はじめに

今回は、前回の最後に作成した玉転がしゲームの修正をした後、次回予告でお伝えしていたピタゴラスイッチ風なゲームを作成していきたいと思います。

前回の修正

前回作成した簡単な玉転がしゲームですが、玉を止める仕組みを作っていなかったので、下まで落下してしまいました。意図していたことと違う動きでしたので、修正していきます。

壁を作って、玉の動作を止めようと思うので、Cubeを4つ作成し、四方を囲みたいと思います。Cubeの作成方法は第二回の記事を見ていただけたらと思います。

このような壁が出来ました。多少数値で微調整する必要がありますが、見栄え良く作成することが出来ました。残り三枚も同様に作成します。

四枚壁を作るとこのようになりました。左右と手前奥の壁で名前はグループ分けしています。枡のような物体になり、外見がすこし格好悪い気もしますが…
とりあえずこの仕組みで、玉が止まるのか検証します。

検証の結果、だんだんと速度が遅くなり、最終的に玉が止まるところまで確認することが出来ました。今回の検証で、問題なく予想した動きは再現できましたが、構造が簡単すぎるのと見栄えが面白くないのが問題点となりました。この点に関しては、だんだんと改善していこうと思います。

作成開始

いよいよ、ここから本格的な作成を開始していきます。まず構造を複雑にしていきたいので、何層も横断するように玉が転がる土台を追加していきたいと思います。

土台を作成し、距離を伸ばしていきたいと思います。距離を伸ばしていくと、視点が見づらくなってくるので、Scene画面でマウスのホイールやキーボードでカーソルキーを使うことで、全体を見渡したり、詳細に見たりすることが出来るので活用してください。

転がるだけでは面白くないので、ドミノ倒しのようなギミックが出来たらと思い、板を三枚用意しました。

今回のように同じオブジェクトを作成する際は、

  1. オブジェクトを右クリック
  2. Duplicateをクリック

この手順で進めることで、選択したオブジェクト同じ要素のものが作成されます。(上記写真も参考にしてください)


ドミノ倒しが実現できる!と思ったのですが、坂の傾斜が緩く、玉の速度が出ず、まっすぐに走らずに落ちてしまいました。初めて転がした際は、傾斜をきつくしていたため、この点に気づいていませんでした。

今度はかなり急な傾斜にしたので、成功するだろうと思っていたのですが、板に当たった瞬間に玉が跳ね返されました。前回の記事で紹介した玉に設定されているRigidBodyの質量の調整などもおこなったのですが、やはり板に跳ね返されてしまいました。調べてみると、板の方に衝突判定が備わっていないので、倒れないとのことでした。

では、すべての板にRigidBodyの要素を付与すると解決するのかと思い、設定してみました。下のgifが設定後の動作検証です。衝突の箇所が気になったので、カメラワークを変えています。

板にRigidBodyを設定することで、ドミノ倒しを表現できたのですが、今度は玉が速度を失ってしまい、進めなくなってしまい、またしても落下という形になってしまいました。玉の速度や衝突した際の判定を調整する必要があると思いました。ここの調整は次回以降進めていきたいと思います。

次回予告

今回も予想通りにいかない結果になってしまいました。次回は今回失敗した点の修正を行い、距離の長いコースを作っていこうと思います。また、距離が増える分カメラワークが難しくなってくると思うので、Playerである玉を追いかけるような仕様にしたいと思います。