ゲームエンジンgodot4.0で3Dスマホゲームを作りたいと思いますが、その前にお勉強しています。
Godot_v4.0-rc1_win64.exe.zipを使用しています。
目的
最小構成の3Dアプリを作成します。
(1)プロジェクト作成
新規プロジェクトを作成します。レンダラーはMobileを選択しました。まだ正解がわかっていません。
Version Control MetadataでGitを選択すると。.gitignoreが作成されます。
警告
Androidアプリ実行ファイルのapkファイルをエクスポートするときにプロジェクト名がそのままAndroidのパッケージ名になり、先頭文字は英字(大文字or小文字)にする必要があるようです。01_Simple3Dのようなプロジェクト名は避けるべきでした。
(2)最初のシーンを作成
新規シーンの画面になります。
3Dシーンをクリックして、ルートノードとしてNode3Dを追加します。
Godot3.5から4.0になってSpatialノードがNode3Dノードに名称変更したようですね。
追加したNode3Dをクリックしてインスペクタを表示すると、Node3DにTransformがあり、positionとrotationを持っています。
今追加したNode3Dをダブルクリックして名称をglobal_coordに変更して、Ctrl-sでシーンを保存します。保存ダイアログでファイル名を変更できますが、シーン名と同じにしておいたほうが無難かと思います。
(3)球を追加
先ほど追加したglobal_coordを右クリックして、「子ノードを追加」メニューから、MeshInstance3Dを追加します。
シーン内のMeshInstance3Dを選択し、インスペクタのMeshのをクリックして、新規 SphereMeshを選択すると画面中央に球が表示されます。
初めて実行する場合、メインシーンが定義されていません、選択しますか?と聞かれるので現在のものを選択しましょう。
一面灰色のウインドウが開きました。何も表示されないのはカメラを設置していないためです。
(4)カメラの追加
3Dアプリの場合、カメラを設置して構図を決める必要があります。
シーン内のglobal_coordを右クリックして、「子ノードを追加」メニューからCamera3Dを追加しましょう。
追加したCamera3Dを選択した状態で、画面中央の青い矢印を画面左下の方にドラッグしましょう。
かわりにインスペクタ内のNode3DのTrasformを見つけて、positionのzに1.0を入力してもよいです。
実行しましょう。
丸いものが表示されましたが、暗いです。
(5)ライトの追加
3Dアプリではライトが必須です(だと思います)。
global_coordを右クリックして、子ノードを追加からDirectionalLight3Dを追加しましょう。
このライトは光の方向を示すだけなので、どこにあってもよいです。
球と重なっていると見にくいので、DirectionalLight3Dを選択した状態で、赤い矢印を左方向にドラッグしましょう。
続いて、赤い輪をドラッグしましょう。球の影が変わるので良い感じになるようにドラッグしましょう。
実行しましょう。
良い感じに3Dの球が表示されたでしょうか。
(6)エクスポート実行
事前に、プロジェクトメニューのプロジェクト設定を開き、Advanced Settingsを有効にして、レンダリングのテクスチャの中のImport ETC2 ASTCをオンにしてください。保存して再起動ボタンも実行が必要だと思います。
詳細は【Godot 4.0】Androidアプリ(apkファイル)エクスポート手順を参考にしてください。
プロジェクトメニューのエクスポートを実行します。
追加...からAndroidを選択するとこのようなエラーとなりました。
「-無効なパッケージ名:The project name does not meet the requirement for the package name format. Please explicitly specify the package name.」
Godotのプロジェクト名がそのままAndroidのパッケージ名になり、Androidのパッケージ名の最初の文字はアルファベットの大文字もしくは小文字という規則があるようです。
プロジェクトメニューからプロジェクト設定を開いて、アプリケーション-構成の名前を変更して、アルファベットから始める様にしましょう。
プロジェクトメニューのエクスポートから、プロジェクトのエクスポートボタンを押下すると、apkファイルを出力することができます。
以上です。