GodotEngineを使った3Dゲームの作り方メモです
前回のBlockbenchからキャラをインポート・ワールド作成の記事はこちら
今回は追加したキャラを動かしたり
カメラがついてくるところを作ります


動画での解説はこちら
https://youtu.be/r6raVUBwlDc?feature=shared


↓↓続きを読む↓↓ をご覧ください 
 
にほんブログ村 IT技術ブログ ゲーム開発へ

継承をクリアして編集しよう

現在のplayerシーンは、インポートしたgltfファイルを継承していますが
型を変更したりアニメーションを変更したりするので
継承をクリアしましょう。

mainのタブから「player」のタブに移動し
「Playerノード」を右クリック・継承をクリアをクリックします。
pgp_713

ノードが黄色から白色に変わったら
継承がクリアされているということです。

つぎに、Playerをキャラクターを操作しやすい型に変更しましょう。
「Player」を右クリックし「型を変更」を選びます。
pgp_695


検索窓に「char」と入力し「CharcterBody3D」を選びます

pgp_696
Playerのアイコンが人マークになれば変更OK

コライダーを追加しよう

当たり判定用のワクをつけましょう。
「Player」に「CollisionShape3D」を追加します。
pgp_707

追加したコリジョンの形を決めましょう。
CollisionShape3Dの「Shape<空>」というところをクリックし
「新規CapsuleShape3D」を選びます。
pgp_708

キャラの周りにコライダーのワクが表示されるので
「1キー」や「3キー」で正面図や側面図を確認しつつ
コライダーの大きさを決めていきます。

位置はギズモの矢印をドラッグするか、Transformから変更
大きさはコライダーの上と横にある赤い丸をドラッグするか
ShapeのRadiusやHeightなどの値を変更して調整できます。
pgp_710


プレイヤーにスクリプトを追加しよう

プレイヤーを操作するプログラムを追加しましょう
「Player」ノードを選択し、ファイルアイコンをクリックします。
ファイル名は変更してもそのままでもOK
「作成」ボタンをクリックします。
pgp_711

シーンビューがスクリプト画面にきりかわりました。
すでにプログラムがしてあるのがわかりますね。
CharacterBody3Dは、スクリプトを追加すると
自動で移動のプログラムを用意してくれます。
pgp_713

スクリプトから3Dの画面に戻したいときは
画面の上にある「3D」をクリックすると戻れます。

再生してみると「↑↓←→」キーで移動
「スペース」キーでジャンプができるようになりました。
pgp_712

カメラがついてきてほしい

一番てっとり早いのは
プレイヤーの子ノードにカメラを追加することです。
(Playerで+ボタン→Camera3Dを追加)
pgp_742
メインシーンにもカメラがある場合、そちらが優先されてしまいますが
PlayerシーンのCamera3Dの「Current」をオンにしておけば
プレイヤーについてくるカメラがアクティブになります。
(メインシーンのカメラが不要なら削除したほうがよい)

再生して移動してみると カメラがプレイヤーについてくるようになりました。
pgp_741

カメラだけだと、キャラの後ろに障害物がある場合
カメラで写せなくなってしまうので

こんなふうに「SpringArm3D」ノードを追加し
スプリングの子にカメラを追加すると
障害物があったときに、バネみたいにビヨンと避けてくれます
pgp_743
SpringArm3Dの「SpringLength」でスプリングの長さを調節
(スプリングの先にカメラがつくかんじです)
スプリングがプレイヤーに当たらないように
位置を調節しておきましょう。

プレイヤーをマウスで回転させたい

マウスでプレイヤーを回転できるようにします。
Playerのスクリプトを開き、回転プログラムを追加しましょう。

pgp_744

マウスを動かすと、プレイヤーが回転するようになりました。
プレイヤーの子にカメラがあるのでカメラも回転します。
pgp_746

障害物をおいて確認してみると
スプリングがうまく障害物をよけてくれていますね。

でもマウスがウィンドウの外に出ると回転できなくなるので
マウスがどこにいても、マウスの動きを取得できるようにしましょう。


シーンが始まった時にマウスキャプチャをオンにします。
ウィンドウの「×」ボタンが押せなくなるので
インプットイベントで「Escキー」が押された時に
シーンを終了するようにプログラムを追加しました。

これでキャラの移動とカメラの設定は終了です。
次回はキャラのアニメーションや
建物などのモデルをインポートしてみたいと思います。