UnrealEngine

UnrealEngine/Plugins

インストールされているPluginを調べる。

[Edit (編集)]メニューから[Plugins(プラグイン)]編集イターフェイスを開く。

メインの[Window]メニューから、プラグインエディタにアクセスできる。

コード付きのプラグインは、Sourceフォルダを持つ。

Plugin Folders

プラグインは、Unreal Engine のプラグイン用の検索パスに置くこと。

Plugin typeSearch Path
Engine plugin/UE4 root/Engine/Plugins/My Engine Plugin/
Game plugin/My Project/Plugins/My Game lugin/

基準となる Plugins フォルダの下に、サブディレクトリを作ってpluginをそこに置いても構わない。 pluginが見つからない限り、自動的に下位のサブディレクトリをスキャンする。 ただし、1つでもpluginを発見すると、それより下位のサブディレクトリはスキャンしない。

Unreal Engine は .upluginという拡張子のファイルを探すことで、個々のplugin を発見する。 これはテキストファイルで、基本情報を保持している。

Code in Plugin

Visual Studio や Xcode でプロジェクトを生成すると、 (*.Build.cs ファイルが存在する)Source フォルダを持つ plugin が追加され、 ソースコードを調べやすくなる。 このような plugin は、プロジェクトをコンパイルする際に、 Unreal Build Toolが自動的にコンパイルする。

pluginには何個もソースフォルダが存在して構わないが、普通は1個である。

plugin では、新しい UObject 型 (UCLASS, USTRUCT, etc) を、そのモジュールの下位フォルダで宣言することができる。

plugin のソースファイルは、他のC++のモジュールとほとんど同じである。 plugin で異なるのは、Public source file のヘッダである。 たいていの plugin では、 Public source folder にあるヘッダで public APIs をエクスポートする必要はない。したがって通常 Public source folder は空である。 例外は以下の通り。

  • plugin に複数の C++ モジュールがある場合。Publicフォルダは複数のモジュールで共有できる。
  • engine plugin ではなくgame plugin を作成していて、pluginモジュールを静的リンクしたい場合。
  • public interface headers を plugin と共に配布したい場合。

Content in Plugins

Unreal Engine は バイナリだけではなく、コンテンツを含むpluginをサポートしている。 コンテンツを含む場合は、'CanContainContent?' 設定を 'true' にすること。

まだ、実装中なので、動かないかも。

Plugins in your Game Project

あなたのゲームプロジェクトの 'Plugins/' フォルダの下位にある plugin は、 game engine や editor が起動するときに発見されロードされる。

ソースフォルダや *.Build.cs ファイルを含むモジュールを plugin が含んでいる時は、 plugin のコードは C++ のプロジェクトファイルに自動的に加えられる。

ソースのサブフォルダを持たない plugin の場合は、プロジェクトジェネレータに無視され C++プロジェクトのファイルとしては表示されない。しかし、バイナリが存在する限り、 起動時にロードされる。

Engine Plugins

Engine ディレクトリにある built-in plugins は、全てのゲームプロジェクトで利用できる。

ゲームモジュールそのものや、ゲームモジュールのplugin よりも前にロードされる。

Engine plugins は次の要件を満たす必要がある。

  • 静的にリンクしてはならない。

Plugin の配布

  1. plugin の記述子ファイル (.uplugin) を編集し、名前、モジュール、バージョンなどを設定する。
  2. Editor の Plugin Browser で対象の plugin を見付けたら 'Edit...' リンクをクリックして、pluginに関連したメタデータ (description, ドキュメントのリンクなど)を更新する。
  3. 'Package...' リンクをクリックして、配布用フォルダへ plugin をパックする。

デフォルトでは、ソースコード、バイナリ、コンテンツだけが plugin でパッケージされる。 追加ファイルを含めたい場合は、Config/FilterPlugin?.ini というファイルを作り、 追加パスを記述する。

[FilterPlugin]
/ThirdParty/...
/MyOtherFolder/...

Plugin Descriptor files

plugin descriptor は、ファイルの拡張子が .uplugin である Json 形式のファイルである。 ファイル名の最初の部分は常にplugin の名前になる。

{
   "FileVersion" :3,
   "FriendlyName" :"UObject Example Plugin",
   "Version" :1,
   "FriendlyVersion" :"1.0",
   "Description" :"An example of a plugin",
   "Modules" : [
                 {
		    "Name" :"UObjectPlugin",
                   "Type" :"Developer"
		  }
		]
}
   

Module Descriptors

{
  "Name" : "UObjectPlugin",
  "Type" : "Developer",
}

Icon File を必要とする

/ResourcesMust128x128 PNG
/Icno128.pngMustFile

Pluginの例

  • BlankPlugin?
  • UObjectPlugin?
  1. サンプルプラグインを新規フォルダにコピーし、名前を変更する。
  2. ゲームプロジェクトのディレクトリに 'Plugins/' フォルダを作成し、その下に自分のpluginをコピーする。
    GAME_PROJECT_FOLDER/Plugins/BlankPlugin
    GAME_PROJECT_FOLDER/Plugins/UObjectPlugin
  3. C++ プロジェクトを Rebuild する。
  4. Editor または Game を起動する。 まだpluginは無効である。
  5. Window->Plugins で Plugin Editor を開き、plugin を有効にする。
  6. Editor を再起動する。pluginは自動的にロードされる。
  7. 確認する。Window->Developer Tools -> Module Viewer
  8. 確認する。コードデバッガで、プラグインの開始コードにbreak point を設定する。
    FBlankPlugin::StartupModule()

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-12 (木) 18:52:51 (316d)