スキップしてメイン コンテンツに移動

投稿

UIコントロールを日本語化する

GUIコントロールを日本語化する Godotには、ユーザインターフェースのための様々なUIコントロールが含まれていますが、これらは標準の状態では日本語に対応していません。 例えば、画面にテキストを表示するための、ラベルというコントロールがありますが、これの Text プロパティに日本語文字を設定しても表示されません。 日本語を扱えるようにするためには、日本語のフォントを使うように設定する必要があります。 日本語のフォントは、Godot 自体には含まれていないので自分で用意する必要があります。 ここでは、Google から提供されている、 Google Noto Fonts を使ってみます。 Noto Fonts のサイトの検索窓に、「cjk jp」と入力すると、日本語用のフォントが表示されるので、これを選んでダウンロードします。 今回は、「Noto Sans CJK JP」をダウンロードしました。 ダウンロードしたファイルを解凍すると、様々な太さの OpenTypeFont ファイル(拡張子が otf のファイル)が入っていますが、ここでは、NotoSansCJKjp-Regular.otf を使います。 選んだフォントファイルを Godot プロジェクトのフォルダにコピーしたら、次は Godot で設定します。 日本語化したいコントロールのインスペクタで、「Custome Fonts」をクリックし、「New DynamicFont」を選択し、次に「編集」を選択します。 次に、DynamicFont の編集画面で、「Font Data」の「Load」を選択し、先ほどフォルダーへコピーしたフォントファイルを選択します。 フォントが設定できたら、サイズも適当な大きさに変えておきましょう。サイズが 0 のままだと文字が見えません。 以上で日本語フォントが設定できたので、ラベルのテキストも日本語が表示されているはずです。 ラベルだけじゃなく、ボタンやテキストエディット等、他のUIコントロールも同じ手順で日本語化できます。
最近の投稿

外部エディタ

外部エディタ Godotには、GDスクリプト編集用のエディタが内蔵されていますが、一般的なテキストエディタと比較すると機能的には貧弱です。 スクリプトの編集時に外部エディタを使うように設定すると、自分の好きなエディタで編集することができます。 外部エディタを使うには、「Editor」メニューから「Editor Settings」を開き、 「Text Editor」の「External」に設定します。 Use External Editor 外部エディタを使う場合にここを オン にします。 Exec Path 外部エディタのパスを指定します。 例えば、Mac でVisual Studio Code を使う場合、 /Applications/Visual Studio Code.app/Contents/MacOS/Electron と指定します。(〜.app じゃなく、〜.app/Contents/MacOS/Electron を指定しないと起動しませんでした。) Windows の場合は、〜.exe を指定すれば良いと思います。 Exec Flags 必要に応じて、エディタ起動時の引数を指定します。Visual Studio Code を使う場合は、次のように指定して、 プロジェクトのフォルダ、ファイル名、行番号、カラム位置を渡しています。 {project} --goto {file}:{line}:{col} 引数の形式や順番は、各エディタの仕様に合わせてください。 以上の設定をしたら、指定したエディタでスクリプトを編集できるようになります。 Visual Stuido Code には、GDScript 用のプラグインも提供されているので、利用すると良いと思います。

メッシュ変形アニメーション

Godotにメッシュ変形アニメーションが組み込まれるらしい。 https://godotengine.org/article/godot-gets-2d-skeletal-deform これまで簡単なボーンアニメーションは組み込まれていたんですが、メッシュ変形はしてくれませんでした。今回のはボーンの動きに合わせて2Dメッシュも変形させられます。 これで外部アニメーションツールとか使わないでも表現力を格段にアップできそう。 どんどん進化していくね。

GDScript

Godotの公式サイトにあるドキュメントの GDScriptのページ を訳してみました。 紹介 GDScriptは、コンテンツを作成するために使用される高度に動的に型付けされたプログラミング言語です。 文法はPythonと似ています。(インデントによるブロックや多くのキーワードが同じです。 その目的は、Godotエンジンに最適化され、緊密に統合され、コンテンツの作成と統合に大きな柔軟性を提供することです。 歴史 初期の段階では、このエンジンは Lua スクリプト言語を使用していました。 Luaは高速ですが、フォールバックを使用してオブジェクト指向システムへバインドすることは複雑で遅く、膨大な量のコードを必要とします。 いくつかの実験の後、 Python も埋め込みが難しいことが判明しました。 出荷されたゲームに使用された最後のサードパーティスクリプト言語は Squirrel でしたが、それも脱落しました。 この時点で、Godotの特定のアーキテクチャをより最適に利用できるのは独自のスクリプト言語であることが明らかになりました。 Godotはスクリプトをノードに埋め込みます。 ほとんどの言語はこれを念頭に置いて設計されていません。 Godotは、2Dおよび3D計算にいくつかの組込みデータ型を使用します。他のスクリプト言語ではこれが提供されず、それらをバインドすることは非効率的です。 Godotは、ネットやディスクからデータを取り込んだり初期化するためにスレッドを頻繁に使いますが、一般的なスクリプト言語のインタプリタでは容易ではありません。 Godotはすでにリソースのためのメモリ管理モデルを持っており、ほとんどのスクリプト言語は独自のものを提供しているため、重複した作業やバグを招きます。 バインディングコードは常に乱雑で障害の温床となり、予期しないバグを招き、一般的にメンテナンス性が低くなります。 これらの考慮の末、GDScriptに落ち着きました。GDScriptの言語とインタプリタは、同等の機能を備えたLuaやSquirrelのバインディングコード自体よりも小さくなりました。 時間の経過とともに、組み込み言語を使うことは大きな利点であることが証明されました。 GDScriptの例 実際

Godot3.0がついにリリース

Godot3がついにリリース 18ヶ月の開発期間を経て、とうとうGodot3.0がリリースされましたね。 公式サイトのデザインも少し変更されています。 https://godotengine.org/ 最先端の3D PBR(物理ベースレンダリング)ワークフローによるレンダリングエンジンを搭載し、強化されたアセットパイプライン、 GDNativeによるプラグインの読み込み、C#7.0のサボート、3D物理エンジンにBulletを採用、などといった機能強化が行われているようです。 今回の目玉の一つが、C#のサポートですが、ダウンロードページをみると、C#をサポートするMONOバージョンと、今までのGDスクリプトをサポートするバージョンとで別々になっているようです。 MONOバージョンを使う場合は、Mono SDK 5.4以上が必要なようです。 立ち上げてみると、見た目的には大きく変わった印象はありませんが、メニューが所々日本語化されています。中途半端な感じですが... 3Dはこんな感じ ちょっと触った感じでは、細かな使い勝手も改善されているようです。自分はMacでしか触っていませんが、マウスホイールでの操作が今までは編集画面の拡大/縮小だったのが、縦横移動に変更されています。 これはこれで使い勝手はいいのですが、拡大/縮小が面倒になったかも。(設定で何かやり方があるのかもしれませんが…) プロジェクトファイルの名前が、engine.cfgから、project.godotに変わっています。それと、プロジェクトの新規作成やインポートする時の初期ディレクトリが、ユーザのホームディレクトリに変更されていました。

スクリプト

スクリプト Godotで使用するスクリプトは、GDScriptというPythonに似た独自の言語です。もうすぐリリースされるv3.0では、C#も使用できるようになるようです。 スクリプトを使って、ゲームのキャラクタを動かしたり、画面を遷移したり、入力を受け取ったりといったことが出来ます。 スクリプトを作成するには、操作の対象となるノードを右クリックして、「Attach Script」を選択します。 又は、ノード一覧の右上のアイコンをクリックしても同じです。 スクリプトの設定画面が表示されるので、Pathを設定して、「Create」をクリックします。GDScriptの場合はクラス名を指定することは出来ません。 「Built-In Script」をONにすると、シーンファイルの中にスクリプトを埋め込むことが出来ます。この場合はPathを設定する必要はありませんが、シーンファイルに埋め込まれてしまうため、他のエディタで編集することは出来ません。他と共有する必要のないちょっとしたスクリプトはBuilt-Inにしてもいいかもしれません。 「Create」をクリックすると、次の様な編集画面が表示されます。 例えば、こんな感じでコーディングして実行すると、キャラクタを回転することができます。 extends Node2D var rot = 0 onready var sprite = get_node("sprite") func _ready(): set_process(true) func _process(delta): rot += delta * PI sprite.set_rot(rot)

シーン

Godotでは、まずシーンを作ってその中に様々なノードを配置してゲームを作っていきます。 1つのシーンには別のシーンをノードとして追加し合成することができます。 例えば、ゲームのステージとなるシーンを作成し、 それとは別に、キャラクタのシーンを作成し、 これら2つのシーンを合成することができます。 シーンを合成するには、合成先のシーンを開いてノードを選択した後、ノード一覧の上にある鎖のアイコンをクリックして、合成するシーンを選択します。 シーンが追加されたら、位置を変えたりプロパティを変更することもできます。 複数のシーンを追加し、それぞれのロパティを変更できます。