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

投稿

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

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つのシーンを合成することができます。 シーンを合成するには、合成先のシーンを開いてノードを選択した後、ノード一覧の上にある鎖のアイコンをクリックして、合成するシーンを選択します。 シーンが追加されたら、位置を変えたりプロパティを変更することもできます。 複数のシーンを追加し、それぞれのロパティを変更できます。

プロジェクトの設定

プロジェクトの設定は、「Scene」→「Project Settings」を選んで表示される画面で行います。 上に「General」、「Input Map」、「Localization」、「AutoLoad」、「Plugins」というタブ項目があります。 「General」を選ぶと、左側にセクションが表示されるので、各セクションを選んで設定を行います。 設定項目にはデフォルト値が設定されていますが、この設定を変えると項目名の前のチェックボックスがOnになります。基本的にチェックボックスがOnのもののみが設定ファイルに保存され、それ以外はデフォルト値が使用されます。 いろいろな設定項目がありますが、とりあえず、2Dゲームで必要になりそうなものを以下にあげます。 Application Name ゲーム名。プロジェクトを作成した時に自動的に設定されています。 Main Scene ゲームの起動時に最初に読み込むシーンファイル Icon ゲームのアイコン Display Width 画面の幅 Height 画面の高さ Test Width デバッグ実行時の画面の幅 Test Height デバッグ実行時の画面の高さ Resizable 実行時の画面サイズを変更可にするかどうか Orientation 画面の向き。Landscape=横向き、Portlait=縦向き Stretch Mode 画面サイズに合わせて画像を引き伸ばす指定 Stretch Aspect 画像を引き伸ばす時の比率に関する指定 Image Loader Filter テクスチャにフィルタをかけるかどうか。ピクセルアートを使う場合はオフにした方がよい。 Gen Mipmaps ミップマップを作成するかどうか。2Dゲームの場合はほとんど不要。 設定が終わったら「Close」ボタンを押して画面を閉じます。 設定内容は、win.ini形式のテキストファイル(engine.cfg)に保存されます。これはプロジェクトディレクトリのルートにあります。テキストファイルなのでテキストエディタで編集することもできます。 WidthとHeightを変更すると、編集画面の青い線で示された範囲が変わります。これ...

Hello, world

どっから手を付けていいのか分からないので、とりあえず公式サイトの ドキュメント を参考にみていこうと思います。 それにしても、日本語の情報が少ない(´・ω・`) ちなみにGodotの今の安定バージョンは、2.1ですが、バージョン3.0がベータ段階にあり、そのうち正式にリリースされると思います。興味があれば こちら からダウンロードできます。C++で書かれているようです。 プロジェクトの作成 新しい開発環境に触れる場合は、とりあえず、Hello, worldを表示するのがお決まりですね。 プロジェクトマネージャで、「New Project」を選び、プロジェクトのパスを設定します。 「Browse」ボタンをクリックして、プロジェクトの場所を指定できますが、デフォルトでアプリケーションをインストールした場所が表示されるみたいです。しかも、前回の場所を覚えておいてくれないので、プロジェクトを作成する度に毎回、指定するディレクトリまで移動しないといけません。 デフォルトの場所を変更する方法がないか調べてみたのですがどうも見つけられませんでした。(´・ω・`) 最初からアプリケーション自体をプロジェクトフォルダに配置するのがいいのかもしれません。 「Create Folder」をクリックして、プロジェクト用のフォルダを作成することができます。 今回は、「HelloWorld」という名前にしました。 フォルダを選んで、「Create」をクリックすると、プロジェクトの編集画面へ遷移します。 最初は、3Dの画面が表示されますが、上のタプで、「2D」を選べば、2Dの画面に切り替わります。 編集画面は上のような感じになっています。画面中央に、配置された項目が描画される画面があり、右側には、ノードツリー(ノードはGodotで扱う基本要素です)と、ノードのプロパティを表示するパネルがあります。 左側にプロジェクトのディレクトとその中身を表示するパネルがあります。「res://」は、プロジェクトのルートディレクトリを示します。 デフォルトでは上のような構成になっていますが、各パネルの右上にある、▼マークをクリックして位置を変えることもできます。 実行 とりあえず、実行ボタンを押してみます。すると、こんな通知が......