UDN
Search public documentation:
UnrealScriptClassesJP
English Translation
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UnrealScript のクラス
概要
Actor クラスを拡張したものだからです。 Object クラスを直接拡張したクラスもありますが、これらは通常アクタによって使用されるヘルパークラス (例 : コンポーネント ) です。
UnrealScript におけるクラスとオブジェクトの概念は、他のほとんどのオブジェクト志向プログラミング言語における概念と同様です。 この種のトピックスは、インターネット上に多数あります。
クラスの宣言
class MyClass extends MyParentClass;
MyClass という新たなクラスが宣言されています。このクラスは、 MyParentClass クラスの機能を継承します。つまりクラスは、それぞれ、その親クラスの変数、関数、ステートをすべて含むことになります。さらに、各クラスは、新たな変数の宣言、新たな関数 (または、既存の関数をオーバーライド)、また新たなステートを追加 (または既存のステートに機能を追加) することが可能です。
継承とポリモーフィズム (すなわち関数のオーバーライド) の概念は重要です。プログラミング (特にオブジェクト志向の言語) が初めての方はよく研究すべきでしょう。
クラス指定子
class MyClass extends MyParentClass [Specifier Specifier ... Specifier];
class MyClass extends MyParentClass [Specifier Specifier ... Specifier];
- Native(PackageName)
- 「このクラスは、影の C++ サポートを使用する」ということを示します。「Unreal」は、native のクラスが、.EXE における C++ による実装を含んでいるものと見なします。native のクラスだけが、native の関数を宣言、または native のインターフェイスを実装することが可能です。native のクラスは、必ず、別の native のクラスから派生しなければなりません。native のクラスは、自動生成 C++ ヘッダファイルを作成します。これには、スクリプトの変数および指定された関数とのインタラクトに必要な グルー が付きます。デフォルトでは、
PackageNameが、スクリプトのクラスが置かれるパッケージです。たとえば、当該クラスが Engine パッケージ内にある場合は、自動生成ヘッダはEngineClasses.hとなります。 - NativeReplication
- 当該クラスのための変数値のコピーが、C++ 実装で扱われるということを示します。native クラスについてのみ有効です。
- DependsOn(ClassName[,ClassName,...])
- ClassName が、当該クラスよりも前にコンパイルされることを示します。 ClassName には、同一の (または前の) パッケージ内にあるクラスを指定しなければなりません。多重依存クラスを指定するには、コンマで区切って単一の
DependsOnの行を使用するか、あるいは、クラスごとにDependsOnの行を使用します。このことが重要となるのは、他のクラスで宣言された構造体や列挙型変数が、クラスで使用される場合です。その理由は、コンパイラが、当該クラス内にあり、かつ、すでにコンパイルしたものしか分からないからです。 - Abstract
- 当該クラスを「抽象的な基本クラス」として宣言します。この指定子によって、ユーザーは、「Unreal」エディタ内で当該クラスのアクタをワールドに追加することができなくなるとともに、ゲーム中にこのクラスのインスタンスを作成することができなくなります。このクラスだけでは意味がないためです。たとえば、
Actor基本クラスは abstract ですが、そのサブクラスであるLadder(はしご) クラスは abstract ではありません。この場合、Ladderクラスをワールドに配置することができますが、Actorクラスをワールドに配置することはできません。このキーワードは、イントリシックな子クラスに継承されますが、スクリプトの小クラスには継承されません。たとえば、Actorは abstract で、PawnはActorを拡張しますが、abstract が宣言されていません。abstract 指定子が継承されないため、このPawnクラスはインスタンス化することができます。 - Deprecated (非推奨)
- このクラスによるオブジェクトはすべて、ロードされるものの、保存できなくなります。deprecated アクタのインスタンスが配置されると、エディタ内でマップがロードされた時に、レベルデザイナーに警告が発せられます。このキーワードは、子クラスに継承されます。
- Transient (一時的)
- 「このクラスに属するオブジェクトは、決してディスクには保存しないように」ということを示します。 本質的に永続的 (persistent) ではない native クラスの類 (例 : プレイヤーやウインドウなど) とともに使用する場合にのみ役立ちます。このキーワードは、子クラスに継承されます。子クラスは、
NonTransientキーワードを使用してこのフラグをオーバーライドすることができます。 - NonTransient
- 基本クラスから継承される
Transientキーワードを無効化します。 - Config(IniName)
- 当該クラスが コンフィギュレーション ファイル (.ini) 内にデータを保存することが可能であることを示します。クラス内にコンフィギュレーション可能な変数 (
configまたはglobalconfig変数指定子 をともなって宣言された変数) がある場合は、この config 指定子を付けることによって、それらの変数がカッコ内のコンフィギュレーション ファイルに保存されるようになります。このフラグは、子クラス全てに継承され、無効にすることはできません。ただし、子クラスが、configキーワードを再宣言して異なるファイル名を指定すると、.ini ファイルを変更することができます。IniNameの値は、Game の部分を取り除いたゲーム名に追加されます。これによって、データを保存する .ini ファイル名が指定されることになります。(例 : UDKGame において、Config(Camera)を指定することによって、当該クラスはUDKCamera.iniファイルを使用するようになります)。また、inheritキーワードをIniNameとして指定することができます。これによって、クラスがその親クラスと同じ config ファイルを使用するようになります。以下は、デフォルトですでに存在している .ini ファイルです。- Config(Engine): Engine コンフィギュレーション ファイルが使用されます。このコンフィギュレーション ファイルの名前は、ゲーム名の後に
Engine.iniが付いたものです。たとえば、UDKGame の Engine コンフィギュレーション ファイルは、UDKEngine.iniとなります。 - Config(Editor): Editor コンフィギュレーション ファイルが使用されます。このコンフィギュレーション ファイルの名前は、ゲーム名の後に
Editor.iniが付いたものです。たとえば、UDKGame の Editor コンフィギュレーション ファイルは、UDKEditor.iniとなります。 - Config(Game): Game コンフィギュレーション ファイルが使用されます。このコンフィギュレーション ファイルの名前は、ゲーム名の後に
Game.iniが付いたものです。たとえば、UDKGame の Game コンフィギュレーション ファイルは、UDKGame.iniとなります。 - Config(Input): Input コンフィギュレーション ファイルが使用されます。このコンフィギュレーション ファイルの名前は、ゲーム名の後に
Input.iniが付いたものです。たとえば、UDKGame の Input コンフィギュレーション ファイルは、UDKInput.iniとなります。
- Config(Engine): Engine コンフィギュレーション ファイルが使用されます。このコンフィギュレーション ファイルの名前は、ゲーム名の後に
- PerObjectConfig
- 当該クラスのコンフィギュレーション情報が、オブジェクト単位で保存されるようになります。その場合、.ini ファイル内において、
[ObjectName ClassName]という形式によるオブジェクト名にちなんだセクションが各オブジェクトのためにできます。このキーワードは、子クラスに継承されます。 - PerObjectLocalized
- 当該クラスのローカライズされた情報が、オブジェクト単位で定義されるようになります。その場合、.ローカライゼーション ファイル内において、
[ObjectName ClassName]という形式によるオブジェクト名にちなんだセクションが各オブジェクトのためにできます。このキーワードは、子クラスに継承されます。 - EditInlineNew
- エディタ。当該クラスのオブジェクトが「Unreal」エディタのプロパティ ウインドウから作成可能であることを示します。(デフォルトの動作では、プロパティ ウインドウからは、既存のオブジェクトへの参照しか割り当てることができません)。 このフラグは、子クラスに継承されます。子クラスは、
NotEditInlineNewキーワードを使用して、このフラグをオーバーライドすることができます。 - NotEditInlineNew
- エディタ。基本クラスから継承される
EditInlineNewキーワードを無効化します。親クラスでEditInlineNewを使用しているものがない場合は無効です。 - Placeable
- エディタ。当該クラスが、「Unreal」エディタで作成し、レベルまたは UI シーン、Kismet ウインドウに配置できる (クラスのタイプによる) ことを示します。このフラグは、子クラスに継承されます。子クラスは、
NotPlaceableキーワードを使用してこのクラスをオーバーライドすることができます。 - NotPlaceable
- エディタ。基本クラスから継承される
Placeableキーワードを無効化します。「Unreal」エディタにおいて当該クラスがレベルなどに配置できないことを示します。 - HideDropDown
- エディタ。当該クラスが、「Unreal」エディタにおけるプロパティ ウインドウのコンボボックス内で表示されないようになります。
- HideCategories(Category[,Category,...])
- エディタ。当該クラスのオブジェクトについて、「Unreal」エディタのプロパティ ウインドウで非表示にすべき1 つ以上のカテゴリーを指定します。カテゴリーなしで宣言された変数を非表示にするには、その変数を宣言しているクラスの名前を使用します。このキーワードは、子クラスに継承されます。
- ShowCategories(Category[,Category,...])
- エディタ。基本クラスから継承される
HideCategoriesキーワードを無効化します。 - AutoExpandCategories(Category[,Category,...])
- エディタ。当該クラスによるオブジェクトについて、「Unreal」エディタのプロパティ ウインドウで自動的に展開すべき1 つ以上のカテゴリーを指定します。カテゴリーなしで宣言された変数を自動的に展開するには、その変数を宣言しているクラスの名前を使用します。
- CollapseCategories
- エディタ。当該クラスのプロパティが、「Unreal」エディタのプロパティ ウインドウでグループ化されてはならないことを示します。このキーワードは、子クラスに継承されます。子クラスは、
DontCollapseCategoriesキーワードを使用することによって、このフラグをオーバーライドすることができます。 - DontCollapseCategories
- エディタ。基本クラスによって継承される
CollapseCatogoriesキーワードを無効化します。 - ForceScriptOrder(true/false)
- エディタ。当該クラスのオブジェクトを表示するプロパティウインドウが使うプロパティとカテゴリーの順番を、スクリプトで定義されたものにする (true の場合) か、あるいは、アルファベット順にします (false の場合)。
- Within ClassName
- 高度。当該クラスのオブジェクトが、 ClassName のインスタンスなしには存在できないことを示します。当該クラスのオブジェクトを作成するには、
Outerオブジェクトとして ClassName のインスタンスを指定しなければなりません。このキーワードは、クラス宣言自体の直後に続くようにしなければなりません。 - Inherits(ClassName[,ClassName,...])
- 高度。多重継承のために使用されます。(追加の基本クラスを指定します)。複数の基本クラスを指定するには、コンマで区切って単一の
Inheritsの行を使用するか、あるいは、基本クラスごとにInheritsの行を使用します。native クラスについてのみ有効です。UObject から派生したクラスを 2 個使用する多重継承はサポートされていません。 - Implements(ClassName[,ClassName,...])
- 高度。当該クラスで実装される 1 つ以上の インターフェイス クラスを指定します。複数のインターフェイスを指定するには、コンマで区切って単一の
Implementsの行を使用するか、あるいは、基本クラスごとにImplementsの行を使用します。native クラスだけが native インターフェイスを実装することができます。 - NoExport
- 高度。当該クラスの C++ 宣言が、スクリプト コンパイラによって自動生成される C++ ヘッダファイルに含まれてはならないことを示します。C++ クラス宣言は、別のヘッダファイルに手書きで定義しなければなりません。native クラスについてのみ有効です。
- ClassGroup(Groupname[,Groupname,...])
- Actor ブラウザにおいて Group View が有効な場合、エディタの Actor ブラウザが、当該クラスおよび当該クラスのあらゆるサブクラスを、指定された
GroupName内に含めるようにすることを示します。
