CRYENGINE V Luaを使用して、新しいEntityを実装する方法

Luaを使用して、新しいEntityを実装する方法

まだ詳しくわかっていません。間違っているかも。見づらいので文の修正を予定。

新しいEntityを実装するには、.Luaファイルと.entファイルの2つのファイルを指定の場所に追加する必要があります。

.entファイル場所
Assets\entities

.luaファイル場所
Assets\scripts\entities

.entファイル

entファイルは、Entityを登録するためのファイル。xml形式。

<Entity
Name="RadarBase"
Script="Scripts/Entities/Others/cube.lua"
/>

Name Entity classの名前
Script .Luaファイルパス。エンティティクラスを実装するために使用
Invisible サンドボックス内で見えなくする。

Luaファイル

高速な実行速度が特徴のスクリプト言語。
ゲーム開発での利用も多い。

 

プロパティ表
このプロパティ表を作ることによってEntityのパラメータを設定できます。

cube = {
Properties = {
object_Model = "Objects/cube.cgf",
Mass = 10, --[25,100,0.1,"Comment"]
Density = -1,
bRigidBody = 1,
bPushableByPlayers = 0,
},

Editor={
Icon=”Tornado.bmp”,
},
}

function cube:OnReset() –スクリプトがリロードされるたびに呼び出される
self:LoadObject(0, self.Properties.fileModel); — 重要?オブジェクトをリロード?
end

function cube:OnInit() –実際のゲームか、Sandboxのゲームモードの時に呼び出される
self:OnReset(); –自身にOnReset関数を使用
end

function cube:OnPropertyChange() –プロパティを変更するたびに呼び出される
self:OnReset(); –自身にOnReset関数を使用
end
Luaファイル内に割り当てられた値は、サンドボックスのデフォルト値として使用される。

プロパティ値に希望するデータ型を付ける

値の名前にプレフィックス付ける (値の名前の先頭に付ける)

値の名前の先頭に付ける Data Type データ型
b boolean trueまたはfalseのいずれか
f float 浮動小数点のデータ型
i integer 数字のデータ型
s string テキストを格納するために使用される文字の配列。
clr color 浮動小数点のデータ型。カラーの値
object_ CFG、CGA、CHRまたはCDFファイル。  fileModelの場合もありどちらが良いのか分かっていない

Sandbox内での表示関連

Model
ShowBounds
AbsoluteRadius
Icon Entityの上に描画かれたBMPアイコン
IconOnTop アイコンが上に描画するか下に描画するか
DisplayArrow
Links

Special Comments

利用可能な変数の後ろに特別なコメントを追加することで、エディタ内部のデフォルトのスライダーを変更することができます。

–[25,100,0.1,”Comment”]

値を25と100の間の値に制限
0.1は、小数の0.01 ずつ変更可能
“Comment”の部分は、追加情報を提供する。変数の上に、ポップアップ表示されるツールヒントが追加。

Functions
スクリプトエンティティは、エンジンやゲームシステムによって呼び出さいくつかのコールバック関数を含めることができます。
詳細は、Callback Referencesから
http://docs.cryengine.com/display/SDKDOC4/Callback+References

最低限以下のコールバック関数が必要なようです。

function cube:OnReset() --スクリプトがリロードされるたびに呼び出される
    self:LoadObject(0, self.Properties.fileModel); -- これが無いとモデルが表示されなかった。
end

function cube:OnInit() --実際のゲームか、Sandboxのゲームモードの時に呼び出される
    self:OnReset(); --自身にOnReset関数を使用
end

function cube:OnPropertyChange() --プロパティを変更するたびに呼び出される
    self:OnReset(); --自身にOnReset関数を使用
end

 

 

Pocket

コメントを残す