前回ゲーム制作に必要な準備を行ったので、ここから「悪路王2020」を作っていきます。まず手始めにプレイヤーのスプライト画像の設定を行い、プレイヤーのゲームオブジェクトを作りましょう。
スプライトの設定方法
では、最初にスプライト画像の設定を行います。ただしこの作業の手順は旧版の「悪路王」のページ「スプライトの設定」と全く同じですので、そちらを参考にしてプレイヤー用のスプライト画像を分割してください。
作業が終わると下の画像のように分割されたスプライトが出来上がります。
プレイヤーのゲームオブジェクトの作成
そうしたら、次はプレイヤーのゲームオブジェクトを作ります。「Main」という名前の新しいシーンを作り、そこで作業を行いましょう。
プレイヤー本体のゲームオブジェクトの作成
まず、シーンに空のゲームオブジェクトを作り(ヒエラルキーで右クリック→「空のオブジェクトを作成」)、名前・タグ・レイヤーを下の画像のようにすべて「Player」に変更してください。
必要なコンポーネントのアタッチ
変更できたら、Playerゲームオブジェクトに下記のコンポーネントをアタッチして設定しましょう。
- スプライトレンダラー
- アニメーター
- 2Dカプセルコライダー
- 2Dサークルコライダー
- 2Dリジッドボディ
スプライトレンダラー
下の図のように設定してください。
アニメーター
とりあえず、今のところはデフォルトのままでOKです。設定は後でアニメーションを作った時に変更します。
2Dカプセルコライダー
下の図のように「サイズ」と「オフセット」を変更しましょう。
「マテリアル」の欄は後で設定するので、今は飛ばしてOKです。
2Dサークルコライダー
下のように「オフセット」と「半径」を変更してください。
このサークルコライダーは地面との摩擦を設定するために使います。
2Dリジッドボディ
下の図のように「重力スケール」を変更し、「回転を固定」にチェックを入れましょう。
このように変更する理由は次の通りです。
「重力スケール」を変更する理由
一言でいうと、ゲームらしいジャンプ挙動にするためです。重力スケールがデフォルトの「1」だとフワフワしたジャンプになってしまうので、重力を10倍することでキビキビしたジャンプになるようにしてみました。
「回転を固定」する理由
回転を固定する理由は、プレイヤーが障害物に引っかかってコケるのを防ぐためです。コケるようにすると難易度が上がりすぎるのでこのようにしました。
接地判定用オブジェクトの作成
最後に、プレイヤーキャラの接地判定用オブジェクトを作ります(※下の図の青い菱形の部分)。
ヒエラルキーでPlayerオブジェクトを右クリックして、空のゲームオブジェクトを子として作成します。そうしたら下の図のように名前を「GroundCheck-C」に変更して、位置Yを「-0.15」とします。
ただ、それだけだと透明でシーン上では見えないので、インスペクターで名前の横のアイコンをクリックして、アイコンを青い菱形に変更しておきましょう。
あとはそれを複製(Ctrl+D)して、
- GroundCheck-L(位置Xを「-0.3」に変更したもの)
- GroundCheck-R(位置Xを「0.3」に変更したもの)
をそれぞれ作りましょう。これで接地判定オブジェクトができました。
なお、このような接地判定用オブジェクトを作る理由については、「ユニティちゃんの2Dアクション」のページ「プレイヤーキャラの作り方1:ユニティちゃんのゲームオブジェクトの作成」で詳しく説明していますので、気になる方はご覧ください。まあ簡単に言うと、コライダーだけだと上手く接地判定ができない場合があるからこのようにしているわけです。
ここまでできたら、Playerオブジェクトを「Prefabs」フォルダにドラッグ&ドロップしてプレハブ化しておきましょう。
おまけ:背景色の変更・床の作成
さて、これでプレイヤーのゲームオブジェクトが完成しましたが、このままゲームを実行してもプレイヤーが落ちていくだけでテストプレイできないので床を作りましょう。
最初にインポートしてもらったスプライトの中に「floor」というのがあるので、それをシーンにドラッグ&ドロップしてください。そうしたら2Dボックスコライダーをアタッチして、下の画像のように設定を変更しましょう。
できたら、次はカメラの設定を変更して背景色を変えます。「Main Camera」の「背景」を灰色にしましょう。
ここまでの作業が終わっていれば「ゲーム」ウィンドウが次の画像のようになっているはずです。
次のページ→2Dキャラクターのアニメーションの作り方