ゲームエンジンGodot4.0で3Dスマホゲームを作りたいと思いますが、その前にお勉強しています。
2023/3/1にstable版がリリースされました。
Godot_v4.0-stable_win64.exe.zipを使用しています。
目的
テクスチャを設定して見栄えをよくしたいと思います。
ベースプロジェクト
下記で作成したプロジェクトをベースに機能追加をします。
【Godot 4.0】スマホ3Dゲームを作るための勉強 その27 動く障害物を作る その2 回転ドア
https://qiita.com/FootInGlow/items/d22c1949e2c1d33fa756
github(Godotのプロジェクトマネージャーからインポートして利用できます)
https://github.com/footinglow/Godot4/tree/main/02_study/S27StageItemRevolvingDoor
方法
「3D TEXTURES」のCC0ライセンスのテクスチャを利用させていただいています。
地面の芝生を設定する
芝生のテクスチャをダウンロードする
Googleで「3d textures stylized grass 003」を検索します。
下の方にスクロールして、「DOWNLOAD ALL THE MAPS」ボタンを押下するとGoogle Driveに飛んでダウンロードできます。
「Stylized_Grass_003_basecolor.jpg」というファイル名です。
Godotプロジェクトにテクスチャファイルを追加する
エクスプローラでプロジェクトを開きます。
assets/textureフォルダを作成して、ダウンロードしたテクスチャ「Stylized_Grass_003_basecolor.jpg」を格納します。下図の例でS28UseTextureがGodotのプロジェクトフォルダです。
Godotでプロジェクトを開くと、自動的にダイアログが表示されてプロジェクトに画像ファイルがインポートされます。
地面シーンに芝生テクスチャを設定する
地面ステージアイテムのres://StageItems/ground.tscnを開きます。
MeshInstance3Dを選択して、インスペクタのMeshInstance3DのMeshの右のアイコンをクリックして詳細設定を開きます。
Materialの右の緑の球をクリックします。
albedoを開いて、textureの右の<空>をクリックして「クイックロード」を実行します。
「assets/texture/Stylized_Grass_003_basecolor.jpg」を選択します。
テクスチャが設定されましたが、草が大きいので調整します。
張り付けるテクスチャの大きさを調整するにはUV1というパラメータを変更するとよさそうです。
UV1を開いてScaleのX,Y,Zを10に変更しました。
Colorに設定していた緑色がテクスチャの色に影響しているため、albedoのColorを白(R,G,B=255,255,255)に変更します。
動く壁と回転ドアにアルミテクスチャを設定する
GodotのアセットにDiamond Plated Aluminum Materialがあったので設定したいと思います。
MITライセンスです。
オリジナルはGodot3.0用で4.0ではそのまま使用できないので、テクスチャ画像をコピーして設定値は手動で入力します。
https://godotengine.org/asset-library/asset/314
テクスチャファイルをプロジェクトに配置する
ダウンロードして解凍したフォルダ内から、3つのpngファイル、
- diamondplate.png
- diamondplate_spec.png
- diamondplate_tex.png
を取り出して、assets/texture/godot-material-dpa-1.0.1フォルダの中に配置しました。
GodotのWindowに切り替えると自動でインポートされます。
動く壁にテクスチャを設定する
res://StageItems/moving_wall.tscnを開きます。
MeshInstance3Dを選択して、インスペクタのMeshInstance3D/Meshの右のアイコンをクリックして詳細設定を表示します。Materialの<空>をクリックして、新規StandardMaterial3Dを設定します。設定された型:StandardMaterial3D画像をクリックしてMaterialの詳細設定を開きます。
下記の表にように設定・変更します。
textureに画像を設定するところが3か所ありますが、<空>をクリックして「クイックロード」を選択するとプロジェクト内の画像を選択できます。
textureを読み込むと初期化されるパラメータがあるのですべて設定後に再度チェックしましょう。
項目 | 設定値 |
---|---|
Material | 新規StandardMaterial3D |
Material/StandardMaterial3D/Albedo/Texture/ | assets/texture/godot-material-dpa-1.0.1/diamondplate_tex.png |
Material/StandardMaterial3D/Metaric/Metaric | 0.65 ※texture読み込むと1.0に初期化されるので要確認です |
Material/StandardMaterial3D/Metaric/Specular | 0.4 |
Material/StandardMaterial3D/Metaric/Texture | assets/texture/godot-material-dpa-1.0.1/diamondplate_spec.png |
Material/StandardMaterial3D/Metaric/Texture Channel | Gray |
Material/StandardMaterial3D/Roughness/Roughness | 0.3 |
Material/StandardMaterial3D/Normal Map/Enabled | オン |
Material/StandardMaterial3D/Normal Map/Texture | assets/texture/godot-material-dpa-1.0.1/diamondplate.png |
Material/StandardMaterial3D/UV1/Scale/x | 0.25 |
Material/StandardMaterial3D/UV1/Scale/y | 0.25 |
Material/StandardMaterial3D/UV1/Scale/z | 0.25 |
Material/StandardMaterial3D/UV1/Triplanar | オン |
Material/StandardMaterial3D/UV1/Triplanar Sharpness | 10.1 |
Material/StandardMaterial3D/UV2/Scale/x | 0.25 |
Material/StandardMaterial3D/UV2/Scale/y | 0.25 |
Material/StandardMaterial3D/UV2/Scale/z | 0.25 |
Material/StandardMaterial3D/UV2/Triplanar | オン |
Material/StandardMaterial3D/UV2/Triplanar Sharpness | 8.28 ※8.27に丸められる? |
Materialを保存して回転ドアに適用します。
Materialの右の球の右の「v」のアイコンをクリックして「保存」を実行します。
Designフォルダを選択して、「diamondAluminum.tres」という名前で保存します。
「res://Design/diamondAluminum.tres」に保存しました。
保存するとMaterialの右のアイコンの表示が変わりました。
次にres://StageItems/revolving_door.tscnを開きます。
シーンの「MeshInstance3D」を選択して、インスペクタのMeshInstance3D/Meshの右のアイコンをクリックして詳細設定を開いて、Materialの右の<空>をクリックします。
「クイックロード」を実行して「Design/diamondAluminum.tres」を開きます。
設定されました。MeshInstance3Dをコピペして作成しているためかMeshInstance3D2にも適用されました。
先ほどの芝生とは違ってテクスチャが横に伸びていないのは、UV1のTriplanarをオンにしている効果のようです。試しにオフにすると横方向に伸びてしまいます。テクスチャのイメージをそのままの比率で張り付けるときには便利に使えそうですが、マニュアルを見るとTriplanarはUVと比較して処理負荷が高いようです。
確認した後はUV1のTriplanarはONに戻しました
実行
以上です。