ここ最近、Godot Engineを見ています。UnityやUnreal Engineのように使えるゲーム開発環境で、2D/3D対応、マルチプラットフォーム向け出力、XRまで対応しているところが特徴です。
新しいゲーム開発環境を学ぶと、ずっと前にはじめてUnityを触ったときのような新鮮さがあって楽しいので、最近は空いた時間でGodot Engineを見ています。
こんな感じでようやく公式チュートリアルを一通り終えました。
休日にちょっとだけGodot Engineを勉強してを繰り返し、ようやくチュートリアルが動きました。ノードとかシグナル接続が独特ですが、2D/3Dゲームが作れるOSSのゲームエンジンとして今後発展する気がしました。そのうち、開発者目線のUnityとの違いをまとめてみます。 pic.twitter.com/qypcKBDSDK
— Limes (@limes2018) 2021年9月20日
Godot Engineは公式ドキュメントが詳しく日本語対応も豊富ですが、日本語での記事があまり少ないのでちょっと調べたいところがよくわからなかったりします。
今後はブログでもGodot Engineについて少しずつ書いてみようと思います。今回はGodot Engineでアセットをインポートする方法についてです。
0. Godot Engineの概要や使い方について
Godot Engineの公式ドキュメントを確認することをお勧めします。
他にいくつかの日本語記事もあります。
チュートリアルの記述は丁寧ですが、まったくの初心者である私はそれでも2, 3 詰まるところがありました。どこかタイミングが合えば、チュートリアルについても書きたいと思います。
1. Godot Engineのアセットについて
Unityのアセットと同じように、自分のプロジェクトに追加機能を入れることができます。
UnityのAsset Storeのような管理サイト「Asset Library」もありますが、公式サイトの説明によるとマーケットプレイスのような役割は持っておらず無料で配布するというルールのようです。
Godotのアセットライブラリは異なります。すべてのアセットは無料で配布され、多数のオープンソースライセンス(MITライセンス、GPL、Boost Softwareライセンスなど)の下で配布されます。これにより、AssetLibはLinuxディストリビューションのソフトウェアリポジトリにより類似したものになります。
引用元:https://docs.godotengine.org/ja/stable/tutorials/assetlib/what_is_assetlib.html
一方、同じページの下部にはこのような記載もあり、公式の範囲外であればアセットを作って有償で販売も可能のようです。
よくある質問
有料アセットをアセットライブラリにアップロードできますか?
公式のものではありませんが、将来的にはそれを可能にする他のアセットライブラリが出来るかもしれません。ただし、アセットライブラリの外部でGodotアセットを収益化および販売することができます。
2.アセットのインポート方法
Godot Engineを開きます。開いたら、プロジェクトを新規作成するか、既存プロジェクトを読み込みます。
この辺りは以下の手順を参考にしてください。
Godot Engineの画面が表示されたら、画面中心のAsset Libというボタンをクリックします。読み込みに数秒かかりますが、このようにアセット一覧が表示されます。
今回はPlatformerController2Dというアセットを読み込んでみます。
Unityでアセットをインポートするときのように、インポートされるディレクトリ構成が一覧で表示されるので、Importを選択します。
赤字のファイルは、このままだと読み込みができないということでチェックマークが外されています。読み込みができない原因はファイルのそばにマウスオーバーすると表示されます。
今回はGodot Engineで新規プロジェクト作成したときに自動生成されたファイルがあるので、already existsと表示されていました。上書きされても問題ないと判断して全てチェックマークをつけました。
インポートが成功すると、platformer_controllerというフォルダが生成され、platformer_controller.gdが追加されます。
3. おわりに
今回説明に使用したアセットはスクリプトのみのため、オブジェクトの設置やキャラクターなどは自分で設置する必要があります。
2021/10/11追記:インポートのとき、DemoScene.tscnというシーンも一緒に入っていました。これを指定して再生することでキャラクタが動く例を確認できます。
そのあたりは次回書きます。