🎮

Godotに入門してみる

2023/09/15に公開

Godotやります

ゴドーと読むらしいです
VRのアプリが標準で作れるらしいのが気になる

インストール

インストーラーなどはないのでダウンロードしたものを解凍するだけで良いようです
複数バージョンもフォルダが分かれていれば問題ないそう
公式
GitHub
Steam
バージョンはどれがいいのか分からないので公式から最新の4.1.1をダウンロードしました

C#版もあるようですが入れてないです
C#の既存のライブラリが使えるのであれば良さげかもしれない

プロジェクトの作成

インストールしたフォルダにはexeファイルしかないのでそれを実行して起動します
プロジェクト名とプロジェクトパスを適当に入れます
レンダラーはよくわからないですがスマホでも動かしてみたいので互換性にしてみました

起動して新規プロジェクトを押したところ

シーンの編集

最初は何もないので左の3Dシーンを押してシーンを追加します
ノードの追加は左上の「+」ボタンを押せばよいです
ノードはUnityでいうGameObjectだと思います

シーンとノードの追加

ノードの作成画面で検索の欄にmeshと入れてMeshInstance3Dを選択し作成します

画面右のインスペクターの「Mesh」の項目が空になっているのでBoxMeshを新規作成します

MeshInstance3DのノードのMeshにBoxMeshを設定する


BoxMeshを設定して画面に箱が表示される

同様にCamera3DとDirectionalLight3Dを追加します
位置の調整は赤青緑の矢印、回転は赤青緑の輪っかで行います

Camera3DとDirectionalLight3Dを追加して位置を調整したところ

ここで一度シーンを保存します「シーン>シーンを保存」で保存できます
保存出来たら右上の「▶️」ボタンまたは「F5」を押して実行してみます

メインシーンが設定されてないと怒られる
メインシーンが設定されていないと出るので「現在のものを選択」します
変更する場合は「プロジェクト>プロジェクト設定」から「アプリケーション>実行>メインシーン」で設定できます

無事箱が表示されました

スクリプトを書く

スクリプトで箱を動かしてみます
シーンのMeshInstance3Dを選択しその上のスクリプトを追加するボタンを押します

今回は特にいじらずにスクリプトを作成します

スクリプトは以下のようにします

MeshInstance3D.gd
extends MeshInstance3D

# 色相
var hue=0.0

# Called when the node enters the scene tree for the first time.
func _ready():
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	rotate_y(delta*2)
	
	hue+=delta*0.5
	var color = Color.from_hsv(hue, 1.0, 1.0)
	material_override.albedo_color=color
	pass

今のままだとマテリアルが空なのでマテリアルの設定をします
スクリプトと3Dシーンの切り替えは上部の「3D」と「Script」を押して切り替えられます
MeshInstace3Dを選択してインスペクタからGeometry>Material OverrideにStandardMaterial3Dを追加します

ここまで出来たら実行します

無事に回転するゲーミングボックスができました

Android用にエクスポート

Android用にapkをエクスポートしてみます
AndroidSDKのインストールが必要なようです
自分はすでにインストールしてあったので、別の設定も必要になるかもしれません。
公式のドキュメントExporting for Androidなど参考にしてみてください

「エディター>エディター設定」からAndroidSDKの設定を行います

自分の場合は

C:/Users/<ユーザ名>/AppData/Local/Android/Sdk

がSDKのパスでした

ついでにExporting for Androidに書いてある通りkeystoreファイルも作っておきます
適当な場所でターミナルを開き、以下のコマンドを実行してdebug.keystoreファイルを作成します

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12

つぎにプロジェクトの設定をします
「プロジェクト>プロジェクト設定」からフィルターに「import」といれて
「レンダリング>テクスチャ>VRAM圧縮」から「Import ETC2 ASTC」にチェックを入れます

これをしないとエクスポートの時に怒られるみたいです

保存して再起動のボタンが出てるので再起動もしておきます

エクスポートします
「プロジェクト>エクスポート」から「追加」でAndroidを選択します

Keystoreに以下の設定をします

デバッグ 先ほど出力したdebug.keystoreファイル
Debug User androiddebugkey
Debug Pasword android

リリース時は適切なファイルと値を設定してください

「プロジェクトのエクスポート」から出力先を指定して完了です


NoxPlayerで動くのは確認できました

Discussion