今回は「高低差がある地形の上を移動出来る様にする」です。
参考資料:Amazon Lumberyard character made with mixamo, blender, and script canvas.
Amazon Game TechのYoutubeチャンネル
以前作成したキャラクターの移動は平面上だけに限られていました。地面の上を歩いていたのも実は見掛けだけで、実際は地平面の位置にキャラクターの高さを合わせていただけに過ぎません。
今回はキャラクター(アクター)にフィジックスを適用し、重力を作用させて、地面のコリジョンの上に接触しながら移動する様にします。
まずLumberyardの機能を使って地形を作成しましょう。
これはいつものキャラクターのレベルです。

Tools - Terrain Editorを実行します。

Terrain Editorが開きました。

Terrain Editorは地形を作成する為のツールです。今回は自動生成で地形を作る事にします。
最初に地形の最も高い部分の高さを決めます。
Terrain EditorのModify - Set Terrain Max Heightを実行します。

数値入力ウィンドウが出ますので、高さの数値を入力します。今回は100としました。

OKをクリックして戻ります。
次にTerrain EditorのTools - Generate Terrain...を実行します。

地形生成に使う各パラメータが表示されます。今回はデフォルト設定を使う事にし、そのままOKをクリックします。

地形が生成され、グレイスケール画像が表示されました。Terrain Editorを閉じて下さい。

地面に高さがついているのが確認出来ます。
地面が持ち上がったのでキャラクターとカメラはその下になってしまっています。

キャラクターとカメラを地面の上に持ってきました。

ここで試しにGame - Play Gameを実行してみます。キャラクターが待機モーションになりましたが、まだフィジックスを入れていないので重力が作用していません。

フィジックスをキャラクターに追加してみましょう。
Escキーを押してゲームから抜けます。

キャラクターを選択してからEntity Inspectorを見て下さい。キャラクターは現在この様なコンポーネント構成になっています。Add Componentをクリックして、コンポーネントのリストを表示して下さい。

Character Physicsを選択します。

Character Physicsが追加されました。

次にスクリプトの一部を書き換えます。
キャラクター移動の部分は現在この様になっています。

この中のMove EntityをAdd Impulseに置き換えます。(Impulseとはこういう事だそうです。)そして、調整の為に入力に掛け算していた数値も変更します。今回は変更前の500倍にしました。

書き換えが終わったらスクリプトをセーブし、Play Gameでテストです。
キャラクターが地形の上を歩く様になりました。
No comments:
Post a Comment