新人ブートキャンプに使われたユニティちゃんを転がすゲーム、UnitychanBallRollについて解析してみます。
このゲームは、Roll a ballの発展形っぽい感じで「キャラクターがステージ上に配置されているアイテムを回収しながら、ゴールへ向かう」といった内容みたいです。Roll a ballというよりは、スーパーモンキーボールでしょうか。
…まぁ
別にアイテム全部回収しなくてもクリア出来るけどな!
https://t.co/ILkKCntCJL のマリオ64的ショートカット pic.twitter.com/0gcWD65gPD
— 椿 (@tsubaki_t1) 2016年3月21日
プロジェクト
プロジェクトは下のリポジトリで公開されていました。
ゲームを実際にプレイ
ありがたい事に、参加者の何名かがゲームを公開してくれています。
全体的に自分好みの理不尽さです
昨日のUnityワークショップで作ったもの
— さかい (@kensu_ldh) 2016年3月22日
色々あって個々で作りました
多分簡単なので時間がある方は是非https://t.co/FDTWrE2gBY#UnityDojo #Unityチャレンジ
Unity道場のグループワークで作りました。ありがとうございました!#UnityDojo #Unityチャレンジhttps://t.co/1AeExx77Rv
— おおもり (@nyanko_omori) 2016年3月21日
Unity道場初参加!
— T.K (@ccddkryyzt) 2016年3月21日
ユニティちゃんでスーパー○ンキーボールみたいなゲーム作りました
WebPlayerで遊べるので是非遊んでください!https://t.co/DuKFQe44fK#Unityチャレンジ
Unity道場でゲーム作った。https://t.co/Qe86qbQ2u6#Unityチャレンジ
— hirozawa daiki (@HirozawaDaiki) 2016年3月21日
ステージの構造
ステージは非常にシンプルなパーツの組み合わせで作られています。
もの自体は壁や門、照明や塗装といったパーツがEtc/playGROWnd/playground/Models以下に含まれているので、これを組み合わせてステージを作って行くと良さそうです。
なお、殆どモデルは1m単位で移動すれば一致するっぽいです。
サンプルシーンを確認すると、GoalObj(ゴール)とBottomOfStage(ステージの底)オブジェクトが存在し、それぞれがあたり判定を持っています。
ゴールはゴール時の動作、ステージの底はゲームオーバー時の判定用みたいです。
プロジェクトには並べるサンプルも含まれてたりするので、結構参考になります。実際に自分も真似て並べてみましたが、これが中々に面白い。
Speed Level Designを思いだします。
Unityを使った、冬道や地下鉄ステージのメイキングムービー
並べ方はUnity初心者が知っておくと少しだけ幸せになれる、シーンにオブジェクトを配置する時に使える18のTips+4 - テラシュールブログ見ておくと楽になるかもしれません
コンポーネントの機能と関係
戻って、UnityChanBallRollを構成しているスクリプト群についてです。
まぁ、見るべきコンポーネントの量はそれほど多くは無いです。他にもステージの難易度を調整するEasyModeChecker等がありますが、ゲームを把握する上では下の6つを見とけば把握できそうです。
- myCamCon
キャラクターの追跡を行うコンポーネントです。
BottomCheckerの指示でプレイヤーの注視に切り替える事も。 - BottomChecker
ステージ下に配置した超巨大なあたり判定に設定されたコンポーネントです。
接触したらゲームオーバーで、リトライボタンを表示します。 - myBallCon
ボールを操作するスクリプトです。
アイテム取った時のスコア制御等もコレがやってます。 - CharaController
キャラクター…というかアニメーションを管理するシステムです。
ボールの位置と同期し、キー入力に対してアニメーションを行います。
アニメーション側からコールバックを受けてますが、中身は無しです。 - GoalChecker
ゴールに到達した時の動作です。
シーンをロードしたり、Twitterに投稿したり、プレイヤーを操作不能にしたりします。 - myRolling
オブジェクトを廻します。
関連図はこんな感じです。
この辺りのコードを見つつ、MiniGame_Completeシーンを参考に改造していけば、自分のオリジナルステージとか作れそうな感じです。
新人ブートキャンプの資料
なお新人ブートキャンプの資料が公開されてました。
内容は、バージョン間理についてと、ゲームのレベルデザインについての資料です。結構読みやすい感じで纏められています。