ゲームエンジンGodot4.0で3Dスマホゲームを作りたいと思いますが、その前にお勉強しています。
2023/3/1もstable版がリリースされました。
Godot_v4.0-stable_win64.exe.zipを使用しています。
目的
敵の攻撃EnemyBulletも人にします。
色を変更します。
ベースプロジェクト
下記で作成したプロジェクトをベースに機能追加をします。
【Godot 4.0】スマホ3Dゲームを作るための勉強 その12 キャラクターデザインとアニメーション
https://qiita.com/FootInGlow/items/0bada2d1485c4a667a82
github(Godotのプロジェクトマネージャーからインポートして利用できます)
https://github.com/footinglow/Godot4/tree/main/02_study/S12_CharacterDesignAnimation_001
Designファイルを別ディレクトリにまとめます。
Designフォルダを作成して、キャラクターデザイン関係のファイルを移動しましょう。
Designフォルダを作成する
ファイルシステム内の「res://」を右クリックして新規からフォルダを選択します。
「Design」にします。
「Design」フォルダが作成されました。
デザイン関係のファイルを移動します。
「design_my_soldier.tscn」と「design_my_soldier.gd」の2つのファイルをShiftキーを押下しながら選択します。Designフォルダにドラッグアンドドロップします。
移動しました。
EnemyBullet用のデザインを作成します。
EnemnyBullet用のデザインを作成します。
Bulletの人の色違いを作成したいと思います。
design_my_soldier.tscnを複製する
「design_my_soldier.tscn」を複製します。
ファイルシステム内の「design_my_soldier.tscn」を右クリックして「複製」を実行します。
「design_enemy_soldier.tscn」にします。
複製されました。
design_my_soldier.tscnをEnemyBulletに設定する
今複製した「design_my_soldier.tscn」を開きます。
トップノード名を「DesignMySoldier」から「DesignEnemySoldier」に変更して保存します。
次にEnemybullet.tscnを開きましょう
ファイルシステム内の「design_my_soldier.tscn」をシーン内の「EnemyBullet」にドラッグアンドドロップします。
「DesignEnemySoldier」が追加されました。
大きすぎるので、1/5に縮小します。
「DesignEnemySoldier」を選択して、インスペクタ内のNode3D/Tranform/Scale/xを0.2にします。サイズのx、y、zはリンクされているので、yとzも0.2になると思います。
今まで使用していた、MeshInstance3Dは不要になりましたので削除します。
EnemyBullet(EnemySoldier)の色を変更する
敵も味方も同じ色では判別しにくいので、敵側を赤にしましょう。
胴体の色を設定します。
まず胴体に色をつけましょう。
3Dモデルの表面の質感・色情報をMaterialといいます。また表面の色はAlbedoというパラメータで設定します。
res://Design/design_enemy_soldier.tscnを開いて、Bodyを選択します。
インスペクタ内のMeshInstance3D/Meshのカプセルのアイコンをクリックすると詳細設定が開きます。
その中に「Material <空> 」とあるので、「新規StandardMaterial3D」を選択します。
Materialに新規のMaterialが設定されました。
今追加した、Materialを表す球をクリックして詳細設定を開きます。
表面の色は「Albedo」という項目で設定できるので、開きましょう。
Colorの右の白色の長方形をクリックするとカラーピッカーが表示されるので色を選択します。
色を選択すると、インスペクタのMaterialの球の色に反映されます。
ビューポートに表示されている人の胴体の色も変更しました。
胴体の設定を他のパーツにも反映する
今設定した胴体の色を含むMaterial情報をファイルに出力して、他のパーツと共有しましょう。
作業の続きなので、DesignEnemySoldierのBodyが選択された状態かと思います。
インスペクタ内のMeshInstance3D/Meshのアイコン(カプセル型)をクリックして詳細設定を表示します。詳細設定の中のMaterialの横に球が表示されていると思います。
球の右の「v」のようなアイコンをクリックして「保存」を実行します。
「design_enemy_soldier.tres」という名前で保存します。
胴体以外のパーツのMaterialに「design_my_soldier.tres」を設定します。
Headを選択して、MeshInstance3D/Meshのアイコン(球型)をクリックして詳細設定を表示します。
詳細設定を表示した中に「Material <空>」があるので、その右の「v」アイコンをクリックして、「クイックロード」を実行します。
先ほど保存した、「design_enemy_soldier.tres」を選択します。
頭に胴体と同じ色が設定されました。
残りのパーツも同じMaterialを設定します。
「Shoulder_Right」の「Arm」を選択して、Materialをクイックロードしましょう。
そうすると左右の手足すべてのMaterialが変更されました。
右腕からコピーペーストで左腕、右足、左足をつくったため、Materialを共有してもっているのかもしれません。
以上