製作記録6 仕切り直し+プレイヤー操作のベース作成
前回更新から2ヶ月が経過しました。
その間、ほとんど製作には触れられませんでした。
今回は仕切り直しということで、簡単なプレイヤー操作を作ることにします。
本当はUIを作ろうと思ったのですが、その前にある程度プレイヤー周りを実装しないと作れないことに気づいたので、先にプレイヤーのベースだけは作ろうと思った次第です。
Unityを触るの自体が久しぶりなので、仕切り直し的に軽いところから始めようと思ったためでもありまう。
どちらにしてもUIは後々色々と作らないといけないので、今は本を読んで勉強しています。
近いうちに簡単なところから触り始める予定です。
で、プレイヤー操作に関してなんですが、今まではUnityで標準で用意されている三人称タイプのプレイヤーを使っていました。
ですが、それをそのまま使っていると中身が分からないままになってしまうので、今回自分でスクリプトを書くことにしました。
と言っても大層なことはできませんので、とりあえずはベースとなるものを簡単に作って、これから都度拡張していくことにします。
今回作るのは、
①↑ボタンで前に進む。
②→ボタンで右に曲がる。
③←ボタンで左に曲がる。
④↓ボタンで後ろ向きに振り返って進む。
⑤スペースキーを押すとジャンプする。
です。
あと、歩くアニメーションと走るアニメーションを設定することにします。
Unityでキャラクターを移動させる方法は色々あるようなのですが、キャラクターに剛体(rigidbody)としての特性を持たせてそれに力を加えることで移動させる方法と元から用意されているキャラクターコントローラー(CharacterController)という機能を使って、それのMove関数を用いる方法、などが一般的だと思われます。
他にもあるかもしれませんが、今回は簡単そうなキャラクターコントローラーを使う方法を用います。
それぞれのメリット、デメリットについて、本には書いてあったんですけど私自身はそれほどピンときていないので、割愛させて頂きます。
そのうち実感したら説明します。
で、具体的な方法なんですけど、本当にすごく簡単です。
プレイヤーのオブジェクトにキャラクターコントローラーを追加して、スクリプトからそれを呼び出して移動する方向などを指定してMove関数に入力するだけです。
例によって、細かい解説はしませんが、手順としてはスタート関数でキャラクターコントローラーを取得して、アップデート関数中で入力ボタンを認識して移動方向、速度などを決定する、という感じです。
そういえば、ここまで書いておいて今さらなんですが、C#、というかオブジェクト指向言語では関数ではなくメソッドと呼ぶらしいですね。
いえ、厳密にはメソッドと関数にも違いがあったと思いますが、少なくともMoveなんかはメソッドになるような……。
私は仕事で使っているのがC言語なのもあって、メソッドという呼び方になじみがありません。
というか、別に名前なんてどちらでもいいのではないかと思っています。
この辺りのいい加減な認識が後々の致命的なバグにつながりそうな気もしますが、そうならないように製作しながら勉強も進めたいと思います。
話は戻りますが、上記のような手順でプレイヤーが動くようになりました。
あと、今はキャラクターが立ち姿のまま移動するという奇妙な状態になっているので、アニメーションを設定します。
アニメーションの設定方法は以前書いたスライムの動かし方とほぼ同じです。
アニメイターコントローラーなどを設定すればOKです。
ちなみに、プレイヤーを動かすスクリプト中で移動速度を定義している部分があるのですが、その値をアニメイターコントローラーに設定することで歩く⇔走るを切り替えています。
この操作も膨大なブログやら本やらに記載されていますので、それを参考にしました。
Unity+キャラクターコントローラー+スクリプトとか、そんな感じで検索するとたくさん分かりやすい解説が見つかると思います。
あと、忘れていましたがスペースキーを押されたときにはジャンプアニメーションに移行するようにも設定しました。
以上で、大まかなキャラクターの動きはできました。
実際には、色々詰まりながらで結構苦労しましたけど、苦労の原因は久々にUnityを触ったからなので、内容的には難易度はすごく低いと思います。
そういえば、プレイヤーオブジェクトなんですが、下に挿絵を載せていますが、謎のマスコットキャラを使用しました。
まだプレイヤーの正式なオブジェクトを用意できていないので暫定です。
このキャラクターはMixamoというサービスのマスコットキャラらしいです。
以前、Mixamoのサイトからダウンロードさせて頂きました。
ただ、今日これを執筆している時点(2015年10月12日)でサイトを見て気づいたんですが、この2ヶ月そこそこの間にMixamoがアドビさんに買収されていたようです。
サイトの外見だけでなく、どうにも色々な使い勝手が変わっていました。
マスコットキャラも見当たらなくなっています。
というか、大量にいたフリーの3D素材たちが見当たらないです。
私が見つけられていないだけかもしれませんが、困りました。
このゲーム製作において使う予定の貴重なフリー素材だったんですが。
まあ、フリー素材に文句を言うわけにはいきませんが、もう少し調べてみます。
このマスコットキャラのライセンスもちゃんと確認してませんしね。
そんなわけで、今回は久々にも関わらず薄い内容になりましたが、プレイヤーの操作のベースを作りました。
挿絵はプレイヤーキャラが草原のスライムの横を走って逃げている感じです。