「イベント関数」または単に関数は、GDevelopの強力な機能です。ゲームのイベントを整理したり、ゲームの複数の場所でイベントを再利用したりするのに役立ちます。いくつかの外部イベントで敵を管理するために共通のイベントを配置し、リンクを使用してさまざまなシーンでこれらのイベントを含めることができます。関数はさらに一歩進んでいます。イベントを使用して、**新しい条件**、**新しいアクション**、さらには**新しい式**を宣言できます。関数を登録するときに、条件、アクション、または式のいずれかを選択できます。この関数には、ゲーム中に条件またはアクションが起動されたときに実行されるシーンや外部イベントなどのイベントが含まれます。イベントに加えて、関数には通常の条件、アクション、式と同様にパラメーターもあります。パラメータは、オブジェクト、数値、またはテキストです。functions]]を御覧ください。function]]**も参考にしてください。tip>関数の使用例をビデオで御覧ください。関数は「拡張機能」にグループ化されます。​[[gdevelop5:​extensions:​search|ゲームにインストールできる拡張機能]]と同じです。ゲームの拡張機能のリストを見ることができますし、[[gdevelop5:​interface:​project-manager|プロジェクトマネージャ]]で確認できます。下部の「+」ボタンをクリックして、新しい拡張機能を作成します。名前を右クリックして名前を変更できます。単一の拡張機能で同じものに関連する関数を使用することをお勧めします。リスト内の拡張機能をクリックして、エディターを開きます。デフォルトでは、拡張機能には機能がありません。左側の[新しい関数を追加]をクリックして追加します。新しい機能が追加されました。名前を変更して、内部で何をしたいかに応じて名前を付けることができます。関数をクリックして編集します。設定とイベントを変更できます。関数が選択されると、上部に、関数の構成が表示されます。[アクション]または[条件]を選択すると、ゲーム内のイベントを編集するときに、アクションと条件のリストに関数が表示されます。[式](または[文字列式])を選択すると、式を編集するときに式のリストに表示されます。次に、一覧に表示される名前を構成できます。関数のパラメーターを選択するときに、ウィンドウに表示される説明を入力します。アクションまたは条件の場合、イベントシートに表示される文を入力できます。関数がパラメーターを受け取る場合(これらの詳細については以下を参照)、アンダースコアの間にPARAMxを記述xし、パラメーター番号(1から始まる)で置き換えることでそれらを含めることができます。これは、「RotateObjects」という名前の関数の例です。この関数は、「指定されたオブジェクトの回転」という説明と、回転するオブジェクトを1つのパラメーターで指定したアクションです。パラメータを使用すると、関数は本当に便利で強力になります。関数の構成の下で、パラメーターを追加できます。これらのパラメーターは、イベントシートでアクション、条件、または式を使用するときに使用できます。「パラメーターの追加」ボタンでパラメーターを追加します。パラメーターごとに次のように入力できます。**関数のイベント**内のパラメーターにアクセスするために使用される名前。パラメータには、オブジェクト、数値、またはテキストを指定できます。オブジェクトを選択すると、受け取るオブジェクトのタイプも選択できます。アクション/条件または式を構成するときにウィンドウに表示されます。回転するオブジェクトを返すパラメーターを追加できます。関数を構成したら、イベントを追加できます。これらのイベントは、条件、アクション、または式がゲームの部分で使用されるときに起動されます。すべての既存のイベント、アクション、条件、および式を使用できますが、**パラメーターとして入力したオブジェクト**に制限されます。これは、関数がそれらにのみ作用し、ゲームの残りの部分に「副作用」がないことを保証するためです-これは悪い習慣であり、関数の再利用と生成を難しくします。関数はどこでも再利用でき、シーンに限定されないことに注意してください。**シーンの変数のリストはそこにありません。通常のアクションを使用し、変更する変数を手動で書き込むことで、引き続きそれらを操作できます。関数は自律的であり、理論上はプロジェクトにも結び付けられていないため、**リンク**は関数では使用できません。一部のオブジェクトを回転させる関数の例を次に示します。これは非常にシンプルで実用的ではない関数の例です(関数を記述せずにアクションを使用してオブジェクトを直接回転させることもできます)。複雑なロジックを内部に追加すると、関数の強さがわかります。<​note>​関数が条件または式の場合、[[gdevelop5:​events:​functions:​return|「関数」カテゴリのアクションを使用して、式/条件値を設定します。関数のイベントを構成および作成したら、ゲーム中で使用できます。新しいアクション(または条件)を作成し、リストで拡張機能の名前を見つけて、作成した関数を選択します。それですべてです!この関数は、[[ja/gdevelop5:​interface:​events-editor|イベントエディタ]]の他の条件、アクション、または式と同様に使用されます。**オブジェクトグループ**は、関数を作成しながら、特色、類似したオブジェクトパラメータをグループ化するのに役立ちます。このようにして、アクション/条件をオブジェクトパラメータのグループ(オブジェクトを指すパラメータ)に一度に適用できます。このページでは、機能の概要を説明しました。これらはGDevelopのより強力な機能の1つです。イベントを使用してイベントを拡張できるため、非常に読みやすく簡潔なイベントシートを作成できます。それらを使用することにより、ゲーム用に記述するイベントの量を減らし、コピー&ペーストを避け、オブジェクトの一般的なタスクに関数が常に使用されるようにすることでバグを減らすことができます。関数は自分自身を呼び出すことができます!関数のイベントでは、ゲームの他の部分と同じアクション/​条件/​式を使用できます。important>​再帰的な関数を書くときは特に注意してください。条件を追加しない場合、関数はそれ自体を無限に呼び出し、ゲームをブロックする可能性があります。関数は、プロジェクト間で共有できます(GDevelopで作成されるアクション/​条件など)。それを行う最も簡単な方法は、単にコピー/​ペーストすることです。[[gdevelop5:​extensions:​share|コミュニティと共有する]]ことを検討して下さい。tip>再利用可能で共有できるような、[[ja/gdevelop5:​events:​functions:​replace-external-events|外部イベントを関数で置き換える例]]を参照して下さい。​**[[gdevelop5:​events:​functions:​extract-events|自動的にイベントを関数に展開する]]**も参考にして下さい。mightycraft。