This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
この用語集では、Defold に登場するすべての要素を簡単に説明します。ほとんどの項目には、より詳しいドキュメントへのリンクがあります。
アニメーションセット(animation set)リソースには、アニメーションの読み込み元となる glTF ファイルや他の .animationset ファイルのリストが含まれます。複数のモデル(model)でアニメーションセットの一部を共有する場合は、ある .animationset ファイルを別の .animationset ファイルに追加すると便利です。詳細はモデルアニメーションのマニュアルを参照してください。
アトラス(atlas)は、パフォーマンスとメモリのために、個別の画像を1枚の大きなシートにまとめたものです。静止画像や、連続した画像を切り替えるフリップブックアニメーション(flip-book animation)用の画像列を含めることができます。さまざまなコンポーネント(component)が、グラフィックスリソースを共有するためにアトラスを使用します。詳細はアトラスのドキュメントを参照してください。
プロジェクトの builtins フォルダーは、便利な標準リソースを含む読み取り専用のフォルダーです。標準のレンダラー、レンダースクリプト(render script)、マテリアル(material)などが用意されています。これらのリソースを独自に変更する必要がある場合は、プロジェクト内にコピーし、必要に応じて編集します。
カメラ(camera)コンポーネントは、ゲームワールドのどの部分を表示し、どのように投影するかを決めるために役立ちます。一般的な使い方は、プレイヤーのゲームオブジェクト(game object)にカメラを取り付けることや、カメラを持つ別のゲームオブジェクトを用意し、何らかの平滑化アルゴリズムを使ってプレイヤーに追従させることです。詳細はカメラのドキュメントを参照してください。
コリジョンオブジェクト(collision object)は、ゲームオブジェクトに物理的なプロパティ(空間的な形状、重さ、摩擦、反発係数など)を追加するコンポーネントです。これらのプロパティによって、他のコリジョンオブジェクトとの衝突の仕方が決まります。最も一般的なコリジョンオブジェクトの種類は、キネマティックオブジェクト(kinematic object)、動的オブジェクト(dynamic object)、トリガー(trigger)です。キネマティックオブジェクトは詳細な衝突情報を提供し、その情報への応答は自分で実装する必要があります。動的オブジェクトは、ニュートンの運動法則に従うように物理エンジンによって自動的にシミュレートされます。トリガーは、他の形状がトリガーに入ったか、トリガーから出たかを検出する単純な形状です。この仕組みの詳細は物理のドキュメントを参照してください。
コンポーネントは、グラフィックス、アニメーション、コードによる動作、サウンド(sound)など、特定の表現や機能をゲームオブジェクトに与えるために使います。単独で存在することはできず、ゲームオブジェクトの中に含める必要があります。Defold には多くの種類のコンポーネントが用意されています。コンポーネントの説明は基本構成要素のマニュアルを参照してください。
コレクション(collection)は、ゲームオブジェクトの階層を再利用できるテンプレートを作成するための Defold の仕組みです。他のエンジンでは、このようなテンプレートを「プレハブ」と呼びます。コレクションは、ゲームオブジェクトや他のコレクションを保持するツリー構造です。コレクションは常にファイルに保存され、エディターで手動で配置して静的にゲームに組み込むか、生成によって動的にゲームに組み込みます。コレクションの説明は基本構成要素のマニュアルを参照してください。
コレクションファクトリー(collection factory)コンポーネントは、実行中のゲーム内にゲームオブジェクトの階層を動的に生成するために使います。詳細はコレクションファクトリーのマニュアルを参照してください。
コレクションプロキシ(collection proxy)は、アプリケーションやゲームの実行中にコレクションをその場で読み込み、有効にするために使います。コレクションプロキシの最も一般的な用途は、プレイするタイミングでレベルを読み込むことです。詳細はコレクションプロキシのドキュメントを参照してください。
キューブマップ(cubemap)は、立方体の各面にマッピングされる6つの異なるテクスチャで構成される、特殊な種類のテクスチャです。スカイボックスや、さまざまな種類の反射マップ、照明マップのレンダリングに役立ちます。
ゲームが予期しない動作をする場面にいずれ遭遇し、何が問題なのかを突き止める必要があります。デバッグの習得には熟練が必要ですが、幸い Defold にはその助けとなるデバッガーが組み込まれています。詳細はデバッグのマニュアルを参照してください。
ディスプレイプロファイル(display profiles)のリソースファイルは、画面の向き、アスペクト比、デバイスの機種に応じた GUI レイアウトを指定するために使います。UI をあらゆる種類のデバイスに適応させるのに役立ちます。詳細はレイアウトのマニュアルを参照してください。
必要なゲームオブジェクトをすべて手動でコレクションに配置することはできず、その場で動的に作成する必要がある場合があります。たとえば、プレイヤーが弾を発射する場合、引き金を引くたびに弾を動的に生成し、発射する必要があります。ゲームオブジェクトを、あらかじめ割り当てられたオブジェクトのプールから動的に作成するには、ファクトリー(factory)コンポーネントを使います。詳細はファクトリーのマニュアルを参照してください。
フォント(font)リソースは、TrueType または OpenType のフォントファイルから構築されます。フォントリソースでは、フォントを描画するサイズと、描画したフォントに付ける装飾(アウトラインと影)の種類を指定します。フォントは GUI コンポーネントやラベル(label)コンポーネントで使用されます。詳細はフォントのマニュアルを参照してください。
フラグメントシェーダー(fragment shader)は、ポリゴンを画面に描画するときに、ポリゴン内の各ピクセル(フラグメント)に対してグラフィックスプロセッサー上で実行されるプログラムです。フラグメントシェーダーの目的は、出力される各フラグメントの色を決めることです。これは計算、1回または複数回のテクスチャ参照、あるいは参照と計算の組み合わせによって行います。詳細はシェーダーのマニュアルを参照してください。
ゲームパッド(gamepad)のリソースファイルは、特定のプラットフォーム上で、特定のゲームパッドデバイスからの入力をゲームパッドの入力トリガーにどう対応付けるかを定義します。詳細は入力のマニュアルを参照してください。
ゲームオブジェクトは、ゲームの実行中にそれぞれ独立した生存期間を持つ単純なオブジェクトです。ゲームオブジェクトはコンテナーであり、通常はサウンドやスプライト(sprite)など、視覚や聴覚に関わるコンポーネントを備えています。スクリプト(script)コンポーネントを通じて動作を与えることもできます。エディターでゲームオブジェクトを作成してコレクションに配置するか、実行時にファクトリーを使って動的に生成します。ゲームオブジェクトの説明は基本構成要素のマニュアルを参照してください。
GUI コンポーネントには、ユーザーインターフェースの構築に使う要素として、テキストや、色やテクスチャを付けたブロックが含まれます。要素は階層構造にまとめ、スクリプトで制御し、アニメーションさせることができます。GUI コンポーネントは通常、ヘッドアップディスプレイ、メニューシステム、画面上の通知を作成するために使います。GUI コンポーネントは、GUI の動作を定義し、ユーザーによる GUI の操作を制御する GUI スクリプト(GUI script)で制御します。詳細はGUI のドキュメントを参照してください。
GUI スクリプトは、GUI コンポーネントの動作を制御するために使います。GUI のアニメーションや、ユーザーが GUI をどのように操作するかを制御します。Defold での Lua スクリプトの使用方法については、Defold における Lua のマニュアルを参照してください。
Defold エディターでは、ホットリロード(hot reload)によって、デスクトップやデバイス上ですでに実行中のゲームのコンテンツを更新できます。この機能は非常に強力で、開発のワークフローを大きく改善できます。詳細はホットリロードのマニュアルを参照してください。
入力バインディング(input binding)ファイルは、ゲームがハードウェア入力(マウス、キーボード、タッチスクリーン、ゲームパッド)をどのように解釈するかを定義します。このファイルは、ハードウェア入力を “jump” や “move_forward” のような高水準の入力 アクション に対応付けます。入力を受け取るスクリプトコンポーネントでは、特定の入力に対してゲームやアプリケーションが実行する処理をスクリプトで記述できます。詳細は入力のドキュメントを参照してください。
ラベルコンポーネントを使うと、任意のゲームオブジェクトにテキストコンテンツを追加できます。特定のフォントを使い、ゲーム空間内のテキストを画面に描画します。詳細はラベルのマニュアルを参照してください。
Defold では、強力なライブラリ(library)の仕組みを通じて、プロジェクト間でデータを共有できます。この仕組みを使うと、個人用でもチーム全体用でも、すべてのプロジェクトからアクセスできる共有ライブラリを用意できます。ライブラリの仕組みの詳細はライブラリのドキュメントを参照してください。
Defold では、ゲームロジックの作成にプログラミング言語 Lua を使います。Lua は強力で効率的な、非常に小さいスクリプト言語です。手続き型プログラミング、オブジェクト指向プログラミング、関数型プログラミング、データ駆動型プログラミング、データ記述をサポートします。言語の詳細は、Lua の公式ホームページ https://www.lua.org/ や、Defold における Lua のマニュアルを参照してください。
Lua モジュール(Lua module)を使うと、プロジェクトを構造化し、再利用できるライブラリコードを作成できます。詳細はLua モジュールのマニュアルを参照してください。
マテリアルは、シェーダーとそのプロパティを指定することで、さまざまなオブジェクトをどのようにレンダリングするかを定義します。詳細はマテリアルのマニュアルを参照してください。
コンポーネントは、メッセージ(message)による通信であるメッセージパッシング(message passing)を通じて、互いに、また他のシステムと通信します。コンポーネントはまた、自身の状態を変更したり特定の処理を引き起こしたりする、あらかじめ定義された一連のメッセージにも応答します。グラフィックスを非表示にしたり、物理オブジェクトに軽く力を加えたりするには、メッセージを送信します。エンジンもメッセージを使い、たとえば物理形状が衝突したときなどに、コンポーネントにイベントを通知します。メッセージパッシングの仕組みでは、送信する各メッセージに受信先が必要です。そのため、ゲーム内のすべての要素には一意のアドレスが付けられています。オブジェクト間で通信できるように、Defold は Lua を拡張してメッセージパッシングを追加しています。Defold は便利な関数のライブラリも提供しています。
たとえば、ゲームオブジェクトのスプライトコンポーネントを非表示にする Lua コードは、次のようになります。
msg.post("#weapon", "disable")
ここで、"#weapon" は現在のオブジェクトのスプライトコンポーネントのアドレスです。"disable" はスプライトコンポーネントが応答するメッセージです。メッセージパッシングの仕組みについての詳しい説明は、メッセージパッシングのドキュメントを参照してください。
3D モデルコンポーネントは、glTF のメッシュ、スケルトン、アニメーションのアセットをゲームにインポートできます。詳細はモデルのマニュアルを参照してください。
パーティクルは、特にゲームで魅力的な視覚効果を作成するのにとても役立ちます。霧、煙、火、雨、落ち葉などを作成できます。Defold には強力なパーティクルエフェクトエディターがあり、ゲーム内でエフェクトをリアルタイムに実行しながら、作成や調整ができます。この仕組みの詳細は、ParticleFX のドキュメントを参照してください。
ゲームでは優れたパフォーマンスが鍵になります。ゲームを計測し、修正が必要なパフォーマンスのボトルネックやメモリの問題を特定するために、パフォーマンスとメモリのプロファイリングを行えることが不可欠です。Defold で利用できるプロファイリングツールの詳細は、プロファイリングのマニュアルを参照してください。
レンダリング(render)ファイルには、ゲームを画面に描画するときに使う設定が含まれます。レンダリングファイルは、描画に使うレンダースクリプトとマテリアルを定義します。詳細はレンダリングのマニュアルを参照してください。
レンダースクリプトは、ゲームやアプリケーションを画面にどのように描画するかを制御する Lua スクリプトです。最も一般的な用途に対応する標準のレンダースクリプトが用意されていますが、独自のライティングモデルやその他のエフェクトが必要な場合は、自分で作成できます。レンダリングパイプラインの仕組みの詳細はレンダリングのマニュアルを、Defold での Lua スクリプトの使用方法についてはDefold における Lua のマニュアルを参照してください。
スクリプトは、ゲームオブジェクトの動作を定義するプログラムを含むコンポーネントです。スクリプトを使って、ゲームのルールや、プレイヤーおよび他のオブジェクトとのさまざまなやり取りにオブジェクトがどう応答するかを指定できます。すべてのスクリプトはプログラミング言語 Lua で記述します。Defold を使うには、自分またはチームの誰かが Lua でのプログラミングを学ぶ必要があります。Lua の概要と、Defold での Lua スクリプトの使用方法については、Defold における Lua のマニュアルを参照してください。
サウンドコンポーネントは、特定の音を再生する役割を担います。Defold は WAV、Ogg Vorbis、Ogg Opus ファイルをサポートします。Opus のサポートは、アプリケーションマニフェスト(App Manifest)で有効にする必要があります。詳細はサウンドのマニュアルを参照してください。
スプライトは、ゲームオブジェクトにグラフィックスを追加するコンポーネントです。タイルソース(tile source)またはアトラスの画像を表示します。スプライトには、フリップブックアニメーションとボーンアニメーションのサポートが組み込まれています。通常はキャラクターやアイテムに使います。
テクスチャプロファイル(texture profiles)のリソースファイルは、バンドル作成の過程で画像データを自動的に処理し、圧縮するために使います。対象となるのは、アトラス、タイルソース、キューブマップ、モデルや GUI などで使う単独のテクスチャの画像データです。詳細はテクスチャプロファイルのマニュアルを参照してください。
タイルマップ(tile map)コンポーネントは、タイルソースの画像を1つ以上の重なったグリッド上に表示します。最も一般的な用途は、地面、壁、建物、障害物など、ゲームの環境を構築することです。タイルマップは、指定したブレンドモードで複数のレイヤーを重ねて表示できます。これは、たとえば草地の背景タイルの上に葉を配置する場合に役立ちます。タイルに表示する画像を動的に変更することもできます。これにより、たとえば壊れた橋を描いた画像と対応する物理形状を含むタイルに置き換えるだけで、橋を破壊して通行できなくすることができます。詳細はタイルマップのドキュメントを参照してください。
タイルソースは、同じサイズの小さな画像を複数組み合わせたテクスチャを記述します。タイルソース内の一連の画像から、フリップブックアニメーションを定義できます。タイルソースは、画像データからコリジョン形状を自動計算することもできます。これは、オブジェクトが衝突したりやり取りしたりできるタイル状のレベルを作成する場合に、とても役立ちます。タイルマップコンポーネント(およびスプライトと ParticleFX)は、グラフィックスリソースを共有するためにタイルソースを使います。タイルソースよりアトラスのほうが適している場合が多いことに注意してください。詳細はタイルマップのドキュメントを参照してください。
頂点シェーダー(vertex shader)は、コンポーネントのプリミティブなポリゴン形状が画面上でどのような形状になるかを計算します。スプライト、タイルマップ、モデルなど、どの種類の視覚的なコンポーネントでも、その形状はポリゴンの頂点位置の集合で表されます。頂点シェーダープログラムは、各頂点をワールド空間で処理し、プリミティブの各頂点の出力座標を計算します。詳細はシェーダーのマニュアルを参照してください。