Unreal Engine には、プロジェクトの機能をスクリプト化する方法がいくつか用意されています。 ランタイム時のゲームプレイに最適なものもあれば、エディタ内ツールの構築にのみ役立つものなど、さまざまなものがあります。
Python スクリプティング
Python スクリプトは、プロダクション パイプラインや 3D アプリケーション間の相互運用性、特にメディアやエンターテインメント業界のアプリケーションに最適です。 Python は、Unreal Editor 内のワークフローを自動化するのに適していますが、ランタイム スクリプトには使用できません。 Python は、Unreal Engine で使用する多くの機能やワークフローに統合されています。
Python スクリプティングは、Unreal Editor で以下の用途に使用できます。
大規模なアセット管理パイプラインの構築や、使用している他の 3D アプリケーションと Unreal Editor を結び付けるためのワークフローの作成。
スタティックメッシュの詳細度 (LOD) メッシュの生成のように、エディタにおいて時間がかかるアセット管理タスクの自動化。
レベル内でコンテンツをプロシージャルにレイアウト。
Python でデベロッパー自身が作成したユーザー インターフェース (UI) からエディタを制御。
Python のスクリプティングはプラグインで実現します。これはプラグイン ブラウザの [Edit (編集)] メニューから Python Editor Script プラグインとエディタス クリプティング ユーティリティを有効化することで利用できます。
Unreal Engine で Python を使用する方法の詳細については、「Python を使用した Unreal Editor のスクリプティング」を参照してください。
Maya ユーザー向けに、Python ワークフローはアニメーション、コントロール リグ、IK リグの主要な領域に統合されています。 これらのワークフローにおける Python の詳細な使用方法については、以下のリンク先を参照してください。
ブループリント ビジュアル スクリプティング
Unreal Engine には、ブループリントと呼ばれるビジュアル スクリプト言語が実装されています。 ブループリントは包括的なスクリプティング システムで、ノードベースのインターフェースを使用して、インエディタのツールやワークフロー、キャラクターやオブジェクトのゲームプレイ要素を作成し、アニメーションやサウンドなどをトリガーします。 このシステムは非常に柔軟性に優れていると同時に強力でもあり、通常はプログラマー向けに提供されている高度なツールを使って、デザイナー自身がコンセプトを形にできます。
ブループリントは、コーディングの経験がなくても機能を構築したいデザイナーやアーティストにとって理想的です。 ブループリントは、Unreal Engine の他のシステムとシームレスに統合されており、ビジュアルな方法でロジックを開発し、迅速にプロトタイプを作成できます。
エディタまたはランタイムでブループリントを使用する方法をいくつか紹介します。
ゲームプレイのためにキャラクターの動きや挙動を設定する
アニメーションやサウンドの再生をトリガーする
UMG でユーザー インターフェースを作成する
エディタ ユーティリティ ウィジェットでインエディタのツールを作成する
ドアを開けるなど、オブジェクトとのインタラクション
敵やその他のゲームプレイ イベントのスポーン
移動するプラットフォームなど、レベルにロジックを追加する
その他多数!
このように多様な用途に使用するため、ブループリントの種類も多岐にわたります。 情報やロジックの扱い方によって、いくつかのタイプに分けられます。 タイプの例:
このタイプのブループリントには、ビューポートとノード グラフがあります。 プレイヤーのキャラクターや敵、武器のピックアップなど、ロジックが適用されるアクタを追加したいときに非常に有用です。
ブループリント クラスに似ていますが、ノード グラフのみで構成されている点が異なります。 親から継承した変数やコンポーネントも含まれます。 これらのブループリントは継承されたプロパティのみを変更できるため、親クラスのバリエーションを作成するのに適しています。 これらはマテリアルとマテリアル インスタンスの関係のように考えることができます。
ブループリント間でのデータ共有や送信に使える、ユーザーが作成した関数が格納されています。 これは、コンテンツ ブラウザ内で作成して参照できるアセットです。
これは、ロードされたレベルにのみ存在する特殊なタイプのブループリントです。 アクタや、レベル シーケンスの再生などのイベントをトリガーするなど、レベル全体のグローバル イベント グラフとして機能します。
これはアニメーション モード エディタに組み込まれた特殊なブループリントです。 シミュレーションやゲームプレイ中にスケルトンメッシュのアニメーションを制御するために使用します。 このブループリントのノード グラフの特徴は、アニメーションをブレンドし、スケルトンのボーンを制御して、フレームごとに使用する最終的なポーズを定義するロジックを作成するように設定されていることです。
プロジェクトでのブループリントの使用に関する詳細は、以下のトピックを参照してください。
アニメーション ブループリント
アニメーション ブループリントはアニメーション モード エディタの一部です。 このブループリントは、スケルタルメッシュのアニメーションを制御および管理するために使用される特殊なタイプのブループリントです。 主にゲームプレイで使用されるキャラクターに使用され、ブループリントのノード ベースのスクリプトを使用して複雑なアニメーション動作を定義できます。 アニメーション ブループリントは一般的にリアルタイムのゲームプレイに使用されますが、リアルタイム物理、布シミュレーション、メッシュ変形などのリアルタイム アニメーション エフェクトを実装するために使用することもできます。
アニメーション ブループリントの詳細については、このガイドの「プロジェクトでアニメーションを使用する」セクションを参照するか、「アニメーション ブループリント」を参照してください。
エディタ ユーティリティ ウィジェット
エディタ ユーティリティ ウィジェットは、ワークフローを合理化するために、ブループリントのビジュアル スクリプティングを使用して、独自のインエディタ ツール、プレーン、インターフェースを構築できます。 これらのユーティリティ ウィジェットは、アクタ、アセット、レベルなどのエディタデータにアクセスし、操作することができます。 作成したユーティリティ ウィジェットは、Unreal Editor の他のパネルと同様にドッキング可能です。
エディタ ユーティリティ ウィジェットは、ワークフローの合理化、反復タスクの自動化、アセットの管理、レベル内でのコンテンツの直接操作に最適です。
詳細と使用方法については、以下を参照してください。
スクリプト可能ツール システム
スクリプト可能ツール システムは、カスタム インタラクティブ ツールを作成するための関数とエディタ モードを提供します。C++ プログラマーでなくてもエディタでインタラクティブ ツールを作成できるようにするためのものです。 このプラグインを使うことで、ブループリント上でインタラクティブ ツール フレームワークが利用可能になり、クリエイターやテクニカルアーティストは、モデリング モードと同様に動作するツールを設計できるようになります。
これらはエディタ ユーティリティ ウィジェットと似ているように見えますが、実際にはカスタム ユーザー インターフェース (UI) を備えた非モーダルのダイアログウィンドウを使用しており、さまざまな種類のエディタ スクリプティングを行うことができます。 それ自体は強力で有用ですが、非モーダルなダイアログとしてできることには限界があります。 スクリプト可能なツールはモーダルであり、使用中は他のツールをアクティブにできません。 これは、エディタの状態がより厳密にコントロールされるということでもあります。 スクリプト可能なツールは、より効率的にマウスをキャプチャすることができます。ユーザー インターフェース (UI) はユーティリティ ウィジェットよりも構造化されており、作成したツールをランタイム時に使用することができます。
スクリプト可能ツールの使用例としては、以下のようなものがあります。
線や点などの基本的な 3D ジオメトリを描く。
ブループリントを通じてツールにプロパティ セットを追加し、ユーザーから見えるツール設定として機能させる。
1 つ以上の 3D ギズモを作成し、その位置を制御し、トランスフォームの変更に対応する。
スクリプト可能なツールは、プロシージャル コンテンツ生成 (PCG) や モーション デザインなど、エンジンの他の機能と組み合わせることができます。
詳細は、「スクリプト可能ツール システム」を参照してください。
次のページ
Maya ユーザー向けの Unreal Engine でのワールドの設計とビルド
Maya ユーザーを対象とした、Unreal Engine のワールドの設計およびビルドの概要です。