Next Generation Level EditorはこれまでのPRJファイルを読んだり書いたりすることが出来ます。
NGLEによって書かれたPRJファイルには「雪」や「雨」などの部屋の状態を示すフラグが追加されます。
以前のルームエディタでは追加されたフラグは単に無視されます。
新しいNext Generation Tom2Pcはレイアウトが以前のtom2pcとよく似ています。
サイズの大きなWADファイルをコンバートすることが出来ます。
備考:v50 project(128x128ピクセルのテクスチャを使うPRJファイル)を使う場合は、NG_Tom2Pc.exeを使用してください。以前のtom2pcは新しいテクスチャマップに対応していません。
2つのコントロールについて。
[Statistics]ボタンはコンバートが終了した後クリックすると、コンバート時のメッセージがTXTファイルとして表示されます。
[Crypt Tr4 files]オプションは、起動時無効になっています。
[Crypt Tr4 files]オプションはNG tomb4でのみ動作可能で、オブジェクトやテクスチャの抜き取りを防ぐことが出来ます。
すべてのリストは新しいキーボードコマンドを参照してください。
[DMG]ボタン。ララがこの部屋にいると体力を消耗させます。
備考:上記機能は、Next Generation tomb4エンジンでリリースされたゲームでのみ有効です。
[Cold]ボタンはRoomTypeボタンにより違った働きをします。もし指定した部屋が水の部屋なら、ララの体力は消耗してゆきます。この部屋では息が白くなります。
備考:上記機能は、Next Generation tomb4エンジンでリリースされたゲームでのみ有効です。
部屋を選択した後、マウスの右ボタンで3Dパネルの上(部屋が何もない所)をクリックすると、途中までの部屋は透明(黒線のみ)になります。この状態でマウスの左ボタンをクリックして部屋を選択すると途中の部屋が透明になります。(次の図のように)
備考:
この作業は非常に繊細で本当にマップからアイテムが消えてしまいます。
そういったトラブルを避けるため以下のことはしないでください。
すべてのテクスチャのサイズを変更するには、64x64ピクセルをソースとして、128x128をターゲットとして設定します。
この再マッピングの後、プロジェクトはv50プロジェクト(バージョン50)になります。
v50プロジェクトでは、テクスチャのデフォルトサイズは128x128ピクセルで、アニメーション付きテクスチャとテクスチャサウンドがビッグテクスチャに対応するようになります。
備考:
床のグリッドが非常に高い場合は、壁のドアが現在の天井と揃うようになります。天井よりも高いトンネルを作成すると、図e2のように新しいトンネルルームが作成されます。
壁の床や天井のグリッドの位置が異なる、2つ以上の壁を選択するとどうなるか。画像を参照してください。
[New Up]ボタンと[New Down]ボタンで作成された積み重ねられた部屋のように、トンネルボタンを使用して現在の部屋と同じサイズの別の部屋を作成することもできます。
[New Tunnel Room]は、上記のサンプルと同じように動作しますが、この場合、NGLEで2つの部屋を作成したことを覚えておく必要があります。メインの部屋とフリップされた部屋と2つの新しい部屋が作成されます。そして、フリップされた部屋で作成した新しい部屋は、またフリップされている必要があります。
テクスチャの無い(新しい)三角形が出来、既に貼られているテクスチャは間違った方向を向いています(図C)。
備考:
場合によっては、復元されたテクスチャの向きが間違っていることがあります。これは、上記のコマンドを行う前に、同じスクエアで何度か編集した場合に発生します。
クリアテクスチャの作業モード |
|
矢印 |
作業モード |
![]() |
選択に矢印がない。 選択に矢印がない場合、コマンドは、テクスチャを上面のみ削除し、側面は保持します。 すでにテクスチャが貼られている壁に接続するセクタでクリアなテクスチャを使用する場合は、このモードを使用してください。 |
![]() |
選択に横の矢印。 選択に横の矢印がある場合、コマンドは上面のテクスチャと側面のテクスチャをクリアします。 不規則な床からテクスチャを取り除きたいときにこのモードを使うことができます(丘や山のような) |
![]() |
選択に対角線の矢印。 選択に対角線の矢印がある場合、コマンドは上面を変更せず、側面のみを変更します。 壁のテクスチャをクリアするのに便利。 |
それとは違って、東と南の壁のテクスチャの方が簡単です。この場合、壁を選択する際には「矢印なし」を選択する必要があります。これらの壁では、[Clear Floor Selected Textures]または[Clear Ceiling Selected Textures]の2つのコマンドを実行する必要はありません。
このコマンドは、テクスチャタイルインフォが正しいかどうか確認するため実行します。
[Remove Unused Tail Infos]を使用した後にこのコマンドを使用する必要があります。何らかのテクスチャを貼り、それを上書きして隠れてしまったテクスチャを削除することもできます。
間違ったタイルインフォが見つかると、間違ったタイルインフォが存在する面のテクスチャが削除されます。
全ての間違ったタイルインフォをクリアしたリストが、このコマンドを実行した後に作られるログファイルに表示されます。
(*)RLE8:256パレットカラー、8ビット、圧縮の損失なし。
ShapeプロパティShapeは「増分」効果になる可能性があります。つまり、この効果を適用するたびに高さが増します。他の形状は、「累積」効果であってもよく、すなわち、現在の床(または天井)にそれらの効果を加えていきます。これとは異なり非累積形状効果は、選択した床(または天井)に上書きされ、以前の編集は削除されます。 |
||
Shape Type |
増分 |
累積 |
Slope Shape | YES | YES |
Pyramid Shape | YES | YES |
Smooth Random Effects | YES | YES |
Bending Effects | YES | NO |
Dome Shape | YES | NO |
上記の画像では、一般的なピラミッド(左)とピークピラミッドの(赤色の右側)の違いを確認できます。
注:ピークピラミッドは、床でのみ動作します。天井の場合は、(ピークピラミッドを作るための)分割された三角形が残念ながら使用できないからです。
1)サイズ 18 x 4の部屋を作ります。
2)天井全体を選択し、天井を([+]Ceilingで)40クリックの高さに達するまで上げます。
壁面の明るい緑色と暗い緑色の間のラインに注意してください。このラインは、次の操作の基準線になります。
3)床全体を選択し、白い矢印を下の図のようにします。
4)[Shapes]メニューから[Inverse Bend Floor]を適用します。次に、選択した床をクリックして、白い矢印を次の方向に移動します。
5)今度は[Smooth Slope Floor](Ctrl F1)を適用します。下に示すように、床は基準線の1クリック下でトンネルを勾配させる必要があります。(備考:基準線より上に行った場合は、[Undo]ボタンで前の高さに戻ることができます。)
6)今度は天井に同じ操作をします。
[Bend Ceiling]を適用し、下に示すように白い矢印を移動します。
7)[Smooth Slope Ceiling](Ctrl F3)コマンドを使用し、天井を基準線の1クリック上にします。
8)トンネルは完成しましたが、トンネルの高さのサイズを変更してより丸みのある形にすることができます。
天井を選択して白い矢印を消し、希望の形状になるまで[-]Ceilingをクリックします。
固定曲げの利点は、レイアウトが良好になるように予め作成された(ちょうど1回のコマンド)曲げをすばやく作れることです。プログレッシブ曲げを使用すると、曲げの度合いを選択してターゲットに合わせることができます。
[Settings]ウィンドウでは、曲げ効果に使用する方法を変更できます。放物線の機能(上記の画像ではh2)を使うと、放物線が無限に高くなる可能性があるので、この問題はありません。
備考:ララが上を歩ける曲がった表面のある奇数のセクターより、偶数のセクターの方が、プログレッシブ曲げには適しています。備考:選択範囲が偶数のセクターの場合、ドーム効果が効果的に機能します。
対角線の矢印を選択すると、ドームの角が得られ、ドームの直径は選択部の最長の面に2を乗じたものになります。
下の画像を参照してください。
以前の[Random Floor]から[Random Smooth Floor]で改良された点
備考:
使っているNGLEのモードによって速度がちがう(Draw DoorsモードはDraw Doorsなしよりも速度が遅く、Face Editモードは使用していない時よりも遅くなるなど)ので、より良い設定を行うには次の方法で作業する必要があります。
言い換えれば、Hills効果は、ララが問題なく歩くことができる非常に滑らかな地面を作り出します。
丘や山岳地帯の効果を得るには、グラウンドシミュレーションを参照してください。
備考:
自動バックアップを有効にすると、変更数が設定した値に達すると、現在のプロジェクトが保存されます。
バックアップは、以下の条件が揃ったときにのみ実行されます。
少なくともPaint Shop ProやPhotoshopのプログラムでは、両方のプログラムがコマンドラインから開くためにパス情報を読むことができるので、この方法を使う必要はありません。
C:\PROGRAM FILES\CORE DESIGN\TRLE\GRAPHICS\WADS\KARNAK.WAD
古いプログラムやコマンドラインでパスを読むプログラムの多くは、空白文字がトラブルの原因になります。(PROGRAMとFILESの間の空白やCOREとDESIGNの名前の間)
この問題を解決するため、パスの別のフォーマット「ショートパス」または「MS-DOSパス」があります。
例えば、上記のロングネームのパスは、ショートパスでこのようになります。
C:\PROGR~1\COREDE~2\TRLE\GRAPH~1\WADS\KARNAK.WAD
見栄えは悪いですが、少なくとも上のパスに空白文字はありません。
多くのプログラムはコマンドラインのオプションの区切りに空白文字を使用するので、空白文字で分割した場合、パスは一つの文字列になるのでショートパスでうまく動作します。
Room Item Sector Map_Id Tr4_Id (library.TOM) ------------------------------------------------------------------------------------------ Room45 ANIMATING3 ( 6,7 ) 376 73この場合、TREPでAnimation3アイテムを処理するために使用するインデックスは、値「73」
Shift F1 現在のプロジェクトの情報を表示します。(WADファイルのパスとTGAファイルのパス)
Shift F2 NGLEの設定を変更する[Settings]ウィンドウを開く。
Shift F3 床にある間違った向きの三角形のテクスチャを修正します。
Shift F4 天井にある間違った向きの三角形のテクスチャを修正します。
Shift F5 選択するスクエアのサイズを指定します。
Ctrl F1 床を滑らかなスロープにする。
Ctrl F2 床を階段状のスロープにする。
Ctrl F3 天井を滑らかなスロープにする。
Ctrl F4 天井を階段状のスロープにする。
Ctrl F5 床にピラミッドを作成する。
Ctrl F6 床に逆ピラミッドを作成する。
Ctrl F7 天井にピラミッドを作成する。
Ctrl F8 天井に逆ピラミッドを作成する。
Alt F9 選択した床のテクスチャを削除する。
Alt F10 選択した天井のテクスチャを削除する。
F11 選択した壁にグリッドを作成する。[Grid selected wall]メニューのようなものです。
Ctrl F11 選択した壁から全ての編集を削除する。
F12 全ての壁にグリッドを作成する。[Grid all walls]メニューのようなものです。
Ctrl F12 全ての壁からグリッドを削除する。
Alt 1 ランダムに滑らかな床を上げる。
Alt 2 ランダムに滑らかな床を下げる。
Alt 3 ランダムに滑らかな天井を上げる。
Alt 4 ランダムに滑らかな天井を下げる。
Alt 5 ルームエディタウィンドウのスクリーンショットを保存する。
Alt 6 2Dパネルのスクリーンショットを保存する。
Alt 7 3Dパネルのスクリーンショットを保存する。
Alt 8 プレビューエリアのスクリーンショットを保存する。
Alt 9 プレビューエリアのRGBスクリーンショットを保存する。
Alt 0 テクスチャパネルのスクリーンショットを保存する。
Alt F11 Room Infoパネルのスクリーンショットを保存する。
Alt F12 照明パネルのスクリーンショットを保存する。
Alt T TGAファイルをリロードする。
Ctrl 0 ウィンドウのボタンの表示/復元。(「0」は数字。)Ctrl 1 凸の床を作成する。
Ctrl 2 凹の床を作成する。
Ctrl 3 凸の天井を作成する。
Ctrl 4 凹の天井を作成する。
Ctrl 5 ドーム型の床を作成する。
Ctrl 6 逆ドーム型の床を作成する。
Ctrl 7 ドーム型の天井を作成する。
Ctrl 8 逆ドーム型の天井を作成する。
Ctrl 9 TGAファイルをデフォルトのグラフィックプログラムで開く。
G 編集した前の部屋に移動する。[Go back old room]ボタンのようなものです。
Ctrl G 編集した次の部屋に移動する。
Ctrl H [Move Lara Here]ボタンのように、指定した部屋の選択したスクエアにララを移動させます。
Ctrl + Shift + I 強制終了と同じ状態にする。NGLEがフリーズした場合にバックアップを作成し、crash reportを作成する。
Ctrl J NGLEのタイトルバーの情報を切り替えます。プロジェクト情報か。部屋の情報か。
Ctrl L 過去のプロジェクトをロードする。過去のプロジェクトのリストを表示します。[Load Last Projects]ボタンのようなものです。
Ctrl M NGLEウィンドウを最小化します。
M G コマンドを使うため現在の部屋を編集した部屋のリストに登録します。
Ctrl O WADファイルをリロードします。(「O」は文字)
Shift O 新しくWADファイルを選択します。以前の[Load Objects]ボタン(NGLEではなくなりました)のようなものです。
Ctrl S (TOMB5_LOG.exe実行中に)ログファイルに--- Ctrl S --を書く。
Ctrl T テクスチャパネルで選択したテクスチャの三角形の選択範囲を変更します。
U 現在の部屋を編集した部屋のリストから削除します。
Ctrl Alt Shift 部屋の数を増やします。
このコマンドを使用すると、Staticと現在のソースビューの現在の距離に応じて、MainStaticとそれ以外のStaticを異なる品質で表示することができます。
このスキルは、AnimatingMIPコマンドと非常に似ていますが、とにかくこの場合はゲームで描くために3種類の異なるStaticに対して2つの異なる制限を設定することができます。
MainStaticSlotフィールド
-------------------------
このフィールドには、MainStaticSlot番号を入力します。
NG_Center[Reference]のSTATICS indicesリストにStaticスロットがあります。
MainStaticは、レベルに配置したStaticオブジェクトです。もちろん、最高の品質でなければなりません。
BStaticLimitフィールド
-----------------------
このフィールドでは、MainStaticSlotをBStaticSlotに置き換えて描画するために、ソースビューとStaticの間のセクター(1024ゲーム単位)の最小距離を入力します。
実際は、距離がBStaticLimit(ただしCStaticLimitより小さい)以上になると、MainStaticSlotではなくBStaticSlotが描画されます。
BStaticSlotにはMainStaticSlotとサイズと外観がほぼ同じですが、メッシュが少なく透明なテクスチャが少ない(または無い)ものを作成する必要があります。
透明テクスチャはCPU(またはGPU)を浪費することを覚えておいてください。
BStaticSlotフィールド
----------------------
これは、ソースビューとStaticの間の距離がBStaticLimitより大きく、CStaticLimitより小さい場合に描画するStaticSlot番号です。
Static描画の変更は、レベル内にあるStaticのOCBまたは設定された光には影響しないことを理解してください。BStaticSlotのメッシュだけが使用され、MainStaticSlotのすべての設定は継続します。
IGNOREと入力すると、距離がBStaticLimitより大きい場合にMainStaticSlotの描画がスキップされたことを意味します。
CStaticLimitフィールド
-----------------------
このフィールドはBStaticLimitと同じように機能しますが、この場合、次のCStaticSlotの描画に影響します。
もちろん、CStaticLimitは常にBStaticLimitよりも大きくなければなりません。
IGNOREと入力すると、MainStaticSlotの描画がスキップされたということです。
CStaticLimitにIGNOREを入力すると、次のCStaticSlotは無視されます。
CStaticSlotフィールド
----------------------
このフィールドに入力するStaticスロット番号は、距離がCStaticLimitの距離よりも遠い場合にのみ描画されます。
CStaticSlotで設定したMainStaticSlotのコピーは、単純なシャドウのように非常に悪くなければならず、CStaticLimitフィールドより非常に遠く離れているはずです。
IGNOREと入力すると、距離がCStaticLimitフィールドよりも遠い場合MainStaticSlotの描画をスキップします。
このコマンドを使用すると、ララの開始位置をLARA_START_POSオブジェクトが配置されたルームやLARA_START_POSオブジェクトで指定したOCBと同じ位置に強制することができます。
備考:このコマンドの主な目的は、スクリプト内の2つ以上の[Level]セクションで同じTR4ファイルを指定できることです。このような状況では、[Level]セクションごとにララの異なる開始点を設定して、プレイヤーに異なるレベルであるかのように感じさせることができます。
RoomOfLSPフィールド
--------------------
レベルを開始したい場所にLARA_START_POSオブジェクトを置いた部屋番号。
レベルで1つしかないLARA_START_POSオブジェクトのOCBを次のフィールドに入力する場合は、このフィールドを省略してIGNOREと入力することができます。
OcbOfLSPフィールド
-------------------
ララがレベルを開始するLARA_START_POSオブジェクトのOCB。
直前のフィールドに有効な部屋番号を入力していて、その部屋にLARA_START_POSオブジェクトが1つしかない場合は、この値を省略してIGNOREと入力することができます。
-インクルードファイルに入力することはできませんが、[Options]セクションではプレーンにしか入力できません。
-PluginIdフィールドに#DEFINE命令で定義された変数を使用することはできません。
-NG_Centerフォルダ内にPlugin_SomeName.scriptファイルがあると、NG_Centerプログラム自体からPluginコマンドが挿入された可能性があります。
PluginIdフィールドの説明も慎重に読んでください。これは他のコマンドIDよりも重要なものです。
PluginIdフィールド
-------------------
このフィールドは、エクスポートされたトリガをTriggerGroupコマンドで使用する際、非常に重要です。
NGLEで(スクリプト用の)トリガをエクスポートし、そのトリガがプラグインを持っていた場合、エクスポートされた3つの数値(実際には最初のもののみ)にPluginIdも隠されています。
問題は、IDは一意ですが、このIDを有効なplugin_Name.dllにリンクするには、もう少し作業が必要です。
NGLEはトリガをエクスポートする際にScript.txtを読み込み、そのトリガを所有するプラグイン名に対応するエクスポートされたトリガにセットされているIDをPluginIdとして検出します。
複雑な問題...
とにかく、いくつかのルールだけ覚えるべきです。
-このコマンドのPluginIdは、NGLEプログラムの解析能力がNG_Centerのように進んでいないため、常にプレーンIDでプレーンに入力してください。NGLEはインクルードファイルの#DEFINEコマンドやテキストを解析できません。
-NGLEからトリガをエクスポートする前に、すでにScript.txt(NG_Centerの「save」または「build」ボタンでこれを行います)がディスクに保存されているか注意してください。そうしないと、NGLEは古いScript.txtをディスクから読み込みます。
-このコマンドのIDを簡単に変更しないでください(これは決して行うべきではありません。まだロードされていないプラグインに対しては新しいPluginコマンドを追加するだけです)。この方法では、以前にTriggerGroupに挿入されたPluginIdは古いPluginIdのままで、新しいPluginIdには更新されません。
-あなたが友人からTriggerGroupコマンドを受け取ったときに、そのTriggerGroupがプラグインからのトリガを使っていた場合、そのプラグインのアイデアがどんなもので、友人のスクリプトの中にあるPluginIdが何であるか知っておかなくてはなりません。そして、NG_Centerにそれらの情報を与えるために、あなたのスクリプトに#DEFINE @plugin命令を使います。
#DEFINEコマンドの説明、特に@plugin_nameと#DEFINE「CLEAR」に関するセクションも参照してください。
-NGLEからトリガをエクスポートするたび、NGLEのエクスポートファイルに、トリガを提供するTriggerGroupを囲む#DEFINE @plugin命令についての情報も追加されます。
この命令は、あなたのスクリプトであなただけがそのトリガを使用するときには必要ではありませんが、TriggerGroupを誰かに与えたいときに役立ちます。この場合、受け取った側はトリガに格納されているPluginIdについての情報を必要とします。このことから、そのTriggerGroupを閉じるコメントとしてのみ、その情報(#DEFINE @plugin命令について)を保つ方が良いでしょう。
すでに言ったように、NGLEはあなたのScript.txtファイルから読んだのと同じPluginIdをトリガに置くので、#DEFINE @plugin命令を省略してもうまくいくでしょう。
NG_Center[Reference]の#DEFINE @plugin命令も参照してください。
PluginNameフィールド
---------------------
このフィールドには、指定されたプラグインの名前を入力します。
これはテキストなので、同じテキストを[ExtraNG]セクションにも入力する必要があります。
名前には拡張子を含めないでください。
拡張子は、「.dll」、「.script」などになる可能性があります。
例えば、プラグイン「Plugin_people.dll」の場合は、「Plugin_people」のみ入力します。
MainPluginSettings(MPS_...)フィールド
---------------------------------------
このフィールドには、特定のプラグインの基本的な機能を変更するMPS_フラグを入力します。
NG_Center[Reference]で見つけることができるMPS_フラグですが、おそらく、そのプラグインについて考えられたMPS_フラグだけを使うように注意しなければなりません。
プラグインの各作者はMPS_フラグを設定します。Plugin_Alfaというプラグインがある場合は、このプラグインのPluginコマンドに、Plugin_Alfaで処理されるMPS_フラグだけを入力する必要があります。
NG_Center[Reference]では、説明(緑色)ボックスでアイテムをクリックすると、そのコンスタンツを所有する括弧で囲まれたプラグイン名が左上隅に表示されます。
これらのコンスタンツをすばやく見つけるもう1つの方法は、NG_Center[Plugin]タブに入り、コンボボックスから「Plugin_Alfa」(この例では)の名前を選択し、そのプラグインのコンスタンツのみを表示します。
このルールの唯一の例外として、TRNGのMPS_DISABLEフラグは、プラグインによって影響を受けた問題かどうかを確認するためにプラグインを(一時的に)無効にします。
DisableFeatureArrayフィールド
------------------------------
このフィールドには、同じ形式で1つ以上の値を入力します。
DisableFeatureArrayは配列です。
この配列の各フィールドの書式は、CODE_コンスタンツ+1つのオペランド値の合計です。
このフィールドの一般的な使い方は、あなたの気に入らなかったいくつかの変更(標準のTRNG機能について)を無効にすることです。
NG_Center[Reference]のCODE_コンスタンツも参照してください。
構文:Demo=DemoFlags(DEMF_...), Parameter, InfoText, DemoLegendText, WaitingTime, DemoIndex arrayこのコマンドは、プレイヤーがまだタイトルレベルにいる間、あなたのレベルのデモを表示するために機能します。
上記の状況では、もちろん、スクリプトの[Title]セクションにDemoコマンドを配置します。
一方、[Level]セクションでDemoコマンドを使用すると、custscene-modeで動作しますが、動作上の違いがあります。
備考:それぞれのデモは、単独で機能します。
つまり、[Title]セクションにDemoコマンドを設定しても、レベルには影響ありませんし、
[Level]セクションにDemoコマンドを設定しても、タイトルレベルには影響ありません。
DemoFlags(DEMF_...)フィールド
--------------------------------
このフィールドには、1つまたは複数のDEMF_フラグを追加して、Demoコマンドをカスタマイズします。
NG_Center[Reference]のDEMF_フラグも参照してください。
Parameterフィールド
--------------------
このフィールドには、予備のフィールドです。
将来、DEMF_フラグの中にはこのフィールドに入力するための余分なパラメータが必要になる可能性があります。
このフィールドの使用方法を知るには、NG_Center[Reference]のDEMF_フラグも参照してください。
InfoTextフィールド
-------------------
このフィールドには、タイトルレベルに表示したいテキストを入力します。
デモモードが存在し、それが有効になるのをプレイヤーに知らせるため、タイトルレベルにテキストを表示したい場合は、[ExtraNG]セクションにテキストを追加し、同じテキストをこのフィールドにコピーします。
テキストの色と位置については、[Title]セクションのTextFormatコマンドの設定が使用され、テキストは画面の中央に配置されます。
このフィールドには、オプションでパーセント%の文字を含めることができます。これはカウントダウンのように、WaitingTimeと置き換えられます。
例えば、WaitingTimeを30秒にし、このフィールドに次のように設定します。
A demo will start in %d seconds
タイトルレベルでは、プレイヤーはこのように時間がカウントダウンされるのを見るでしょう。
A demo will start in 30 seconds
A demo will start in 29 seconds
A demo will start in 28 seconds
A demo will start in 27 seconds
etc.
DEMF_PLAY_ON_KEYフラグを設定した場合は、プレイヤーに知らせるためのテキストを常に設定することを強くお勧めします。そうでなければ、プレイヤーがどのキーを押せばよいかわかりません。
したがって、次のようなテキストを入力することができます。
Hit "1" or "2" or "3" keys to see a demo of different locations of this adventure.
上記のケースでは、デモデータを3つのレベル(1番目、2番目、および3番目)で作成した場合です。
詳細については、DEMF_PLAY_ON_KEYコンスタンツの説明を参照してください。
DemoLegendTextフィールド
-------------------------
このフィールドには、デモの再生中に表示されるテキストを入力します。
このテキストをInfoTextフィールドのテキストと混同しないでください。
InfoTextはタイトルレベルで表示され、デモの開始方法をプレイヤーに知らせるため、デモは「Demo will begin in %d seconds」または「Hit 1 or 2 to show a Demo」などのテキストでなければなりません。DemoLegendTextは、デモが進行中のレベル(タイトルとは異なる)でのみ描画されるため、「Demo (hit escape for Menu)」のようなテキストにすることができます。
また、このテキストはTextFormat設定を使用して表示されますが、この場合はデモが使用されるレベルのTextFormatコマンドになります。
WaitingTimeフィールド
----------------------
このフィールドには、デモを開始するためのカウントダウンを入力します。
数値は秒単位で入力します。
プレイヤーがキー操作するとカウントダウンは元に戻ります。
つまり、デモを開始するまで、プレイヤーがWaitingTimeの間、キー操作しないことが必要です。
IGNOREと入力すると、カウントダウンを行いません。この場合、DemoFlagsフィールドにDEMF_PLAY_ON_KEYフラグを追加する必要があります。そうしないとデモは開始されません。
備考:カウントダウンとDEMF_PLAY_ON_KEYフラグを混在させることもできます。その場合、デモはキーを押し(デモを選択)、カウントダウンが完了した後に開始します。
DemoIndex arrayフィールド
--------------------------
この配列には、EDGX_RECORDING_DEMOフラグの記録機能で作成したDemoID.pakファイルのIDを1つ以上入力できます。
備考:
-Demo#.pakファイルはdataフォルダに保存する必要があります。
-連続したデモファイルの名前の構文は次のとおりです。
Demo1.pak
Demo2.pak
Demo3.pak
-このフィールドでIGNOREを使用しないでください。
例えば:
TriggerGroup= 4, $8000, 112, $2C TriggerGroup= 5, $2000, 271, $52 TriggerGroup= 6, $2000, 235, $70, $2000, 232, $52 GlobalTrigger= 2, IGNORE, GT_CONDITION_GROUP, IGNORE, 4, 5, IGNORE GlobalTrigger= 3, IGNORE, GT_TRNG_L_TIMER_EQUALS, 45, IGNORE, 6, INGORE
上記のコードは、IDを使用する異なるコマンド間のリンクを示しています。
GlobalTrigger2は、インデックス4と5を持つTriggerGroupを「呼び出し」、GlobalTrigger3はTriggerGroup6を呼び出します。
コマンドが多くなると、IDの範囲をより大きな数字に変更して、リンクを維持する競合を避けるために、すべてのIDを変更するのがより遅くなります。
しかし、このコマンドを使用すると、上記のコードをこのように変更することができます。
#DEFINE BS_TG 4 ;最初のTriggerGroupインデックス
#DEFINE BS_GT 2 ;最初のGlobalTriggerインデックス
TriggerGroup= BS_TG, $8000, 112, $2C TriggerGroup= BS_TG+1, $2000, 271, $52 TriggerGroup= BS_TG+2, $2000, 235, $70, $2000, 232, $52 GlobalTrigger= BS_GT, IGNORE, GT_CONDITION_GROUP, IGNORE, BS_TG, BS_TG+1, IGNORE GlobalTrigger= BS_GT+1, IGNORE, GT_TRNG_L_TIMER_EQUALS, 45, IGNORE, BS_TG+2, IGNORE
この場合、最終的にコンパイルされたコードはまったく同じですが、2番目のバージョンの利点は、競合が発生したときに、2つの命令を変更するだけで、すべてのTriggerGroupおよびGlobalTriggerインデックスを変更し、それらの間の内部リンクを保持できることです。
#DEFINE BS_TG 10
#DEFINE BS_GT 8
こうすると、すべてのIDは、正しい内部リンクを維持しながらより大きい値に移動されます。
これらのID再マッピングの問題は、いくつかの機能を説明するときに、レベルビルダーがコマンドのブロックを交換する際によく起こります。備考:#FIRST_ID命令も参照すると、目的をより簡単に達成できます。
----------------
このコマンドの他の使い方はあまり役立ちませんが、とにかく考え方は次のようになります。
非常に頻繁に使用する公式ニーモニックコンスタンツのグループを簡単な単語に書き換えるのにこのコマンドを使います。
#DEFINE DEBUG DGX_LOG_SCRIPT_COMMANDS+DGX_COMMON_VARIABLES+DGX_LARA
and
#DEFINE USUAL DGX_LARA+DGX_SFX_SOUNDS+DGX_CHEATS
こうすると、Diagnosticコマンドの入力が簡単に変更できます。
Diagnostic=DEBUG, 0#DEFINE命令に関するいくつかの注意:
- このコマンドはローカルで、現在のソース内でのみ動作します。インクルードファイルで使用していると、異なるソースのため、その命令はそのインクルードファイルでのみ動作します。異なるソースでスクリプトを配置する利点は、異なる値を持つ同じ命令を任意のソースで使用できることです。
同じソースで同じコンスタンツ名を2回使用することはできません。
例えば:
このコードは正しいです。
#DEFINE BS_ALL 10
#DEFINE BS_TG BS_ALL+30
#DEFINE BS_GT BS_TG+15
これは間違っています。
#DEFINE BS_ALL 10
#DEFINE BS_GT BS_TG+15
#DEFINE BS_TG BS_ALL+30
BS_TGの値は#DEFINE BS_GT命令が解析されるときにまだ定義されていないためです。
- VALUEフィールドの間に空白(スペース)を入れることはできません。
これは間違っています。
#DEFINE MYSUM ALFA +BETA
これは正しいです。
#DEFINE MYSUM ALFA+BETA
TriggerGroupコマンドでPluginIdを宣言するためのDEFINEの使い方例えば:
#DEFINE @Plugin_Train 3
TriggerGroup=.......
上のスクリプトでは、NG_Centerがコードを解析し、Plugin_TrainにはPluginId=3があり、次のTriggerGroupを解析するときにPluginId=3のトリガが見つかると、ID=3は「Plugin_Train」だと認識します。
TriggerGroupの前の行で#DEFINEが自分のものである必要はありません。それは2行目、3行目、20行目のいずれかであってもかまいません。とにかく、TriggerGroupのリンクを無効とするためにDEFINEを閉じることを忘れないでください。
以前の#DEFINEを閉じるには、別の#DEFINEである特別な値「CLEAR」を使用します。
したがって、上記の例は次のようになります。
#DEFINE @Plugin_Train 3
TriggerGroup=.......
#DEFINE @plugins CLEAR
上記の例のように、最終的な#DEFINEを入力し、次のような行は入力しないでください。
#DEFINE @plugin_train CLEAR
固定名「@plugins」を使用する理由は、単にこの構文上の理由だからにすぎません。#DEFINE @Plugin_smartlights 4
#DEFINE @Plugin_robots 3
#DEFINE @Plugin_train 1
TriggerGroup=....
#DEFINE @plugins CLEAR
上記の例では、PluginId情報のリストを与えた後、最終的な「#DEFINE @plugins CLEAR」という行ですべてクリアしています。最後のCLEAR行を省略または間違えた場合、問題が発生する可能性があります。
次に、より詳細なサンプルを作成します。
これらのPlugin=コマンドが[Options]セクションにあるとします。
[Options]
Plugin=1, Plugin_people, IGNORE
Plugin=2, Plugin_train, IGNORE
Plugin=3, Plugin_demo, IGNORE
TriggerGroup=10, $024000, 132, $0012
このような状況では、#DEFINE @pluginを使用する必要はありません。なぜなら、NGLEがスクリプト内で読み取ったのと同じPluginIdをトリガに設定しているからです。したがって、plugin_trainはスクリプト内でID=2を使い、NGLEはトリガ内でID=2を使います。
最初にエクスポートされた番号($024000)の最初の2つの16進文字をIDとして見ることができます。最初の$02はPluginID=2です。
さて、次に進みましょう...
ここでは、新しいスキルについて、友人からTriggerGroup(またはより多くのコード)を取得したと仮定します。この友人は、それらのTriggerGroupの中でplugin_peopleを使用したことを通知します。彼は彼のスクリプトでPlugin_peopleがID=2を持っていることを通知しました。あなたのスクリプトではID=2はplugin_trainですが、DEFINE命令を使ってこの競合を解決できます。
#DEFINE @plugin_people 2
TriggerGroup=21, $02200, 17, $0124....
NG_Centerが「#DEFINE @plugin_people 2」行を読み込むとID=2をplugin_peopleに関連付けなければならないので、NG_Centerはあなたのスクリプトでplugin_peopleのID=1を(トリガの内部にある)ID=2に変換します。
しかし、最後のCLEARを省略して、このソートでコマンドを入力すると、#DEFINE @plugin_people 2
TriggerGroup=21, $02200, 17, $0124.... ;plugin_peopleのためのあなたの友人からのTriggerGroup
...他のコマンド....
TriggerGroup=10, $024000, 132, $0012 ;plugin_trainのためのあなたのTriggerGroup
NG_CenterにはあなたのTriggerGroup=10も表示され、Plugin_peopleの場合と同じようにID=2(plugin_trainのもの)が変更されます。
この問題を解決するには、以前の#DEFINEをクリアして他のTriggerGroupを満たす前に閉じることを覚えておいてください。
#DEFINE @plugin_people 2
TriggerGroup=21, $02200, 17, $0124.... ;plugin_peopleのためのあなたの友人からのTriggerGroup
#DEFINE @plugins CLEAR
TriggerGroup=10, $024000, 132, $0012 ;plugin_trainのためのあなたのTriggerGroup
この新しいコードでは、「clear」を指定すると前の定義が削除され、NG_CenterがTriggerGroup=21を解析して内部プラグインテーブルのプラグイン定義を見つけられないときは、元々あったPluginIdを使用します。すなわち「2」。これはplugin_trainの正しいIDです。
構文:#FIRST_ID CommandName=FirstIdこの命令は、スクリプトのインクルードファイルで使用することが検討されています。
インクルードファイルを使用する唯一の欠点は、IDの競合の問題です。
多くのスクリプトコマンドは、最初の引数としてIDを持ち、これらのIDは同じタイプのコマンドでは一意でなければなりません。
NG_Centerはこれらの競合を検出してコンパイル後にエラーとして扱うことができますが、インクルードファイルでは常にメインスクリプトや他のインクルードファイルで使用されている値とは異なる値の範囲のIDを使用するのが良いでしょう。
#FIRST_ID命令はこの目的のために使われます。
インクルードファイルを作成するときは、次のように1つ以上の命令文を最初の行に入力する必要があります。
#FIRST_ID TriggerGroup=40
#FIRST_ID GlobalTrigger=30
上記の命令のおかげで、新しいスクリプトコマンドを入力してF1キーを押してそのコマンドの最初の利用可能なIDを発見すると、NG_Centerは特定のFIRST_ID命令で入力した値を数え上げ、最初の利用可能なIDを計算します。
したがって、上記の例を見ると、最初のTriggerGroupコマンドをこのインクルードファイルに入力すると(ただし、メインスクリプトや他のインクルードファイルに存在する可能性がある)、NG_CenterはTriggerGroupの最初のIDとして40という値を与えます。
2番目のTriggerGroupをタイプすると、最初のIDは「41」になります。
このようにして、インクルードファイル内のすべてのスクリプトコマンドをどのIDから開始するかを決めることができ、異なるインクルードファイルやメインスクリプトファイル間の競合のリスクを軽減できます。
さらに、インクルードファイルの先頭にあるFIRST_ID命令は、将来新しい機能を使用する際、古いインクルードファイルで使用されていたID範囲をすぐに発見することができます。
備考:
-あなたによって定義されたニーモニックコンスタンツを使うことができます。
#DEFINE BS_TG 30
#FIRST_ID TriggerGroup=BS_TG+10
-「=」記号の右側のオペランドの間にスペースを入れないでください。
これは間違いです。
#FIRST_ID TriggerGroup=BS_TG+ 10
-#FIRST_ID命令はローカルです。つまり、同じソースファイル内でのみ動作します。
-ID範囲のスワッピングを強化するには、#DEFINE命令の説明も参照してください。
構文:#INCLUDE "ExternalScriptTextFile.txt"#INCLUDE "LaraHome.txt"
#INCLUDE "AnimClimbFromWater.txt"
#INCLUDE "DistanceSensory.txt"
この作業計画には間違いなく利点があります。
いくつかの(すでに完了している)機能に興味がない場合は、メインスクリプト内のこれらのスクリプトコマンドすべてが混乱を招くわけではありません。
一方、その機能で仕事をしたいときは、NG_Centerにインクルードファイルをロード(F5キー)することができます。意味のあるコマンドを勉強してエディタで編集することができます。
インクルードファイルを扱う場合は、#FIRST_ID命令の説明も読んでください。
メインスクリプトとインクルードファイルに格納されているコマンドのIDが競合するリスクを軽減することは非常に有益です。
備考:
-メインのScript.txtファイルにのみ#INCLUDE命令を入力できます。これで、Script.txtファイルの#INCLUDE命令からロードされたサブファイルで#INCLUDE命令を使用できるようになりました。
-カーソルが#INCLUDE行にある間に、エディタでF5キーを押すとインクルードファイルを読み込むことができます。
-Ctrl F5コマンドを使用して、ファイル名を指定して空のインクルードファイルを作成し、コマンドを保存することができます。
構文:AddEffect=Id, EffectType(ADD_), FlagsEffect(FADD_), JointType(JOINT_), DispX, DispY, DispZ, DurateEmit, DuratePause, Extra param array備考:1.2.2.4より、Staticアイテムにも効果を加えることができます。
Staticに効果を追加すると、いくつかのフィールドは無視され、もちろんAnimCommandsを使用して適用することはできません。
引数
Idフィールド
-------------
これは、[Set Trigger Type]ウィンドウで参照するAddEffectスクリプトコマンドの単純な識別子です。これは、PuzzleItemコマンドまたはPuzzleComboコマンドの最初の引数のように機能します。
例えば、「1」と入力すると、追加する効果を1つ選択して[Set Trigger Type]ウィンドウでこの追加効果を参照します。
idの有効範囲は1から999です。インスタンスの最大数は99です。
EffectTypeフィールド
---------------------
このフィールドにADD_コンスタンツを設定して、追加する効果タイプを選択します。NG_Center[Reference]のADD_コンスタンツも参照してください。
FlagsEffect(FADD_...)フィールド
----------------------------------
いくつかのフラグ効果(FADD_)を使用して、デュレーションまたは効果の動作に関するその他の設定を無効にすることができます。
NG_Center[Reference]のFADD_コンスタンツも参照してください。
備考:Staticアイテムに現在の効果を追加したいときは、いくつかのフラグは無視されますが、他のフラグはクラッシュする可能性があるので、使用しないでください!
Staticアイテムで使用しないフラグ:FADD_DURATE_ANIMATION, FADD_DURATE_STATEID, FADD_VORIENT_180, FADD_VORIENT_270, FADD_VORIENT_90
JointType(JOINT_...)フィールド
---------------------------------
その他のタイプの効果を指定するには、この効果を表示する位置を正確に設定する必要があります。
この計算はちょっと複雑で動きのあるジョイントに対応する点から始めなければなりません(次のフィールドDispX、DispY、DispZを参照)。このジョイントからの変位を設定します。
次のジョイントのいずれかを選択できます。
備考:Staticアイテムに現在の効果を追加すると、Staticは常にメッシュが1つしかなく、ジョイントがないため、このフィールドは無視されます。
JOINT_SINGLE_MESH:0
JOINT_PUBIS:0
JOINT_LEFT_THIGH:1
JOINT_LEFT_KNEE:2
JOINT_LEFT_ANCKLE:3
JOINT_RIGHT_THIGH:4
JOINT_RIGHT_KNEE:5
JOINT_RIGHT_ANCKLE:6
JOINT_ABDOMEN:7
JOINT_NECK:8
JOINT_LEFT_SHOULDER:9
JOINT_LEFT_ELBOW:10
JOINT_LEFT_WRIST:11
JOINT_RIGHT_SHOULDER:12
JOINT_RIGHT_ELBOW:13
JOINT_RIGHT_WRIST:14
値JOINT_SINGLE_MESH(0)については、単一のメッシュのMoveableに使われます。このような状況では、効果の起点はメッシュの中心になります。(実際はピボットですが、非常にしばしば単一メッシュの中心です)
つまり、パーティクル効果をマルチメッシュのMoveableに追加する場合は、原点のようなジョイントを設定し、DispX、DispY、およびDispZフィールドでこの原点を変更して、希望の位置に効果を作成する必要があります。
詳細は以下のフィールドの説明を参照してください。
DispX, DispY, DispZフィールド
------------------------------
DispX、DispY、DispZの3つの値は、ジョイントフィールドで設定した効果の原点間の距離です。
これらの3つの値をどのように設定するかを理解するために、例を実行する方が簡単です。
あなたがララの口に(息として)煙を加える場合は、目標点に近いジョイントを選択する必要があります。つまり、JOINT_NECKを選択してジョイントフィールドに入力することができます。
首から煙が出てしまうので、この原点を上と前に移動させるべきです。
軸X、Y、Zを理解するために、あなたの方に顔を向けているララ(フェイストゥーフェイス)を想像してみてください。
さて、X軸、Y軸、Z軸の向きは次のとおりです。
X値はララの左手で(あなたの右手で)負の値になりますが、ララの右手で(あなたの左手で)正の値になります。
Y値はララの頭が(上向きに)移動するときは負の値になりますが、ララの足が(下向きに)移動するときは正の値になります。
Z値はララの顔がダイレクトにあなたの方に向いているとき(あなたはララを見ています、覚えていますか?)に正の値になりますが、ララの顔が後ろになると負の値になります。
上記の方向付けに続いて、我々はララの口の前で煙を動かすためにこれらの値を使うことができます。
我々は原点として首から始めるので、
口が首から出ているので、煙を正面方向に動かすので、これはZ座標を考慮して、煙はララの前で、背後ではないので、正の値を使用します。
DispZ= +70
Y軸は上向きに負の値を持ち、下向きには正の値をとることができるので、首を下にして煙を上に移動する必要があります。
DispY= -70
DispXについては、首と口が同じ垂直線上にあるので、0にすることができます。
そこで、変位を使用します。
JOINT_NECK, 0, -70, 70
煙はララの口の(ほぼ)前にあるはずです。
DurateEmit and DuratePauseフィールド
-------------------------------------
煙や血液のような効果では、崩壊する粒子の周縁部に休止の他の段階で粒子を放出する段階を交互に行う必要があります。
上記のフィールドに入力する値は、フレーム数です。
例えば、DurateEmit 3およびDuratePause 10として挿入すると、3つの連続するフレームで効果が発生し、10フレームの間中断されます。
これらの2つの値を合わせることで、希望する効果の強さを設定できます。
いくつかのヒントは、これらの2つのフィールドを設定する。
火災と煙:FADD_CONTINUE_EMITフラグを使用して、継続して放射する方が良いです。この場合、durateとpauseの値の型は無視されるため、フィールドを送出することは重要ではありません。
血の場合:1をDurateEmit、30をDuratePauseに設定します。
ミストの場合:あなたが望む結果に依存します。場合によっては、FADD_CONTINUE_EMITフラグを使ってミストもうまく動作します。スプレーをシミュレートする場合は、1をDurateEmit、3をDuratePauseとして使用できます。
Extra Param arrayフィールド
----------------------------
このフィールドには、効果タイプに応じてオプションのフィールドが変化します。
現在、ミストやライトの効果にのみ追加のパラメータがあります。
ミストのための余分なパラメータ
------------------------------
Extra1=ミストボールのサイズ。デフォルト値は12です。
Extra2=ミストボールの数。デフォルトは1です。最大4つのミストボールを設定することができます。ミストボールは、理想的なライン上に配置されます。ミストラインは、現在の動きの方向に向いています。とにかく、ミストラインのフェーシングを回転フラグを使って回転させることができます。
Extra3=ミストの色。MIST_COL_値を設定することができます。NG_Center[Reference]ですべての色を見つけることができます。
Extra4=ミストの持続時間。デフォルト値は6です。このフィールドは、移動可能領域が動いていて、目覚めさせたい場合にのみ使用してください。値が大きければ大きいほど、後は長くなる。
光効果のための追加パラメータ
----------------------------
Extra1=光の強さ。Paolone氏はこの値の意味を詳細にはわかりませんが、もしあなたがあなたの光のために最も強くて幅のある大きな値を入力すれば、とにかくです。フレアの光は強度=16で、この値を基準として閉じた値を使用してください。Paolone氏はそれが光によって到達される距離のセクターの数である可能性があると推測します。
この値は、フラットライトとブリンクライトでは機能しますが、スポットライトでは効果がありません。
Extra2=スポットライトの最大距離。この値は、ADD_LIGHT_SPOTエフェクトでのみ機能します。スポットライトは、ライトコーンの始点と終点の2つの3Dポイントを使用します。最初の3Dポイントは、スポットを追加した移動可能なポイントです。最後のポイントは、このスポットで最後に照射されたゾーンです。SOURCE+指定された方向(直面する方向)の距離。距離はセクターで入力する必要があります。例えば、サイドカーのヘッドライトには、デフォルトの古いtomb4では距離の20セクターがあり、それは世界の遠い視点でした。とにかくスーパーパワーライトを望んでいない場合は、この距離を減らす方がよいでしょう。このフィールドにIGNOREと入力すると、12セクターが使用されます。
Extra3=光の色。このフィールドには、ミスト効果に使用されるMIST_COL...コンスタンツと同じ値を入力できます。ADD_FLAMEエフェクトの追加パラメータ
-----------------------------------
Extra1=強度。このフィールドの値は、FADD_FIRE_STRIPの有無に応じて完全に変化します。
フラグ。
ファイアストリップを使用するときは、Extra1で+1000から-8000の値を入力する必要があります。妥当な値は-4000です。
一般的な単一火を使用するときは、火の大きさを増やす場合は0、1または2を入力します。
Extra2=ララを燃やすための設定。1=ララを燃やし、0=ララにダメージを与えない。
Extra3=垂直方向の設定。1=垂直/0=水平
このフィールドは、FADD_FIRE_STRIPフラグとともにのみ使用されます。
このフィールドに水平方向のファイアストリップを0に設定したい場合は、
あなたが1に設定すると、(小さな)火山の火のような火災の消滅を得る。
AnimationSlotのフィールドとフラグの大部分はAnimationコマンドと同じなので、ここでは2つのコマンドの違いだけを説明します。一方、一般的なフィールドについての情報を得るには、Animationコマンドの説明を読んでください。
Slotフィールド
---------------
このフィールドには、変更するスロットのスロット番号またはMNEMONIC CONSTANTS(BADDY_1、MUMMY)を入力します。
AnimSlotFlags(ASF_...)フィールド
-----------------------------------
このフィールドには、1つまたは複数のASF_フラグを入力して、AnimationSlotコマンドに影響を与えることができます。
Otherフィールド(Animationコマンドと共通)
---------------------------------------------
(上の)AnimSlotFlagsフィールドに続くすべてのフィールドはAnimationコマンドと同じなので、Animationコマンドの説明を読んで、これらのフィールドについての情報を入手してください。
ここでは、2つのコマンドの違いについて簡単に説明します。
(1)AnimationSlotは、特定の(ララとは異なる)スロット上で動作するので、最後のStateID、AnimationIndex arrayのアニメーション番号およびStateIDは、そのスロットのアニメーションおよびStateIDを考慮します。
(2)Vehicleを除き、AnimationSlotではKEY1フィールドとKEY2フィールドは使用しません。これは、プレイヤーが敵を制御できないためです。
(3)車両を作成するときは、2つの異なるスロット、つまり車両のスロットと、その車両に使用されるララのアニメーションのスロットで作業する必要があります。
ララと車両は同時に(ララがそれを運転する間)常に同じアニメーション番号を持つので、AnimationIndex arrayフィールドにアニメーション番号を設定しても問題はありません。
とにかく、Slotフィールド(AnimationSlotコマンドの最初のフィールド)は同じタイプではありませんは、車のスロットまたはララのアニメスロットです。環境および距離に関する条件は、この選択に従ってMoveableとみなされるためです。このため、通常は、衝突のボックスが大きく、この衝突ボックスが最も重要であるため、車両の移動についてはanimtypeの車両スロットを設定し、ララのアニメスロットを使用して他の敵からのララのさらなる傷害のような特定の状況を計算します。
備考:ララのアニメーションの条件を設定すると、それが使用される有効なオブジェクトは、それ自身のララになります。使用されるアニメーションの違いは、特定のララのアニメーションスロットのものとなります。
(4)ENV Condition:ENV_CONDITION_TRIGGER_GROUPフラグを使用すると、そのTriggerGroupに格納されたアクションとコンディショントリガは、次のTriggerGroupフラグのいずれかを使用して、敵、車両、またはララのアニメスロットで動作するようにリダイレクトできます。
TGROUP_USE_ITEM_USED_BY_LARA_INDEX これはララによって駆動される車両です。
TGROUP_USE_EXECUTOR_ITEM_INDEX これは運転中のララのインデックス、またはAnimationSlotコマンドで変更/作成している敵のインデックスです。
TGROUP_USE_FOUND_ITEM_INDEX(これは通常どおり、AnimationSlotコマンドのテストポジション条件で検出されたアイテムインデックスです)
MyUsedSlotフィールド
---------------------
このフィールドには、スロット名またはスロットインデックスを入力します。
例えば、「ENEMY_JEEP」または「34」を入力します。
OBJ_Typeフィールド
-------------------
このフィールドには、MyUsedSlotフィールドに割り当てるオブジェクトを入力します。
MyUsedSlotフィールドとは別のオブジェクトである必要があります。
プラグインでは、すべての新しいオブジェクトにはAssignSlotとOBJ_というコンスタンツが必要です。
AssignSlotを使用して、あるオブジェクトの機能を別の機能にリースする際に、スロットタイプを入力することができます。このスロットのすべての機能は、MyUsedSlotスロットに配置されたオブジェクトに強制します。
例えば、ANIMATING1スロットにリスタイルのクロコダイルを置いて、実際のワニの特徴を[Level]セクションに入力して、それに与えるには。
AssignSlot=ANIMATING1, CROCODILE
あなたはAssignSlotを使って、2種類以上のワニやBADDY_1のように外見の異なる敵のように、外見は違うが同じ機能を持つ異なる敵を持つことができます。
備考:
*すべてのスロットが割り当てを受け入れるとは限りません。ドア、滝、スイッチ、何らかのエミッターは、おそらく割り当てされたスロットで問題を抱えます。このコマンドは、敵にのみ使用してください。
*スロットを再割り当てするときは、両方のスロットがWADに本当に存在する必要があります。
例えば次のコマンドを実行する場合、
AssignSlot=ANIMATING1, CROCODILE
wadにはCROCODILEオブジェクトが必要です。
* BADDY_1、BADDY_2、VON CROY、GUIDEのようないくつかの敵は、代替スキンを必要とします。
デフォルトでは、代替スキンは次のスロットにあります。
BADDY_1の代替スキンはMESHSWAP3の中に
BADDY_2の代替スキンはMESHSWAP2の中に
VON CROYの代替スキンはMESHSWAP1の中に
GUIDEの代替スキンはMESHSWAP2の中に
上記の敵を割り当てるときは、新しい代替スキンを追加する必要がありますが、それをMESHSWAPスロットに配置することはできません。
このため、使用したすぐ次のスロットに代替スキンを挿入する必要があります。
例えば、次のスクリプトコマンドを使用するとします。
AssignSlot=ANIMATING4, BADDY_1
TRNGは、ANIMATING4_MIPスロット内にBADDY_1の代替スキンを探します。このスロットは、ANIMATING4スロットに続くスロットです。
*新たに割り当てられた敵に、元のオブジェクトの他のHPとは異なる新しいHP(活力)を与えることができます。
例えば、次の例では
AssignSlot=ANIMATING4, BADDY_1
ENEMYコマンドを使用して、ANIMATING4スロットのBADDY_1に他のBADDY_1スロットとは異なる新しいHPを強制することができます。
Enemy=ANIMATING4, 1400, IGNORE, IGNORE, IGNORE, IGNORE, IGNORE
しかし、ANIMATING4のために別のダメージを与えることはできません。実際にはEnemyコマンド内のダメージ値は無視されます。
再割り当てされた敵のダメージはソース割り当てスロットと同じになります。上記の例では、他のすべてのBADDY_1オブジェクトに同じダメージが与えられます。
上記の理由から、再割り当てされた敵の受けるダメージを変更したい場合は、Enemyスクリプトコマンドを使用して再割り当てした元のオブジェクトのダメージを修正する必要があります。
*割り当て先の敵はMIPバージョンをサポートしていません。
*割り当て先の敵は元の敵とは異なるアニメーションを持つことはできません。実際には、割り当て先スロットのアニメーションは決して使用されません。
トリック:上記の制限を越える唯一の方法は、元の敵のアニメーションに、Script.datのTriggerGroupを呼び出すために使用された、エクスポートされたフリップエフェクトを挿入することです。
このTriggerGroupに現在のアイテム(TRNG変数のデモを参照)のスロットIDに関する開始条件も入力すると、割り当て先の敵によってアニメーションが実行されたときにのみ、AnimCommandsを実行できます。このAnimCommandsは、異なるアニメーションを実行するため配置すべきです。とにかく、この新しいアニメーションは元の敵に常に追加し、割り当てられた敵のスロットには追加しません。
IdColorフィールド
------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
IDの有効範囲は1から1999です。
Redフィールド
--------------
赤の強さ。0から255の値を入力できます。
Greenフィールド
----------------
緑の強さ。0から255の値を入力できます。
Blueフィールド
---------------
青の強さ。0から255の値を入力できます。
説明
-------------
このコマンドを使用すると、インベントリアイテムに関する新しい結合ルールを作成して、新しいアイテムを入手することができます。
すでに「PUZZLE_ITEM1_COMBO1」と「PUZZLE_ITEM1_COMBO2」の2つのアイテムを結合して、新しいアイテム「PUZZLE_ITEM1」をインベントリに入れたり、「LASERSIGHT_ITEM」と「CROSSBOW_ITEM」を組み合わせて「CROSSBOW WITH LASER-SIGHT」を入手しました。
ところが、CombineItemsコマンドを使用すると、他のアイテムも同様に入手できます。
1)特定の「COMBO」アイテムやLASER_SIGHT + 武器だけではない、組み合わせを作成することができます。
例えば、「PUZZLE1」と「KEY2」を組み合わせて、他の新しいアイテムを入手することができます。
2)パズルアイテムだけでなく、武器、メディパック、EXAMINEアイテム、その他すべてのインベントリアイテムを最終アイテムとして設定できます。
例えば、プレイヤーにこの武器のさまざまな部分を拾うための目的を与え、すべての部品を拾ったときにのみ、武器を作り上げることができます。
2つの部品で完成するアイテムを作ることができますが、3つ、4つ、5つ、それ以上で完成するアイテムも作成できます。
そのためには、同じ[Level]セクションに2つ以上のCombineItemsコマンドを入力することです。
例えば、最終的な武器がグレネード銃であるとして、それを完成するために3つの部分が必要な場合は、次のスクリプトコマンドを入力できます。
CombineItems=PUZZLE_ITEM1, PUZZLE_ITEM2, PUZZLE_ITEM3
CombineItems=PUZZLE_ITEM3, PUZZLE_ITEM4, GRENADE_GUN_ITEM
上記のコマンドでは、中間アイテムとしてPUZZLE_ITEM3を使用しています。したがって、グレネード銃を作るための3つのピースは次のようになります。
(PUZZLE_ITEM1 + PUZZLE_ITEM2) + PUZZLE_ITEM4 = GRENADE_GUN_ITEM
備考:上の例の、PUZZLE_ITEM1 + PUZZLEITEM2でPUZZLE_ITEM3が完成するのは論理的ではありません。なぜならPUZZLEITEMを完成するための組み合わせが既に存在するからです。
そのため、デフォルトのCOMBOアイテムを使用して3つの部品を用意する必要があります。
PUZZLE_ITEM1_COMBO1 + PUZZLE_ITEM1_COMBO2 + KEY_ITEM1_COMBO1
既に、(PUZZLE_ITEM1_COMBO1 + PUZZLE_ITEM1_COMBO2)というPUZZLE_ITEM1を入手するための結合ルールが存在するため、スクリプトコマンドには、このコマンドだけを入力する必要があります。
CombineItems=PUZZLE_ITEM1, KEY_ITEM1_COMBO1, GRENADE_GUN_ITEM
このようにして、プレイヤーはPUZZLE_ITEM1のためにCOMBO1とCOMBO2をピックアップします。
3番目の部品であるKEY_ITEM1_COMBO1もピックアップし、最後にCOMBO1 + COMBO2(標準コンバインルール)で組み合わせたPUZZLE_ITEM1と、3番目の部品であるKEY_ITEM1_COMBO1と組み合わせることができます。
アイテム。
備考:
*このコマンドでIGNOREを使用することはできません。
*無効なスロット値を入力すると、対応するCombineItemsコマンドはTRNGによって無視されます。
*同じ[Level]セクション内のCombineItemの最大数は67インスタンスです。
CRSの使用については、レベルを制作している間はCRS(CRS=DISABLED)を無効にすることをお薦めします。(問題の把握につながるからです。)レベルが完成しリリースする前にCRSを有効にすれば、プレイヤーがクラッシュを避けやすくなります。
備考:
(1)CRSを無効にしてクラッシュが発生した場合、現在のNGLEフォルダにLast_Crash#.txtという名前のファイルが作成されます。
ゲームが終了したばかりでなく、クラッシュが発生したことを知らせるために、クラッシュログを含む特定のLast_Crashファイルを見つけることができるように、別の小さなファイル(常に同じ)が表示されます。
(2)次のフォーラムでクラッシュレポートを投稿することができます。「Bug Reports about NGLE」(http://www.aspidetr.com/forum/viewtopic.php?t=1748)
CUST_Customize Typeフィールド
-------------------------------
このフィールドには、希望するカスタマイジングのタイプを指定するCUST_..コンスタンツを入力します。
NG_Center[Reference]のCUST_コンスタンツも参照してください。
Argumentsフィールド
--------------------
CUST_コンスタンツの後に入力する引数については、現在のCUST_コンスタンツに応じて異なる意味を持つ可変数(場合によっては存在しません)になります。
その使用方法を知るには、それぞれのCUST_コンスタンツの説明をお読みください。NG_Center[Reference]のCUST_コンスタンツも参照してください。
Cutsceneコマンドは、現在のレベルをカットシーンレベルのようにすることを許可します。
このコマンドによって実行される操作は2つだけです。
1)すべてのキーボード/ジョイスティック入力が、カットシーンレベル全体で無効になります。
2)ララが手に武器やフレアを持っている場合、強制的に手ぶらにする。この操作は、カットシーンレベルの開始時に実行されます。
引数
FlagsDMG_フィールド
--------------------
1つ以上のコンスタンツで、ダメージの動作を設定します。NG_Center[Reference]のDM_フラグも参照してください。
プラス'+'記号を使用して異なるDMG_値を加算して合計することができます。
以下のDMGフラグが存在します。
DMG_INDIRECT_BAR
間接的なダメージの進行状況バーを有効にします。
このフラグが存在するとき、ダメージはこのように作用します。ダメージバーは減少しますが、それが空にならない限り、ララにダメージはありません。
間接ダメージバーが空になったら、ララのHP(活力)が非常に速く下り始めます。
つまり、このフラグを設定しないと、ダメージは直接ララのHPに影響します。
DMG_ONLY_PAD
ララが現在のDamageルームの床に触れているときにのみダメージを制限する。このため、このフラグはColdルームでは無視されます。
このフラグを使用して、燃える床/感電する床をシミュレートすることができます。
DMG_INCREASE_BAR
DMG_INDIRECT_BARフラグとともにのみ使用します。
デフォルトでは、間接ダメージバーは満タンで開始し、時間とともに減少します。このフラグを使用すると、間接ダメージバーは空で開始し、時間とともに増加します。
このフラグを使用して、部屋の温度上昇をシミュレートすることができます。
DMG_COLD_WATER
このフラグを設定すると、Cold Waterルームの機能をカスタマイズできます。
このフラグを使用しないと、設定はDamageルームに影響します。
DMG_POISON_LARA
このフラグを設定すると、ララがまだDamageルームに入っていないのに毒に犯されることになります。
DMG_BURNING_DEATH
水のないDamageルームにのみ使用します。
このフラグを有効にすると、次の場合にララが燃えます。
間接ダメージバーは空です。(間接ダメージバーがある場合)
HPバーが空です。(Damageルームの間接ダメージバーを有効にしていない場合)
このフラグを使用して、ララが燃えるまで温度が上昇する部屋をシミュレートすることができます。
DMG_BURNING_SCREAM
DMG_BURNING_DEATHフラグとともにのみ使用します。
DMG_BURNING_DEATHフラグを設定した場合、このフラグを設定して、ララに火がついたときに悲鳴を上げるよう強制することもできます。
備考:このフラグは、間接ダメージバーが設定されていないと、ララはすぐに焼け死に、叫ぶ時間がないので、間接ダメージバーと一緒に機能します。
DMG_SLOW_DISAPPEARING
DMG_INDIRECT_BARフラグとともにのみ使用します。
このフラグでララがDamage/Coldルームから出ると、間接ダメージバーは満タンになるまでゆっくりと増加し、満タンになると画像から取り除かれます。
言い換えれば、このフラグを設定しないと、ララがDamageルームから出ると、間接ダメージバーがすぐに消えます。
SecondsForDeathフィールド
--------------------------
=Damageプロシージャは間接ダメージバーの無くなる速度とダメージの程度を秒数で示します。実際は、このフィールドに設定する数値は、間接ダメージバー全体を減らすのに必要な秒数です。したがって、大きな数字(例えば40秒)を設定すると、ララを殺したり、間接ダメージバー全体を減らすのに多くの時間が必要となるため、ダメージは非常に小さくなります。つまり、秒数を少しに設定すると、ダメージは非常に強くなり、ララは速く殺されます。
SecondsForBarRestoreフィールド
-------------------------------
このフィールドは上記のフィールド(SecondsForDeath)と同じように動作しますが、この場合、ララがColdやDamageルームから離れたときに間接ダメージバーを満タンに戻す速度を制御します。
BarColorフィールド
-------------------
このフィールドには、間接ダメージバーの主な色を設定するRGB値を入力します。
16進形式のRGB値(16進数の場合は'$'接頭辞を使用)は次のとおりです。$RRGGBB
ここで、RR=赤、GG=緑、BB=青の強度。
可能な値は次のとおりです。
$F924F1 ピンク(Coldルームのデフォルトカラー)
$F6F923 イエロー(Damageルームのデフォルトカラー)
$FB8953 オレンジ
$FF0000 赤
$00FF00 緑
$0000FF 青
BarNameフィールド
------------------
このフィールドにゲーム内で間接ダメージバーを説明するテキストを設定します。
例えば、このフィールドに「Temperature」というテキストを入力すると、このテキストが間接ダメージバーの下部に表示されます。
備考:
このフィールドに入力したテキストは、English.txtファイルの[Strings]または[ExtraNG]セクションに存在する必要があります。
この制限を回避する方法は、実際のテキストを入力する代わりに[Strings]のインデックス値を直接入力することです。
[Strings]のインデックスを知るには、NG_Center[Strings]を使用できます。
インデックスは次のように入力する必要があります。
#12は[Strings]のインデックス値 = 12は[Strings]セクションにある文字
!12は[ExtraNG]のインデックス値 = 12は[ExtraNG]セクションにある文字
[Strings]のインデックスを使用している場合は、テキストがEnglish.txtに存在する必要はありませんが、ゲームで使用する特定のlanguage.datファイルには必要です。
備考:間接ダメージバーの名前を表示したくない場合は、「IGNORE」またはヌル記号であるテキスト*(アスタリスク)を入力できます。
BlinkPercentageフィールド
--------------------------
間接ダメージバーが点滅し始める割合を設定できます。
例えば、30をBlinkPercentageに設定すると、間接ダメージバーが満タンから30%以下になるとバーが点滅します。
このフィールドにIGNOREと入力すると、デフォルト値は20%になります。
デフォルト値
現在のレベルのスクリプトでDamageコマンドを設定しないと、設定は次のようになります。
一般的なDamageルームの場合
Damage=DMG_INDIRECT_BAR + DMG_SLOW_DISAPPEARING + DMG_ALERT_BEEP, 16, 6, $F6F923, IGNORE
Coldルームの場合
Damage=DMG_INDIRECT_BAR + DMG_SLOW_DISAPPEARING + DMG_ALERT_BEEP, 10, 5, $f924f1, IGNORE
構文:Detector=Flags(DTF_..), MetricScale, MetersOfRange, Target Items arrayDetectorスクリプトコマンドのフィールド
Flags(DTF_..)フィールド
--------------------------
Detectorの最初のフィールドに異なるDTF_値を追加して、その機能を設定することができます。
現在、次のDTF_フラグがあります。
DTF_ENGAGE_ALWAYS
DTF_ENGAGE_IN_RANGE
DTF_ENGAGE_INVENTORY
「ENGAGE」で始まるDTFフラグは、ゲーム内でDetectorを起動する方法を設定します。
上記のフラグの1つだけを選択する必要があります。
DTF_ENGAGE_ALWAYSを設定すると、ゲーム開始と同時にDetectorが表示され、ターゲットを入手すると消えます。
DTF_ENGAGE_IN_RANGEを使用すると、Detectorは、指定された範囲内のターゲットに近づいたときに自動的に表示されます。
例えば50メートルに設定すると、ターゲットから50メートル以内でDetectorは表示され、50メートル以上離れると消えます。
DTF_ENGAGE_INVENTORYは、他のアイテムと同様にDetectorを設定します。ララはそれを拾う必要があります。(サンプルレベルではDetectorはQUEST_ITEM1になります)
インベントリーで選択すると、Detectorが表示されます。画面から削除するときは、インベントリーから「Cancel」を選択します。
DTF_REQUIRED_ITEM
このフラグは、上記のENGAGEフラグに、QUEST_ITEM1アイテムが必要であると設定します。
例えば、DTF_ENGAGE_ALWAYS + DTF_REQUIRED_ITEMフラグを使用すると、Detectorは、ララがピックアップした場合にのみ(常に)表示されますが、インベントリーでは表示を消すことは出来ません。
DTF_ENGAGE_INVENTORYフラグはDTF_REQUIRED_ITEMフラグと同じ意味になるためどちらか一つのフラグだけで構いません。
DTF_ENGAGE_IN_RANGEフラグを使用した場合、Detectorを表示するためには以下の2つの条件が必要です。
ララがピックアップしたQUEST_ITEM1がインベントリーにあり、ターゲットが指定範囲内にある。あるいはララが指定範囲まで近づく。
DTF_RADAR_MODE
このフラグは、Detectorをレーダーモードに設定します。このフラグを設定しない場合、Detectorはポインタモードで動作します。
2つのモードの間には大きな違いがあり、いくつかのフィールドとフラグは特定のDetectorモードでのみ機能します。
ポインタモードは、一度に1つのターゲットに対してのみ機能します。最初のターゲットがピックアップ(または強制終了)されると、Detectorはリスト内の2番目のターゲットをポイントし始めます。
レーダーモードDetectorでは、レーダーの範囲内にあるすべてのターゲットを同時にスキャンすることができます。
レーダーの範囲は半径6 x MetricScaleで与えられ、数字「6」はレーダーの目盛の数です。例えば、MetricScaleフィールドで2メートルを設定した場合、レーダーからの距離が12メートル以下の場合にのみ、ターゲットがレーダーに表示されます。
レーダーモードを理解するためには、レーダーモードのターゲットは常にアップサイド=北で表示されるため、ポインタモードよりも難しくなります。ポインタモードでは、ポインタは常にララの位置を基準にしています。実際、ポインタモードでは、ポインタが赤いサインをしていると、これはララがターゲットの正しい方向を見ていることを意味します。レーダーモードでは、ララは北に向いていて、ターゲットが左右にあるかどうかを知ることができます。
DTF_FAST_RADAR_SCAN
このフラグは、レーダーモードのDetectorでのみ使用されます。DTF_FAST_RADAR_SCANフラグを設定すると、ターゲットのスキャンが高速になります。
レーダーモードでは、レーダーの針がターゲットに「触れる」ときにのみ、ターゲットの位置と距離が更新されることに注意してください。
DTF_SWINGING_POINTER
このフラグは、ポインタモードでのみ機能します。
あなたがより現実的なDetectorにするためにインベントリのコンパスのようなポインタのスイングシミュレーションを追加することができます。デフォルトでは、ポインタは正確にターゲットを指しています。
DTF_INVERSE_VPOINTER
現在のフラグはポインタモードでのみ機能します。
ラインの位置を高度計(Detectorの右側にあります)で反転することができます。
デフォルトでは(このフラグを使用しない場合)、浮動線はララを示し、中央の固定線はターゲットの位置を示します。
この関係が論理的でないと考えるなら、このフラグを使用して状況を逆転させることができます。DTF_INVERSE_VPOINTERフラグの場合、浮動線はターゲットの垂直位置ですが、固定線はララの垂直位置です。
DTF_NONE
このフィールドにフラグを設定しない場合は、DTF_NONEフラグを使用できます。
MetricScaleフィールド
----------------------
このフィールドには、高度計またはレーダーの目盛の距離をメートル単位で入力します。
このフィールドにIGNOREを設定すると、使用されるデフォルト値は2メートルになります。
ゲームのブロックは2メートルなので、メートルのスケールとして2を設定すると、Detectorの目盛は1ブロック(つまり2メートル)になります。
ポインタモードでは、このフィールドは高度計(Detectorの右横のライン)でのみ機能します。
ポインタモードでは目盛の値を小さくする方が良いでしょう(デフォルト値「2」で正解です)。
レーダーモードでは、レーダーの範囲は半径6 x MetricScaleで与えられ、数字「6」はレーダーの目盛の数です。
例えば、距離100メートル(50ブロック)など、レーダーでターゲットが非常に遠くに見えるようにするには、(100/6)=(約)16メートルのような値を目盛として設定する必要があります。
レーダーモードでは、少なくともプレイヤーがターゲットがわかるように大きな値を使用することをお勧めします。
MetersOfRangeフィールド
------------------------
このフィールドには、Detectorをゲームに表示するのに必要なターゲットの距離(メートル)を入力します。
このフィールドは、DTF_ENGAGE_IN_RANGEフラグを設定した場合にのみ使用されます。
DTF_ENGAGE_IN_RANGEフラグとレーダーモードを使用する場合は、MetricScaleで計算された範囲と同じ値で範囲のメーターを合理的に設定することができます。
例えば、2(デフォルト)をMetricScaleに設定すると、ターゲットは2 * 6 = 12メートル内にある場合にのみ表示され、MetersOfRangeでも同じ値(12)を設定できるようになります。
Target Items Arrayフィールド
-----------------------------
Target Items Arrayフィールドには、NGLEプログラムで表示されるアイテム(Moveableアイテムのみ)の1つ以上のインデックスを入力できます。
2つ以上のインデックスを入力する場合は、コンマで分割する必要があります。
例
Detector=DTF_REQUIRED_ITEM+DTF_ENGAGE_IN_RANGE+DTF_SWINGING_POINTER + DTF_INVERSE_VPOINTER, 2, 30, 365, 372, 373, 375, 377
上の行では、「2」の値はMetricScaleであり、「30」はMetersOfRangeであり、他のすべての数値(365,372,373,375,377)はモニタするMoveableインデックスです。
備考:
アイテム配列のリストは、レーダーモードまたはポインタモードを使用している場合、異なる方法で動作します。
ポインタモード
Detectorは1つのアイテムの位置のみを表示します。
上記の例では最初のインデックス365が、ターゲットです。
最初のインデックス(上記のサンプルで365)をピックアップするか倒された場合だけ、Detectorは2番目のアイテム(上記の例ではインデックス372)を表示します。
このモードでは、リストの次のアイテムをDetectorが表示しないため、倒したりピックアップできないアイテム(DOORやANIMATINGなど)を使わないでください。
ターゲットとして倒したりピックアップできないアイテムを設定したい場合は、以下のようにしてください。
- レーダーモードを使用します。なぜなら同時にリストのすべてのターゲットを表示できるからです。
- または、リストの最後に倒せないアイテムのインデックスを置きます。
-また別のチャンスがあります。あなたがkillトリガを使って同じフィールドを歩いているときに、このアイテムを取り除く(倒す)ためにアクショントリガ(NGLEの特殊トリガ)を使用します。
レーダーモード
このモードでは、すべてのターゲットが同じ時間に追跡されますが、レーダーの範囲(半径6 x MetricScale)に入るために十分に閉じられたターゲットのみがレーダーに表示されます。
レーダーは、垂直位置に応じてさまざまな方法でターゲットを表示します。
ターゲットがララの同じ高さ(床)にある場合、ターゲットは少し点滅する円のように表示されます。
言い換えれば、ターゲットがララ(4メートル以上)の上にあるときは、頂点が北を指す三角形のように表示され、ターゲットが4メートル以上のララの階下にあるとき)、三角は南を指します。
同じ形状が垂直パネル(Detectorの右側の列)に表示され、
説明を読めば、ララ(+ 2 / -2セクター)のターゲットがちょうど上または下になってもサークル(同じ高さのララのターゲット)が実際に表示されることがわかります。
構文:Diagnostic=ENABLED/DISABLEDこれらの情報は、アニメーションの番号を発見するのに便利です。そして、この番号を使用して、WADMergerのAnimationEditorを使用してアニメーションをWADファイルに配置することができます。
上記の情報をリアルタイムで読み取ることに問題がある場合は、NG_Center\ToolsフォルダにあるTomb4_Log.exeを使用してすべての診断メッセージをキャッチし、テキストファイルに保存することもできます。
診断機能を有効にしてゲームを起動する前にTomb4_Log.exeを実行すると、ロード画面のためにScript.txtファイルにLoadCameraコマンドで追加した現在のカメラビューについての情報も表示され、ログファイルに保存されます。
LoadCameraについての情報をログファイルに記録するには、F1キーを押し続ける必要があります。
ログファイルはNG_Center\Toolsフォルダにtomb4_log.txtという名前でゲームを終了した時点で自動保存されます。
これはあなたがこのようにして得ることができるテキストのサンプルです。
21656: LoadCamera=6656, -2817, 14123, 6656, -2631, 12800, 2
21672: Animation=103 StateId=2($2)
DiagnosticType(DGX_...)フィールド
------------------------------------
このフィールドには、1つまたは複数のDGX_コンスタンツを入力して、表示する特定の診断情報を有効にすることができます。
Extra Dgx flags(EDGX_...)フィールド
--------------------------------------
この余分なフィールドには、選択した診断タイプをさらにカスタマイズするために、EDGX_の値が必要になることがあります。
このフィールドでEDGX値を受け入れる場合は、DGX_コンスタンツの説明を参照してください。
備考:Diary=コマンドの説明の下部には、日誌にテキストで挿入して表示できる特殊なテキストフォーマッタについての説明もあります。これらの説明も見てください。
Id Diaryフィールド
-------------------
あなたはすべての冒険に10の異なる日誌を持つことができます。
それぞれの日誌はさらなるレベルに続きます。
そのため、前に[Level]セクションに定義したDiaryコマンドと、同じID値を持つ同じDiaryコマンドを入力することが重要です。唯一の違いはFirstStringフィールドが、さらなる[Level]セクションで使用されるDiaryコマンドで無視される点です。
フリップエフェクトトリガで使用するダイアリーを区別するために、IDを指定する必要があります。
備考:多くの日誌を持つ機会、高度なExamineアイテムのような日誌を使用することが許可され、多くの情報と画像が継続的に更新または増やすことができます。
IDの有効範囲は1から999です。
SlotDiaryItemフィールド
------------------------
このフィールドには、ララのDiaryアイテムに対応するスロットを入力します。
スロットアイテムを選択することはできません。スロットはインベントリアイテムでなければなりません。次のようなクエストアイテムを使用することをお勧めします。
QUEST_ITEM1
QUEST_ITEM2
QUEST_ITEM3
QUEST_ITEM4
QUEST_ITEM5
QUEST_ITEM6
TRNGウェブサイトの「Lara's diary」の例では、QUEST_ITEM2を使用しました。
LaraDiaryFlags(LDF_...)フィールド
-----------------------------------
このフィールドには、1つまたは複数のLDF_フラグを入力して、日誌が表示されたときのバックグラウンドオーディオトラックの動作を設定できます。
IGNOREと入力すると、オーディオトラックに関する変更は行われず、インベントリで発生したようにゲームの前のオーディオトラックが継続されます。
別の方法として、プレイヤーが日誌を見ている間にゲームのオーディオトラックを停止し、別のカスタムBGMを設定する場合は、正しいLDF_フラグを設定する必要があります。
NG_Center[Reference]のLDF_コンスタンツも参照してください。
BackGroundImageIDフィールド
----------------------------
日誌モードでのララの日誌は二次元的なものです。このため、日誌モードで日誌を見やすくするために、イメージを背景に設定する必要があります。
このフィールドには番号を入力します。この番号は、この形式のbmpイメージに対応します。
IMAGE4.bmp
例えば、上記の画像を背景として使用するには、BackGroundImageIDフィールドに値4を入力します。
備考:
-ビットマップイメージは任意のサイズを持つことができ、画面に合わせてサイズが変更されますが、少なくとも640x480ピクセル、または800x600以上のイメージを使用することをお勧めします。
-TRNGがワイドスクリーンモニタを検出すると、バックグラウンドイメージはフルスクリーンにリサイズされませんが、画像が壊れるのをさけるため画面の高さに合わせて拡大されますが、幅はTRNGがサイズ比を維持しようとします。この状況では、日誌画像の側面に2つの短い垂直の列があり、この2つの外部の列には、前のトゥームレイダーの背景が表示されます。
-画像#.bmpにレベルファイルを指定する必要があります。TRLM 2009(Tr Level Manager 1.5)を使用してレベルをインストールする場合は、ビットマップイメージを正しく処理できます。手動インストールの詳細については、異なるフォルダにイメージがあります。
TRLEフォルダ。(つまり、tomb4.exeがあるフォルダ)
TRLE\Pixフォルダ
(これはTREPでも使用され、TRLM2009はPixフォルダにすべてのビットマップイメージ(もちろんLoad.bmpは異なります)を配置します)
-現在TRNGはビットマップ(.bmp)形式の画像のみをサポートしています。とにかく、容量を確保するため画像をjpg形式で挿入することができ、.jpg形式に変換できる小さなユーティリティCONVERTER.exeでPixフォルダに追加することができます。
注:tomb4エンジンは、このユーティリティをPixフォルダ内で見つけたときにconvert.exeを呼び出し、同じPixフォルダ内に.jpgまたは.jpegを呼び出すことができます。
Default PageLayout(PL_...)フィールド
--------------------------------------
このフィールドにPL_フラグを入力して、Diaryのデフォルトとしてに使用されるレイアウトを選択できます。
「レイアウト」とは、同じページに表示するテキスト、タイトル、さらに小さなイメージの配置(位置)を意味します。
上記の要素を異なるレイアウトを設定できます。
あなたは望むレイアウトに沿った背景イメージを作成する必要があります。
詳細は、NG_Center[Reference]のPL_コンスタンツも参照してください。
FirstStringフィールド
----------------------
最初のテキストで日誌を初期化する場合は、このフィールドに最初のテキストを入力します。
このフィールドに入力するテキストは、[ExtraNG]Stringsと同じでなければなりません。
備考:このフィールドに「@MyText.txt」の形式で[ExtraNG]Stringsにテキストを追加し、「MyText.txt」という名前のファイルに有効なテキストを入力してScriptフォルダに保存すると、長いテキストを入力するのが簡単です。この例では、このフィールドに「@MyText.txt」というテキストを入力します。
最初のテキストを入力しない場合は、このフィールドにIGNOREと入力します。
備考:この最初のテキストまたは他のテキストは、フリップエフェクト「Diary. Add(&)NG String to Diary」を使用して日誌に追加します。と同時に1つ以上のページを入力できます。異なるページを区切る#END_PAGE#タグがテキストファイルにあります。
TitleWFontIdフィールドと CommonTextWFontIdフィールド
-----------------------------------------------------
テキストの色とサイズを設定するには、WindowsFontスクリプトコマンドを入力して、DiaryコマンドにそのWindowsFontコマンドの識別子を入れなければなりません。
Diaryコマンドで使用されるWindowsFontコマンドは、そのDiaryコマンドの前に入力する必要があります。TitleWFontIdフィールドには、タイトルのプリファレンスを選択するためのIDを入力します。もちろん、タイトルは一般的なテキストよりも大きなサイズになります。
CommonTextWFontIdフィールドには、共通テキストに使用するIDを入力します。
テキストページで使用するテキストフォーマッタ
--------------------------------------------
Diaryコマンドで入力した設定はデフォルト値として機能しますが、必要に応じて各ページの設定をすべて変更できます。
各ページには、日誌の設定に関するいくつかの変更についてTRNGに通知するために使用される特別なフォーマッタを挿入することができます。
もちろん、これらの設定を行うためのテキストは画面に表示されません。
すべてのテスト設定は、<FORMAT>タグと<END_FORMAT>タグで囲む必要があります。
それぞれのページに<FORMAT>タグを1回だけ入力する必要があります。
とにかく、一部のページにFORMATセクションを入力しないと、そのページには、前のページのFORMAT設定ではなく、Diaryコマンドで入力したデフォルト設定が使用されることに注意してください。
FORMATセクションには、次のテキストタグを1つ以上入力できます。
#TITLE_FONT#=(タイトルのWindowsFontのID)
#TEXT_FONT#=(共通テキストのWindowsFontのID)
#PAGE_LAYOUT#=(PL_..コンスタンツ)
#BG_AUDIO#=(このページのバックグラウンドで再生するオーディオトラックの識別子)
#BG_IMAGE#=(新しい背景として使用する画像の識別子)
#POP_IMAGE#=(このページに表示する画像の識別子)
#TITLE#=(このページの先頭にタイトルとして表示するテキスト)
エンドページ記号の設定方法
--------------------------
日誌のテキストで常に使用する非常に重要なタグは、#END_PAGE#タグです。
同じテキストを複数の異なるページに入力することはできますが、ページの終了時期と新しいページの開始時期を示す必要があります。
この目的に到達するには、テキストのあるポイントに小さなタグフォーマッタを挿入して、そのポイントが最終ページ/新しいページを通知します。
テキストにタグを入力するだけです。
#END_PAGE#
備考:#END_PAGE#を1行に置くことは重要です。つまり、このように#END_PAGE#を配置することはできません。
--------------間違った方法--------
The key is yet in bottomless pit.#END_PAGE#
Now Lara should find the key but to reach the pit she has to search...
----------------------------------
上の位置は間違っています。
#END_PAGE#を配置する正しいモードは次のとおりです。
--------------正しい方法-----------
The key is yet in bottomless pit.
#END_PAGE#
Now Lara should find the key but to reach the pit she has to search...
-----------------------------------
ダイアリーに使用するテキストの例
--------------------------------
日誌に使用する正しいテキストがどのように表示されるべきかを知るために、次のサンプルを見ることができます。
--------日誌に使われるテキストの例---------
<FORMAT>
#TITLE_FONT#=1
#TEXT_FONT#=2
#PAGE_LAYOUT#=PL_WIDE_IMAGE+PL_ADD_INFO_BAR
#BG_IMAGE#=1
#POP_IMAGE#=2
#TITLE#=Mission Organizer
<END_FORMAT>
This is the Mission Organizer of Lara
In this pages you can verify the targets Lara has to reach.
New pages will be adedd while the mission goes on, so remember to come back to read this document also in future, you could get many important informations
#END_PAGE#
<FORMAT>
#TITLE_FONT#=3
#PAGE_LAYOUT#=PL_DOUBLE_PAGE+PL_ADD_INFO_BAR
#BG_IMAGE#=3
#POP_IMAGE#=4
#TITLE#=Beginning...
#BG_AUDIO#=56
#FRAME_IMG#=20,10,400,500
#FRAME_T1#=520,10,400,500
#FRAME_T2#=20,600,400,400
<END_FORMAT>
Lara has to find the man stole the security key.
Last time he has been seen in the dark castel on the hill.
... other text....
Tha man is very dangerous because he has a misterious power...
#END_PAGE#
--------ララの日誌のテキストの例の終わり---
上記は、異なるタグフォーマッタを持つ2ページのテキストダイアリーの短いサンプルです。
上記のテキストを見ると、タグの書式設定の意味を説明することができます。
最初のページには次のものがありました。
<FORMAT>
#TITLE_FONT#=1
#TEXT_FONT#=2
#PAGE_LAYOUT#=PL_WIDE_IMAGE+PL_ADD_INFO_BAR
#BG_IMAGE#=1
#POP_IMAGE#=2
#TITLE#=Mission Organizer
<END_FORMAT>
そして、我々はこのように上記の設定を読むことができます。
「#TITLE_FONT#=1」
スクリプトコマンドに格納されているフォント設定を使用してタイトルを表示する。
「#TEXT_FONT#=2」
スクリプトコマンドに格納されている設定を使用して共通テキストを表示します。
WindowsFont=2,...
「#PAGE_LAYOUT#=PL_WIDE_IMAGE+PL_ADD_INFO_BAR」
最初のページでは、中央の位置にある画面の上部にワイドイメージを持つレイアウトを使用し、情報バーをホストするためのスペースを画面の下部に置きます。(この最初のページに使用される背景イメージで描画されます)
「#BG_IMAGE#=1」
背景画像としてファイルを使用します。
IMAGE1.BMP
「#POP_IMAGE#=2」
画面の上半分にファイルのワイド画像を表示する。
IMAGE2.BMP
「#TITLE#=Mission Organizer」
ワイドなimage2.bmpの上に、タイトルを配置します。
Mission Organizer
それから、テキストが表示されます。
<<
This is the Mission Organizer of Lara
In this pages you can verify the targets Lara has to reach.
New pages will be adedd while the mission goes on, so remember to come back to read this document also in future, you could get many important informations
>>
そして上記のすべては、ララの日誌の最初の紹介ページのものです。
次に#END_PAGE#タグがあり、TRNGはプレイヤーが2番目のページに進むために右向きの矢印を押すのを待ちます。
2番目のページの設定は次のとおりです。
<FORMAT>
#TITLE_FONT#=3
#PAGE_LAYOUT#=PL_DOUBLE_PAGE+PL_ADD_INFO_BAR
#BG_IMAGE#=3
#POP_IMAGE#=4
#TITLE#=Beginning...
#BG_AUDIO#=56
#FRAME_IMG#=20,10,400,500
#FRAME_T1#=520,10,400,500
#FRAME_T2#=20,600,400,400
<END_FORMAT>
意味は次のとおりです。
「#TITLE_FONT#=3」
スクリプトコマンドで設定したフォント(色とサイズ)を使ってタイトルを表示する。
WindowsFont=3
「#PAGE_LAYOUT#=PL_DOUBLE_PAGE+PL_ADD_INFO_BAR」
レイアウトはダブルページになり、左側のページの上部にさらにイメージが表示されます。
情報バーも画面の下部に置いてください。
「#BG_IMAGE#=3」
ファイルに保存されている画像を背景画像として使用
IMAGE3.BMP
「#POP_IMAGE#=4」
左ページの上に画像を表示する。
IMAGE4.BMP
「#TITLE#=Beginning...」
image4.bmpの上にタイトルを表示する。
Beginning...
「#BG_AUDIO#=56」
ファイルに保存されているオーディオトラックを再生します。
TRLE\AUDIO\056.wav
(ただし、ファイルの有効な存在に応じて056.mp3または056.oggになる可能性があります)
「#FRAME_IMG#=20,10,400,500」
このページでさらに小さな画像を表示する位置とサイズを設定します。
日誌レイアウトページのフラグでPL_CUSTOM_LAYOUTを設定すると、この設定は次のページにも反映されますが、他のPL_レイアウトを設定すると、この「#FRAME_IMG#=」の設定はこのページだけに使われます。他のページは、Diaryコマンドで設定したPL_レイアウトを使用しました。
このタグ(20,10,400,500)の値は、マイクロ単位で表され、1=画面サイズの1/1500または1/1000です。
これらの値を計算するには、NG_Center[Tools]にある[Get Screen Frames]ユーティリティを使用します。
「#FRAME_T1#=520,10,400,500」
このページのテキストで使用される1番目のフレームの位置とサイズを設定します。
「1番目の」フレームとは、このページの最初に配置するテキストブロックのフレームのことを意味します。
いくつかのレイアウトでは、2つのテキストフレームを持つことが出来、この場合は「#FRAME_T1#=」タグで2つのテキストフレームのうちの最初を設定し、また、テキストフレームが1つのときは唯一のテキストフレームを持つことができます。
このタグにもマイクロユニットが必要です。詳細は「#FRAME_IMG#=」タグの説明を参照してください。
「#FRAME_T2#=20,600,400,400」
2番目のテキストフレームの位置とサイズを設定します。
あなたのレイアウトが2つのテキストフレームが予想されるときは、#FRAME_T2#=タグを使用して、このページの2番目のテキストブロックの位置を設定します。
このタグにもマイクロユニットが必要です。詳細は「#FRAME_IMG#=」タグの説明を参照してください。
備考:
1)DiaryモードのBGMは、レベルでBASS機能を有効にした場合にのみ機能します。
2)#END_PAGE#を間違って、画面上に表示されるテキストの有効範囲が小さすぎると、プレイヤーは現在のページの行を読めなくなりますが、情報バーに余分なテキストは表示されません。
3)いくつかのタグフォーマッタがない場合、Diaryスクリプトコマンドのデフォルト設定が使われます。
4)前のページでBGMを止め、他のオーディオトラックを開始したくない場合は、以下のタグフォーマッタを入力する必要があります。
#BG_AUDIO#=-1
このようにして、前のオーディオトラックが停止され、さらにDiaryスクリプトコマンドで設定されたデフォルトのオーディオトラックが再生されます。
5)NG_Centerで大きなテキストを提供するには、次のようにして、ファイル参照のみを[ExtraNG]Stringsに設定する必要があります。
45:@FirstPages.txt
次に、NG_Centerは、テキストファイル「FirstPages.txt」に存在するすべてのテキストを「exta ng string number 45」として挿入します。
「FirstPages.txt」は、Script.datをビルドするときに、Scriptフォルダに存在する必要があります。
一方、Script.datとEnglish.datをビルドすると、「FirstPages.txt」というファイルは不要になります。その内容は既にEnglish.dat(または他のlanguage.dat)に含まれているため、レベルファイルに含める必要はありません。
引数
ElevatorIndexフィールド
------------------------
ElevatorアイテムをクリックするとNGLEで黄色のボックスに表示されるインデックス
ClickFloorDistanceフィールド
-----------------------------
このフィールドには、各フロアの高さをクリック数で入力します。
例えば、1つのフロアの高さが12クリックである場合、このフィールドには「12」と入力します。
NumberOfFloorsフィールド
-------------------------
このエレベーターの床の数。例えば、3を入力すると、エレベータが3つの異なる位置(フロア)に移動することを意味します。
ElevatorFlagsフィールド
------------------------
NG_Center[Reference]のEF_フラグも参照してください。
「+」記号を使用して1つまたは複数のフラグを配置するか、または値の合計を直接入力することができます。
ただし、いくつかのフラグは、マルチドアやシングルドアのように、同時に使用するフラグとは互換性がないことを覚えておいてください。
現在、次のフラグがあります。
EF_MULTI_DOORS($0001)
どのフロアの前にもドアを欲しい場合は、このフラグを設定して、IndexFirstDoorに1階のドアのインデックスを設定することができます。
TRNGの管理は非常に簡単です。エレベーターがフロアに着くと、そのフロアのドアが開かれます。
エレベータがフロアを離れると、そのフロアのドアは閉じられます。
マルチドアを使用する場合は、ClickFloorDistanceフィールドで設定した垂直距離と同じ距離にドアを配置することが重要です。なぜなら、異なる距離にドアを配置していると、TRNGはドアを見つけられず、あなたは困ってしまうからです。
素直に各フロアにエレベーターが止まるのと同じ高さに各ドアを置きます。
EF_SINGLE_DOOR($0002)
シングルドアモードを使用している場合は、マルチドアフラグは設定できません。
シングルドアモードでは、エレベータはエレベータケージにリンクされたシングルドアを持ちます。
このドアは、エレベータの動きに応じて上下に移動します。
エレベータがフロアに達すると、ドアが開かれます。ドアが閉じると、エレベータはフロアから離れます。
このフラグを設定した場合、FirstDoorIndexフィールドにエレベーターの近くに置いたドアのインデックスを入力する必要があります。
備考:ng2.wadのANIMATING2スロットにある「偽の」ドアを使用することもできます。
このアニメーションは、シングルドアモードを使用してFirstDoorIndexフィールドにインデックスを設定したドアのように、TRNGによって、水平にスライドして移動します。
このような偽のドアを使用するには理由があります。実際のドアを使用すると、実際には場合によっては(ドアの種類や部屋にリンクしたドアの位置によって異なる)、TRNGはドアが閉じた時、ドアの前に見えない壁を追加します。多くの状況で退屈なので、この問題を避けるために偽のアニメーションドアを使用することができます。
EF_INNER_KEYPAD($0004)
エレベータの内側にフロアを選択するためにキーパッドを挿入する場合は、このフラグを設定し、希望のエレベータの壁にキーパッドを配置するように設定する必要があります。次に、InnerKeyPadIndexフィールドにキーパッドのインデックスを入力します。
SWITCH_TYPE1の実際のキーパッドではなく、ng.wadまたはng2.wadのANIMATING16_MIPにある「偽の」キーパッドを使用することを忘れないでください。
この選択の理由は技術的な問題です。SWITCH_TYPEにはスイッチトリガが必要ですが、エレベータフロアにはダミートリガも配置する必要があります。このため、セクターに特別なトリガ両方を設定することはできません。
このため、(ANIMATING16_MIPの)「偽の」キーパッドの管理は、TRNGによってハードコーディングされたモードで実行されます。
明らかに、キーパッドはSWITCH_TYPE1と同じ様に動作しますが、それを処理する特別なトリガは必要ありません。
EF_MODE_YO_YO($0008)
ヨーヨーモードはちょっと不思議です。エレベーターは無限に上下に動き、フロアで止まりません。
このモードを使用すると、ドアを開いたり閉じたりする時間がないので、ドアを使用することはできません。
ララはエレベーター内でジャンプする必要があります。
ヨーヨーモードの興味深い応用例は、エレベーターがララに触れると、彼女は殺されます。(エレベーターが下に移動している時にその下にララがいる、またはエレベーターが上に移動している時にその上にララがいて、その上には天井がある。)あるいは、ララが壁を登っている時にエレベーターが彼女に触れ(ララは壁に触ることができなくなる)「邪魔」される。
備考:
1)あなたはヨーヨーモードとストップアンドゴーモードをミックスすることはできません。
2)ヨーヨーモードにエレベーターを設定すると、フロア数は常に2(2)になり、フロア間の距離はエレベーターが反転する前にカバーする全移動の高さになります。
EF_MODE_STOP_AND_GO($0010)
ストップアンドゴーモードはヨーヨーモードに似ていますが、この場合、エレベーターは、各フロアに数秒間(ドアが1つなら2秒間、ドアが2つなら3秒間)停止します。
ヨーヨーモードとは違って、ストップアンドゴーモードを使用すると、ドアを(マルチまたはシングル)配置することができ、さまざまなフロア数を設定できます。
また、ストップアンドゴーモードは、すべてのエレベーターのようにララを傷つけるかもしれません。
EF_NONE(0)
フラグを設定したくない場合は、EF_NONEまたはそれに対応する値を入力することができます:0(ゼロ)
FirstDoorIndexフィールド
-------------------------
最初のドアのインデックス(1階のインデックス)。このフィールドには、シングルドアまたはマルチドアのインデックスを配置します。
InnerKeyPadIndexフィールド
---------------------------
エレベーターに挿入したキーパッドのインデックス。内側のキーパッドを使用する場合は、EF_INNER_KEYPADフラグを設定することも忘れないでください。
Speedフィールド
----------------
エレベーターの移動速度を設定します。このフィールドにIGNOREと入力すると、デフォルトの速度は20になります。
スピードについては、この単位がセクターの1/1024であることを忘れないでください。すなわち:1024 = 1セクター、256 = 1クリック。
1秒ごとに30回位置が変更されます。
大きなスピード値を設定しない方がいいです。提案されている最大値は50です。この値を超えると、エレベーターがララに当たったときに衝突計算に問題が発生する可能性があります。
Frame Items arrayフィールド
----------------------------
スピードフィールドの後に、アイテムインデックスのオプションのリストを開始します。
オプションであるため、Speedフィールドの後には何も入力しないこともできます。
とにかく、フレーム配列は多くの目的に役立ちます。
この配列に入力するすべてのアイテムは、エレベーターの動きに応じて上下に移動し、エレベーターケージとリンクさせるというアイデアを与えます。
例えば、エレベーターの動きをより現実的にするために、エレベーターの天井の上にチェーンを置くことができます。
ng2.wadでは、エレベーターのヨーヨーモードやストップアンドゴーモードのサンプルとしてANIMATING5が見つかります。
このチェーンの異なるインスタンスを配置して、エレベータの移動高さをすべてカバーし、Elevatorスクリプトコマンドにチェーンのすべてのインデックスを入力することができます。このようにして、エレベータがゲームで動くと、チェーンも動きます。
Frame Items arrayの別の使用法は、目に見えない衝突パネルをエレベータの周りに配置することです。
ng2.wadのANIMATING1(1x2セクター)とANIMATING1_MIP(1x1セクター:エレベーターケージに小さなドアをセットしたときに使用する)で衝突パネルを見つけることができます。
コリジョンパネルは、エレベーターを野外に配置する場合、つまり周囲に壁がない場合にのみ使用する必要があります。
エレベータを大きな環境の中心に置くと、衝突パネルを置く必要があります。そうしないと、ララはエレベータケージの壁を通過できてしまいます。
ヨーヨーモードとストップアンドゴーモードのサンプルで、衝突パネルの使い方が見えます。
コリジョンパネルを各エレベータの壁に置きます。
エレベーターケージのドアがどこにあるのかを除いて、すべての壁をカバーする必要があります。次に、このコリジョンパネルのすべてのインデックスを Frame Items arrayに入力すると、衝突はエレベーターケージが実際の閉じたボックスであるかのように上下に移動します。
Frame Items arrayには約23個のフレームインデックスを配置できますが、衝突パネル用には最大8個のアイテムしか配置できません。
備考:
1)エレベーターやエレベーター用アイテム(キーパッド、シングルドア、チェーン、衝突パネルなど)をプロジェクトに配置する場合、エレベーターは1階になければなりません。
ゲームで別の階にエレベーターを持たせたい場合は、エレベーターのフリップエフェクトを使用して希望のフロアに移動できますが、プロジェクトでは常にエレベーターが1階にある必要があります。
2)フロアの最大数は10です。フロアを10階に使用すると、10階のフロアはキーパッドに値「0」が入力されると選択されます。
3)異なるElevatorスクリプトコマンドに応じて異なるモードで稼動するエレベーターを、1レベル20台まで持つことができます。
構文:Enemy=Slot, HP(vitality), NEF_flags, TombFlags(TCF_...), EXTRA_flags, Damage1, Damage2, Damage3引数
Slotフィールド
---------------
このコマンドを使用して変更するスロット。(NG_Center[Reference]のSLOT MOVEABLESリストを参照)
HP(活力)フィールド
--------------------
ララの銃撃に対する敵の耐性を設定できます。
例えば、大きな値(1000)を設定すると、それを倒すのは非常に困難になります。小さな値(20)を設定すると、リボルバー2、3発で倒せます。
NEF_flagsフィールド
--------------------
このフィールドは別の設定を選択するNEF_値を受け入れます。(NG_Center[Reference]のMNEMONIC CONSTANTSリストを参照)
現在、NEF_フラグには次の値があります。
NEF_EXPLODE
クリーチャーが倒されるとき、それは爆発する。
NEF_EXPLODE_AFTER
「NEF_EXPLODE」と同じようですが、死のアニメーションが完了した後でのみボディが爆発します。
NEF_HIT_BLOOD
NEF_HIT_DEFAULT
NEF_HIT_FRAGMENTS
NEF_HIT_SMOKE
NEF_HITフラグは、ララの銃撃に対するクリーチャーの動作を設定します。
NEF_HITフラグを1回だけ使用して、血液、断片、または煙を設定することができます。
NEF_HIT_DEFAULTを使用すると、銃撃に対するレスポンスは変更されません。NEF_HIT...フラグを設定しないと、銃撃はレスポンスを持ちません。
NEF_NON_TARGET
敵はララから対象外となり、無害になります。
NEF_NONE
予約済み、使用しないでください。NEF_フラグを設定しない場合は、このフィールドにIGNOREだけを入力する必要があります。
NEF_ONLY_EXPLODE
敵はスケルトンやミイラのようになります。
明らかに普通の弾薬は効果がないが、爆発性の弾薬でそれを破壊することができる。
NEF_SET_AS_CREATURE
実験的。敵とトラップ以外のスロットを使用し、このフラグを使用して敵のように変換することができます。実際、ララはこのオブジェクトを狙い、それを倒すことができます。(理論的にはまだ実験的です)
NEF_SET_AS_MORTAL
このフラグは、(DEMIGOD1のような)不死身の敵を倒せるように変更します。
このフラグをセットすると、敵は普通の弾薬でも倒せます。
TombFlags(TCF_...)フィールド
------------------------------
このフィールドは実験用です。スロット構造のFlagsフィールドに対応します。このフィールドに間違った値を入力すると、多くの問題が発生する可能性があります。
このフィールドをIGNOREに設定し、NEF_フラグのみを使用してオブジェクトの動作を変更することをお勧めします。(他のNEF_フラグは短時間で追加されます)
TCF_...コンスタンツの説明を読んで、このフィールドの既知のフラグを発見してください。
TombFlagsフィールドで実験を行う場合は、よく知られているスロットの値がいくつかあります。
$3A7B=スケルトンに使用
$327B=フォンクロイに使用
$3072=ガイドに使用
$267B=バディ1に使用
$0472=大きなサソリに使用
EXTRA_flagsフィールド
----------------------
ほとんどのスロットでは、このフィールドをIGNOREに設定することができます。このフィールドに特別な値を入力する必要があるスロットがいくつかあります。
各EXTRA_コンスタンツは、特定の1つのスロットに対してのみ機能します。
NG_Center[Reference]のEXTRA_コンスタンツも参照してください。
Damage1/2/3フィールド
----------------------
現在の敵がララに与えるダメージの値を1つ以上入力することはできません。
いくつかのスロットはララにダメージを与えることはありませんが、他のMoveableが違う方法でララにダメージを与えたり、Baddyがララを未知のUZIや剣で傷つける可能性があるため、さまざまなダメージの種類の値を受け入れる理由があります。
敵に1つ、2つ、3つ、または全くダメージがないことを知るには、NG_Center[Reference]のDamage Enemyリストも参照してください。
備考:
1つのダメージ値のみを変更し、他のダメージ値は変更しない場合は、IGNOREのヌル値を使用して「このダメージの種類を変更しない」を指定できます。
例えば、SASに対してグレネードのダメージのみを変更したいが、UZIダメージを変更したくない場合は、次の行を入力することができます。
Enemy=SAS, IGNORE, IGNORE, IGNORE, 0, IGNORE, 1000
上記のコマンドは、HP、NEF_フラグ、TombFlagsを変更しません。
0に設定し、IGNOREの最初のダメージ(UZI)、グレネードのダメージを1000に変更。(ララは火傷で即死)
備考:
-Damage1/2/3フィールドでは、正の値のみを入力してください。負の値を入力することもできますが、その結果は彼女を傷つけるのではなく、ララの活力を再充電することになります。それはおかしなことです。
-範囲外の値を設定した場合、予期せぬダメージの結果が得られる可能性があるためDamage Enemyリストで読み取った範囲の制限に従うことを忘れないでください。(とにかくクラッシュは起こりません)
SLOT Itemフィールド
-----------------------
このフィールドには、設定するアイテムに対応するスロットを識別する値を入力します。
NG_Center[Reference]のSLOT MOVEABLESリストに、スロットアイテムの全リストがあります。
備考:すべてのスロット名が受け入れられるわけではありません。右側に「ITEM」という単語のスロット名のみを使用してください。
Amountフィールド
--------------------
Amountフィールドでは、インベントリ内の特定のアイテムの数量を設定します。
例えば、現在のレベルの開始時にララにメディパックを与えない場合は、次の2つのコマンドを使用できます。
Equipment=BIGMEDI_ITEM, 0
Equipment=SMALLMEDI_ITEM, 0
あなたが使用しているアイテムが武器である場合、Amountフィールドに1つまたは複数のLOAD_フラグを追加して、現在ロードされている弾薬タイプと、すでに武器に搭載されているさらに別のレーザーサイトを設定できます。
詳細情報については、MNEMONIC CONSTANTSのLOAD_コンスタンツの説明を読んでください。
備考:Amountフィールドの値の範囲は、最小値として-1(無限)、最大値127です。127以上を渡すと、予測できない結果を伴う負の数が返されます。
構文:Fmv=NumberFmv, EnableEscapeEnableEscapeの値は0または1です。値1は、「Escキーを使用してムービーのスキップを許可する」という意味です。
FMVファイル名の構文は次のとおりです。
「FMV」+[Number]+[Extension]
例えば、次の名前はFMVファイルでは正しいです。
fmv4.wmv
fmv1.mpg
fmv43.avi
別の言い方をすると、以下の名前を使用するのは間違いです。
fmv04.wmv(「4」の前に意味のない「0」があります)
fmv0.avi(数字は「1」から始まります)
fmv41(拡張子がありません)
fmv5.bik(「.Bik」拡張子はサポートされていません)
スクリプトコマンド「Fmv=」の最初の番号(NumberFmv)は、FMVファイル名内の番号です。
例えば、ファイル名「fmv3.wmv」を使って作業する場合は、次のようなコマンドをスクリプトに書くべきです:Fmv=3.0
備考:
(1)[PCExtensions]セクションで使用するコマンド「FMV=」で希望の拡張子を設定してください。(この「Fmv=」コマンドは同じ名前ですが、混乱しないで、別のスクリプトコマンドです)
(2)実はFmv=コマンドは新しい次世代コマンドではなく、標準のscript.exeにも存在していました。とにかくTRNGを使用するだけで、実際にはFMVをゲームで見ることができます。
(3)TRNGは、以下のフォルダ内のFMVファイルを検索します。
-現在のフォルダ(TRNGも格納されているフォルダ。通常は「TRLE」という名前のフォルダ)
-現在の(TRLE)フォルダに追加された「FMVs」という名前のフォルダ「TRLE\FMVs\... fmv files」
-現在の(TRLE)フォルダに追加された「Store」という名前のフォルダ「TRLE\Store\... fmv files」
FogRange=コマンドでは、Distance Fogの位置と密度を変更できます。
備考:Distance Fogは、VolumetricFXが無効の場合にのみ表示されます。
フリップエフェクト194、227番を使って、ゲーム内でDistance Fogの始点と終点を変更することもできます。
StartLimitDistanceFogフィールド
--------------------------------
StartLimitDistanceFogの値は、フォグが視認できるセクターの数です。これはDistance Fogにのみ使用されます。つまり、VolumetricFXが無効になっているときの霧です。
Distance Fog効果を高めるには、このフィールドに負の数を入力する必要があります。より大きい値でフォグ濃度は強くなります。
備考:上記の説明にもかかわらず、この方法では、レベルの透明なテクスチャ(水のような)やオブジェクト(透明または輝きのあるテクスチャ)では、霧の色の異常な強さもまた発生します。
場合によっては、高密度でDistance Fogをしたいときは、EndLimitDistanceFogフィールドを減らすほうがよいでしょう。この場合、StartLimitDistanceFogフィールドを0にして、負の値を避けることができます。
EndLimitDistanceFogフィールド
------------------------------
この値は通常、WorldFarView(またはLevelFarView)と同じ値で設定されます。非常に深いDistance Fogが必要な場合は、この値を小さくします。この値は、ララが見えるセクターの数になります。
このように、Distance Fogの式は(およそ)働きます。
ララからのStartLimitDistanceFogセクターからFog効果を開始します。(実際にはララカメラから。)このFog効果は、EndLimitDistanceFogセクターの距離まで密度100%に達するまで密度を上げます。
したがって、非常に大きなEndLimitDistanceFog値を設定した場合、霧は非常に明るく、遠景も見ることができます。一方、EndLimitDistanceFogで小さい値を設定すると、近景しか見ることができません。
HelpフォルダのFog_Distance.htmも参照してください。
構文:ForceBumpMapping=ENABLED/DISABLED備考:
(1)ForceVolumetricFXとは異なり、このコマンドは[Options]セクションでのみ動作します。これは、同時にすべてのレベルに影響するためです。
備考:
(1)NGLEの新しい効果を使って、ゲーム内で動的にVolumetricFXを有効または無効にすることもできます。
このトリックは、霧の電球を「スイッチオフ」し、爆発の後にガスや煙の効果を作りたいときに、それらを「スイッチオン」するのに面白いでしょう。
(2)現在のレベルでForceVolumetricFXコマンドが使用されていない場合、プレイヤーがtomb4セットアップウィンドウで設定した設定が使用されます。
引数
IdGlobalTriggerフィールド
--------------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
これは、フリップエフェクトを使ってGlobalTriggerを有効/無効にした時、そのGlobalTriggerを識別するためだけに使用されます。
注:IdGlobalTriggerフィールドの有効範囲は1から4999です。
Flags Global Trigger(FGT_...)フィールド
-----------------------------------------
GlobalTriggerコマンドの動作についてオプションを設定できます。
現在のところ、FGT_フラグしかありません。
FGT_SINGLE_SHOT:このフラグは、現在のGlobalTriggerを1回実行するように設定します。GlobalTriggerが実行されると、それ以降の実行を避けるために無効になります。
備考:FGT_フラグを設定していない場合は、このフィールドにIGNOREと入力します。
Global Trigger(GT_..)フィールド
----------------------------------
希望のGlobalTriggerを選択するには、GT_接頭辞で始まるコンスタンツを入力します。
NG_Center[Reference]のGT_値も参照してください。
現在、以下のGlobalTriggerが利用可能です。
GT_ENEMY_KILLED:パラメータフィールドでモニタするためのMoveableインデックスを指定できます。指定したMoveableが倒されると、GlobalTriggerが開始されます。
備考:
*NGLEプログラムで、そのアイテムを1回クリックすると、インデックスが黄色のボックスに表示されます。
*理論上は、クリーチャーが死亡したときにローカル(共通)スイッチトリガでも、トリガの起動を得ることができます。スイッチトリガで敵をトリガし、そのトリガにドアや敵を有効にするために共通のトリガを追加した場合、敵が死ぬとトリガがアクティブになります。とにかく、この方法を使う上で問題となるのは、クリーチャーが死ぬときにスイッチトリガを持ったセクターにいなければならないので、広い面積をトリガで覆わなければならないということです。GlobalTriggerGT_ENEMY_KILLEDはそれとは違って、トリガは敵の位置とは無関係に起動されます。
GT_SCREEN_TIMER_REACHED:スクリーンタイマーが指定された秒数に達した時に、GlobalTriggerを開始できます。Parameterという名前の次のフィールドに秒数を指定する必要があります。
例えば、タイマー画面が240秒(4分)に達したときにトリガを開始するには、「GlobalTrigger=1、IGNORE、GT_SCREEN_TIMER_REACHED、240、...」と入力します。
GT_USED_INVENTORY_ITEM:このGlobalTriggerを使用すると、プレイヤーがインベントリから特定のアイテムを選択したときを検出できます。Parameterという名前の次のフィールドにスロットIDを指定する必要があります。
例えば、プレイヤーがスロットID=253のQUEST_ITEM2を選択したときにGlobalTriggerを有効にするには、「GlobalTrigger=1、IGNORE、GT_USED_INVENTORY_ITEM、253、...」と入力します。
備考:
*GlobalTriggerが使用されているときにインベントリから選択したアイテムを削除したい場合は、TriggerGroupを挿入して特定のフリップエフェクト「Inventory-Item. Remove <&>inventory-item from inventory」を挿入する必要があります。
あなたがこのフリップエフェクトを使用しない場合、選択されたアイテムはインベントリに残ります。
*QUEST_ITEM1は既にDetectorに使用されているため、GlobalTriggerにはQUEST_ITEM1を使用しないでください。
備考:他にも多くのGT_GlobalTrigger値があります。NG_Center[Reference]でそれらの説明を見つけることができます。
Parameterフィールド
--------------------
このフィールドに入力する値は、前のフィールド「GT_GlobalTrigger」で選択されたGlobalTriggerのタイプによって異なります。
Parameterフィールドに入力する情報については特定のGlobalTriggerの説明を読んでください。
IdConditionTriggerGroupフィールド
----------------------------------
このフィールドはオプションです。
デフォルトでは、グローバル条件を設定するためのGT_GlobalTriggerだけです。最後のIdPerformTriggerGroupを実行する場合は、条件がtrueの時のみ、条件付きTriggerGroupスクリプトコマンドを作成し、他の条件を実行するための条件付きTriggerGroupのIDをこのフィールドに設定します。
条件付きTriggerGroupを使用すると、条件付きTriggerGroupがtrueで、最終条件がtrueの場合のみGlobalTriggerで設定されたイベントが発生します。
追加の条件を設定したくない場合は、このフィールドにIGNOREと入力します。
IdPerformTriggerGroupフィールド
--------------------------------
このフィールドには、GT_triggerのグローバル条件がtrueとなったときに実行されるTriggerGroupコマンドのID(最初の値)を入力します。
理論上TriggerGroupの実行ではコンディショントリガも配置できますが、とにかくこれらのさらなるコンディショントリガはGT_Globalトリガがtrueである場合にのみ検証されます。
IdOnFalseTriggerGroupフィールド
--------------------------------
グローバル条件がfalseのときにTriggerGroupを実行したい場合は、このフィールドにfalse条件で実行するTriggerGroupのIDを入力します。
IdImageCommandフィールド
-------------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
IDの有効範囲は1から1999です。
IdImageFileフィールド
----------------------
このフィールドには、表示するイメージの番号を入力します。
この番号(またはID)は、「IMAGE<ID>.BMP」の形式でイメージを参照します。
例えば、このフィールドに5と入力すると、次のイメージを表示することになります。
IMAGE5.bmp
TRNGはTRLE\Pixフォルダ内の画像を探し、Pixフォルダにない場合、TRLEフォルダ、つまりtomb4.exeと同じフォルダ内の画像も探します。
備考:TRLM2009プログラムは、TRLE\Pixフォルダ内のすべてのimageN.bmpイメージをコピーします。
ImageFlags(IF_...)フィールド
------------------------------
いくつかのIF_フラグを指定して、イメージの機能を設定したり、それを表示するモードを指定することができます。
このフィールドにIGNOREと入力すると、このコマンドの次のフィールドに設定した位置とサイズを無視して、ゲーム内でイメージが表示されます。
EffectTimeフィールド
---------------------
このフィールドは、この画像のために選択した別の効果のためにのみ機能します。
イメージに効果を適用しない場合、このフィールドは無視されます。
時間は、tomb4エンジンの内部時間であるティックフレーム単位で入力する必要があります。
1つのティックフレームの値は1/30秒です。
現在の画像に効果を設定すると、EffectTimeは効果を完了するのに必要なフレームの量をTRNGに通知します。
小さな値を入力すると効果が速く表示され、大きい値をEffectTimeとして入力すると効果がゆっくりと表示されます。
このフィールドにIGNOREと入力すると、デフォルト値は30ティック、つまり効果を完了するためには1秒です。
AudioTrackフィールド
---------------------
画像の表示開始時にオーディオトラックを実行したい場合は、このフィールドに0から255の数字を入力して、Audioフォルダの希望するオーディオトラックを選択することができます。
例えば、35と入力すると035.wavが鳴ります。
XPositionフィールドとYPositionフィールド
------------------------------------------
これらの2つのフィールドには、座標を入力して、トゥームレイダーのスクリーンを考慮し、画像を配置します。
位置の使用単位(および次のフィールドのサイズ)がピクセル単位でないことを理解することは重要です。
その理由は、現在のトゥームレイダーの解像度を事前に把握することが難しいためです。
レベル、Script.datを作成しても、そのゲームが640x480スクリーンや1024x768(またはその他)で再生されるかどうかは分かりません。そのため、画像の座標またはそのサイズをピクセルで設定すると多くの問題が発生します。
この理由から、画像の座標と大きさは比例単位で与えられます:「マイクロ単位」(1/1000の画面)
例えば、ゲーム画面の中心を特定する場合、ゲーム画面の幅と高さが1000x1000マイクロ単位だと、XPosition=500とYPosition=500になります。
この方法は複雑に思えるかもしれませんが、解像度の違う画面で希望の位置とサイズでイメージを配置する最後の方法です。
SizeXおよびSizeYフィールド
---------------------------
この2つのフィールドでは、ゲーム画面に描画された画像のサイズを設定します。
値はマイクロ単位で表示されます。(XPosition、YPositionフィールドの記述を参照)
画面の高さ(およそYサイズ)がマイクロ単位(1/1000)で計算されるため、画像の現在の比率を設定するのに問題がある可能性があります。
例えば、元の画像が100x100ピクセル、つまり完全な正方形である場合、目的のサイズを200x200マイクロ単位に設定することはできません。なぜならScreenYで計算されたサイズy 200がScreenXで計算されたサイズよりも大きくなければならず、つまり、通常、画面の幅は高さの1.3倍だからです。
この問題を解決するには、NG_Center[Tools]で新しいユーティリティGet Screen Framesを使用することができます。
このユーティリティを使えば、マウスを使って、トゥームレイダー画面上で理想的な矩形領域を選択し、XPos、YPos、SizeX、SizeYの4つの値をマイクロ単位で返信することができます。
引数
IdImportフィールド
-------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
このIDは、新しいフリップエフェクトを使用してインポートファイルを使用する場合に重要です。例えば、メモリモードで「wagner.mp3」のようなファイルをインポートすると、フリップエフェクト「Sound(CD)Play <&> imported file ...」を使用してこのオーディオファイルを再生することができます。そして「imported file」として IDImport番号を選択する必要があります。
IDの有効範囲は1から1999です。
PathFileフィールド
-------------------
インポートするファイルを見つけるパス。
「c:\trle\audio\003.wav」のような絶対パスは使用できません。
パスは、常に現在のTRLEフォルダをルートとして使用して、相対パスでなければなりません。
例えば、AudioフォルダにあるWAVファイル003.wavをインポートする場合は、次のようなパスを入力します。
Audio\003.wav
他の例では、TRLEフォルダのload.bmpファイルをインポートする場合は、次のようなパスを入力します。
load.bmp
備考:一時モード(IMPORT_TEMPORARY値)でファイルをインポートすると、ファイルはtomb4.exeの最初の起動時にエクスポート(抽出)され、ファイルはScript.txtに入力した相対パスに書き込まれます。
この事は、デフォルトにはない名前のサブフォルダにファイルを配置したときに重要です。
例えば、あなたのTRLE(レベル開発に使用)上にサブフォルダ「Mp3」を作成し、このようにしてこのサブフォルダからファイルをインポートするとします。
ImportFile=1, mp3\bach.mp3, FTYPE_SOUND, IMPORT_TEMPORARY
上記のコマンドはインポートフェーズで動作しますが、エラーになります。なぜなら、TRNGがファイルをエクスポートし、抽出され、サブフォルダ「mp3」を作成し、ファイル名「bach.mp3」をコピーします。
問題は、TRNGがAudioフォルダと異なるフォルダからオーディオトラックを読み取ることができないことです。
この問題を回避するには、2つの方法があります。
*他の一般的なADPCM WAVファイルと一緒に、あなたのサウンドファイルを、Audioフォルダにインポートしてください。
または...
*メモリインポートを使用してファイルをインポートします。
実際、IMPORT_MEMORYモードでファイルをインポートすると、このファイルは決してエクスポートされないので、さほどフォルダ名は重要ではありません。メモリにインポートされたファイルはバイナリイメージにロードされ、メモリから直接再生されます。
この場合、パス名はインポートフェーズでのみ使用されますが、目的のコンピュータでゲームをプレイするときにはその名前は無視されます。
FileType(FTYPE_...)フィールド
-------------------------------
TRNGにこのファイルの性質を知らせるためにFTYPE_値を入力することができます。
現在は2つの値しかありませんが、将来は他の値が追加されるでしょう。
NG_Center[Reference]のFTYPE_値も参照してください。
ImportType(IMPORT_...)フィールド
----------------------------------
IMPORT_MEMORYまたはIMPORT_TEMPORARYの2つのインポートモードを選択できます。
IMPORT_MEMORY
-------------
この場合、ファイルはゲームの開始時にメモリに直接ロードされます。
利点は、一般的なディスクファイルをロードするためにハードディスクにアクセスするために必要な遅延を避けて、このファイルを高速に開始することです。
CDトラック(104.wavなど)をディスクから再生したときと、メモリから再生したときの違いに現れます。
ディスクからファイルを読み込むと、ゲームは短い時間停止され、メモリからの読み込む(Script.datからの事前にロードして開始)と、オーディオトラックがスローダウンなしで即座に開始されます。
注:このフラグに関する情報は、NG_Center[Reference]のMNEMONIC CONSTANTSリストにある説明を参照してください。
IMPORT_TEMPORARY
----------------
一時モードでは、ファイルはScript.datに格納されますが、ゲームの開始時にディスク上に展開されます。
これは、伝統的な方法でゲームが使用されることを意味します。:ディスクから読み込む。
一時モードでインポートされたファイルを使用する利点(特定の分離ファイルを囲むのではなく)は、このようにしてプログラムTRLMまたは一部の初心者プレイヤーをインストール段階で混乱させないようにします。
.oggのようなファイルはTRLMからは無視され、レベルエディタの世界の初心者からもです。
MP3ファイルについてはTRLMから処理されますが、結果的にはWAV形式で変換され、これはあなたが望んでいない工程です。
したがって、サウンドファイルをMP3形式で直接再生したい場合は、TRLMのWAVの自動変換を避け、このMP3ファイルをインポートし、TRLMはインストール段階でそれを見ることはできませんが、ゲーム開始時に、TRNGはそれをエクスポートし再生します。
注:このフラグに関する情報は、NG_Center[Reference]のMNEMONIC CONSTANTSリストにある説明を参照してください。
構文:ItemGroup=IdGroup, FirstIndexItem, Other indices for itemsItemGroup内のアイテムのリストを設定すると、ItemGroupによって参照されるすべてのオブジェクトに対して、一つのトリガでいくつかの操作を実行できます。(フリップエフェクトのDescription:「ItemGroup。....」で始まります)
ItemGroupを使用する利点は2つです。
1)一つのアイテムのように多くのアイテムを使用することができます。例えば、1回のトリガですべてのアイテムを同時に移動(または有効化、回転、または非表示)することができます。
2)ドアや敵とのいくつかの特定の操作を起動するためにシーケンスを実行する。
「ItemGroup」で始まる具体的なフリップエフェクトトリガを参照してください。
IdGroupフィールド
---------------------
この最初のフィールドはオブジェクトインデックスではなく、このItemGroupスクリプトコマンドの検索に使用されるIDで、トリガを実行するときに使用します。[Level]セクションの最初のItemGroupは「1」で始まり、IDは2,3,4などに増やす必要があります。
IDの有効範囲は1から999です。
FirstIndexItem、Other indices for items
---------------------------------------
IDフィールドの後に、NGLEで読み込まれた1つまたは複数のMoveableインデックスを入力します。
各ItemGroupに最大83のインデックスを入力できます。
備考:Staticアイテムのインデックスを入力するときは、インデックスを負の数で入力する必要があります。
構文:KeyPad=AtStartAnimation, FrameStartPopUp, AtEndAnimation, ClickSoundParameters:
AtStartAnimationフィールド
---------------------------
「Ctrl」キーでララがキーパッドを操作したときに表示するアニメーション番号を指示します。
アニメーションを表示させたくない場合は、このフィールドにIGNOREと入力します。
備考:デフォルト値は197
FrameStartPopUpフィールド
--------------------------
上記のAtStartAnimationフィールドに有効な値を設定した場合にのみ使用されます。この場合、スタートアニメーションがこのフレーム番号に達すると、キーパッドイメージが表示されます。例えば、このフィールドに20と入力すると、アニメーションが開始されてから20フレームでキーパッドイメージが表示されます。
備考:
*AtStartAnimationを設定しない場合、このフィールドは無視されます。
*有効なAtStartAnimation値を設定した場合、FrameStartPopUpフィールドに有効な値を設定する必要があります。このフィールドにIGNOREを設定することはできません。
AtEndAnimationフィールド
-------------------------
キーパッドが閉じられたときに表示されるアニメーション番号。
備考:
*最後のアニメーションを表示していない場合は、このフィールドにIGNOREと入力します。
*AtEndAnimationは、プレイヤーがEnter/[*]キーでキーパッドから消えた場合にのみ表示されます。「Esc」キーを使用して終了すると、最後のアニメーションは実行されません。
ClickSoundフィールド
---------------------
プレイヤーがキーパッドのいくつかのキーにヒットしたときに再生するサウンドエフェクトの番号。
備考:
*音を鳴らさない場合は、このフィールドにIGNOREと入力してください。
*NG_Center[Reference]でサウンドエフェクトのリストを見ることができます。
有効範囲は1から127です。
備考:
(1)このコマンドで設定したNumberOfBlocksは、[Options]セクションでWorldFarViewコマンドで設定した値と同じかそれ以下でなければなりません。それ以外の場合は無視されます。
(2)上の注釈のため、[Options]セクションにWordFarViewコマンドで大きな数字を挿入し、ゲームの速度に合わせてLevelFarViewコマンドを使って異なるレベルごとに小さな値を設定する必要があります。
遠方の距離だけでなく、ゲームの速度は(全体的な)メッシュの数、透明なテクスチャ、およびレベルに存在するMoveableの数にも影響を受けることを思い出してください。
このため、広いスペースと多くのMoveable/メッシュ/透明テクスチャを減らして、レベル速度を向上させることができますが、TRNGがより簡単にシーンを描画できる他のレベルでは、問題なくより大きなLevelFarViewを設定できます。
Diagnostic=ENABLED
[Option]セクションにあります。
LogItemは、ララの場合と同じ情報を画面に表示することができますが、この場合は別の情報が表示されます。このコマンドの主な目的は、TestPositionコマンドを入力して独自のカスタムアニメーションを起動するための情報を取得することです。
FlagsLogItem(FLI_...)フィールド
---------------------------------
このフィールドには、1つまたは複数のFLI_フラグを入力できます。
NG_Center[Reference]のFLI_フラグも参照してください。
備考:フラグを設定しない場合は、このフィールドにIGNOREと入力します。
IndexOfItemフィールド
----------------------
このフィールドには、監視するMoveableインデックスを入力します。
マップでアイテムを選択し、黄色のフレームの中にある数字がインデックスです。
引数
InFrontRoomフィールド
----------------------
鏡の前の部屋番号。これはララが入り、動きまわれる本当の部屋です。
HiddenRoomフィールド
---------------------
鏡の後ろの部屋番号。ララは入ることができません。
MirrorTypeフィールド
---------------------
ミラータイプを設定するには、MIR_値を指定します。
NG_Center[Reference]のMIR_値も参照してください。
現在、次の値を使用できます。
MIR_WEST_WALL
西の壁は、以前の鏡で使われていた設定です。
西は、NGLEではララの位置からの鏡の方を向いた方角です。
MIR_FLOOR
鏡はInFrontRoomの床上にあります。
MIR_CEILING
鏡はInFrontRoomの天井にあります。
備考:天井の鏡を使用したい場合は、部屋を非常に低くすることをお勧めします。さもなければ、ララは鏡に映っているララを見ることができません。
MIR_INVERSE_WEST
鏡は、MIR_WEST_WALLのようにInFrontRoomの西側にありますが、トゥームレイダー1の古いレベルのように逆ミラーの中のララと他のオブジェクトは反転します。
Animating array(+ FMIR_flags)フィールド
-------------------------------------------
このフィールドでは、InFrontRoomに存在するアニメーションのインデックスを1つ以上設定することができます。
この配列を使用すると、鏡の種類に応じてミラーイメージをシミュレートするために、HiddenRoomでTRNGが正しい位置と向きにすべてのアニメーションを置き換えます。
1つ以上のFMIR_フラグをアニメーションインデックスに追加できます。
これらのフラグは、回転軸がオブジェクトの中心にないときに反射または座標を調整することを可能にします。
詳細情報については、NG_Center[Reference]のFMIR_コンスタンツも参照してください。
注:あなたは一組のアニメーションを配置する必要があります:メインのアニメーションをInFrontRoomで希望の位置に配置し、このアニメーションのクローンはHiddenRoomに配置します。
クローンアニメーションを正しい位置に配置する必要はありませんが、TRNGが各メインアニメーションに適したクローンを見つけることを可能にするために、同じ行(ミラータイプに従って垂直または水平)に配置すると便利です。
垂直ミラーを使用している場合は、あなたの望む向きにメインアニメーションをInFrontRoomに配置する必要があります。
次に、同じタイプの別のアニメーションをHiddenRoomに配置する必要があります。この状況では、メインのアニメーションと同じ垂直線(つまり、2次元のビジュアルで同じセクター)でアニメーションを配置することが重要です。これらの設定は実行時にTRNGによって設定されるため、クローンのアニメーションの高さまたはその向きは重要ではありません。
備考:
*理論的には、Animating arrayに他のMoveableのインデックスも入力できます。この状況では、Moveableは動的に更新されます。
とにかく敵のようなMoveableを動かすには、HiddenRoomに置く必要がありますが、トリガはInFrontの部屋に置かれます。部屋の前で敵を有効にするトリガもあります。
*InFrontRoomとHiddenRoomフィールドに入力する部屋番号はNGLEの部屋リストにあります。とにかくスクエアの数字が異なる場合に常に小さな数字を選択することを思い出してください。
例えば、このテキストをHiddenRoom(またはInFrontRoom)に読み込んだ場合は、次のようになります。
Mirror Hall(34:30)
上記の場合、実際の部屋番号は「30」で、MirrorEffectコマンドにこの値を入力する必要があります。
構文:MultEnvCondition=IdMultCondition, ENV_condition, DistanceForEnv, Extra field, array of tripled of {ENV_Condition, DistanceForEnv, Extra field}IdMultConditionフィールド
--------------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
AnimationコマンドのDistance for Envフィールドに同じ番号を使用してAnimationコマンドとリンクします。
注:IdMultConditionフィールドの有効範囲は1から2559。レベルのトリガから直接呼び出すと、最大有効IDは1023です。
ENV_Conditionフィールド
------------------------
このフィールドはAnimationコマンドのENV_Environmentフィールドと同じように機能します。
このフィールドには、ENV_Conditionの値+(オプション)いくつかのENV_POS_フラグを入力します。
詳細については、AnimationコマンドのENV_Environmentの説明を参照してください。
DistanceForEnvフィールド
-------------------------
このフィールドは、AnimationコマンドのDistance for Envフィールドと同じように機能します。
このフィールドには、現在の(前の)ENV_Conditionに関する距離を設定する値を入力します。
詳細については、AnimationコマンドのDistance for Envの説明を参照してください。
{ENV_Condition、DistanceForEnv、Extra}フィールドのトリプルの配列
------------------------------------------------------------------
フィールドに「ENV Condition」、「DistanceForEnv」、「Extra」の3つの配列を最大125個まで入力できます。
例
ENV_CEILING_HEIGHTの高さ(距離ENV)=$300(3クリック)+他の条件:ENV_HOLE_FLOOR_AT_LEFTの深さ(距離ENV)=$400(4クリック)のように、Animationコマンドに2つのEnv Conditionを設定したい場合は、MultEnvConditionコマンドの一行目をこのように書きます。
MultEnvCondition=1,ENV_CEILING_HEIGHT,$300,IGNORE,ENV_HOLE_FLOOR_AT_LEFT,$400,IGNORE
上記のMultEnvCondition(1)のIDと ENV_ConditionをAnimationコマンドで参照するにはENV_MULT_CONDITIONと入力します。
例えば:
Animation=447,KEY1_LEFT,IGNORE,IGNORE,ENV_MULT_CONDITION,1,IGNORE,-445,-448
構文:NewSoundEngine=ENABLED/DISABLEDENABLED/DISABLEDフィールド
---------------------------
デフォルトでは、新しいサウンドエンジンが有効になっています。つまり、Script.txtにNewSoundEngineコマンドを入力しなくても、新しいサウンドエンジンが使用されます。
そのため、このコマンドは、サウンドエンジンを無効にする必要がある場合にのみ使用してください。
NewSoundEngine=DISABLED
備考:
*新しいサウンドエンジンを使用するときは、サウンドフォーマットを変更する必要はありません。bass.dllは、Audioフォルダにある一般的なADPCM WAVファイルをサポートすることができます。
*TRNGはビルドインbass.dllライブラリを使用し、別の違ったバージョン番号であるbass.dllライブラリとの競合を引き起こす可能性があるため、レベルファイルにbass.dllライブラリを追加することはお勧めできません。
(tomb_nextgeneration.dllで使用されるbass.dllはバージョン2.4.0.1です。このバージョンのbass.dllを使用する方がよいでしょう)
tomb4を起動すると、内部のbass.dllライブラリが即座に抽出されます。
Parameters
----------
IdOrganizerフィールド
----------------------
現在のOrganizerのIDを指定します。この番号は、Organizerを有効または無効にするためのフリップエフェクトを使用するOrganizerコマンドを特定するために使用されます。
そのレベルのセクションでは最初のOrganizerに1を割り当て、2番目のOrganizerには2を割り当てる必要があります。
注:IdOrganizerフィールドの有効範囲は1から4999です。
Flags Organizer(FO_..)フィールド
-----------------------------------
このフィールドには、1つ以上のFO_コンスタンツを追加してOrganizerコマンドの動作を制御することができます。
NG_Center[Reference]のFO_コンスタンツも参照してください。
Parameterフィールド
--------------------
現在使用されていません。将来のバージョンで使用することができます。
このフィールドにIGNOREと入力することができます。
Couples of Time + IdTriggerGroup
--------------------------------
Parameterフィールドの後には、格納するフィールドの2つ以上の組み合わせを使用できます。
始める前に待つ時間...
TriggerGroup
これらの予定情報を想像することができます。
この時間に、これをして。
他の時間に、あれをして...
しかし、この場合は秒を使用しますが、とにかく方法は同じです。
例えば、次のOrganizerコマンドを作成したとします。
Organizer=1, IGNORE, IGNORE, 6, 1, 5, 2, 4, 3
上記のデータは次のように読んでください。
Organizerの有効化から6秒後に、TriggerGroup 1が実行されます。
他の5秒後に、TriggerGroup 2が実行されます。
他の4秒後に、TriggerGroup 3が実行されます。
テーブルを使用してこれらのデータをよりよく理解できます。
Time TriggerGroup ----------------------- 6 TriggerGroup=1 5 TriggerGroup=2 4 TriggerGroup=3 -----------------------
備考:時間フィールドには最大65535、つまり約18時間の番号を入力できます。
構文:Parameters=Type of parameters(PARAM_...), IdParameterList, parameter arrayType of parameters(PARAM_...)フィールド
------------------------------------------
このフィールドには、PARAM_コンスタンツを入力して、このParametersコマンドのトリガを指定します。
のリストは、NG_Center[Reference]のPARAM_コンスタンツも参照してください。
IdParameterListフィールド
--------------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
備考:異なるPARAM_コンスタンツで2つのParametersコマンドを使用する場合、同じIdParameterListを使用できます。同じPARAM_コンスタンツを持つParametersに対してのみ異なるIDを設定する必要があります。
Parameter arrayフィールド
--------------------------
この(3番目の)Parametersから、トリガによって使用されるParametersが開始されます。
これらのParametersの数と意味は、PARAM_タイプに従って変化します。
NG_Center[Reference]のPARAM_コンスタンツも参照してください。
PreserveInventory=ENABLED
構文:Rain=RAIN_...constant引数
RAIN_ConstantフィールドRAIN_SINGLE_ROOMS
この設定では、特定の部屋にのみ雨が表示されます。
RAIN_ALL_OUTSIDE
NGLEの各部屋の「Rain」ボタンを設定せずにすべての外の部屋に雨を降らせたい場合は、RAIN_ALL_OUTSIDE設定を使用する必要があります。
備考:
(1)RAIN_ALL_OUTSIDEを使って雨の強さを変更するトリックを使うには、ララが訪れる部屋の「Rain」ボタンを有効にし、強度フィールドに設定するだけです(Room Typeボタンの水/雨/雪...の右側)強度(1-4)
これで、その部屋は選んだ強度になります。
とにかく他の「雨」の部屋を別の強度で設定すると、ララがその部屋に入ると雨の強さが設定どおりに変わります。
(2)現在のレベルで雨の部屋を使用しない場合は、雨の部屋を見つける計算を避けるようTRNGに知らせるため「Rain=RAIN_DISABLED」コマンドを使用する(またはRainコマンドを入力しない)方が良いでしょう。
構文:SavegamePanel=SavegamePanelFlags(SPF_...), BackGroundImageID, NumberOfSave, NumberOfVisibleSave, SavegamePanelLayout(SPL_...), InfoFormatString, IdListWindowsFont, IdInfoWindowsFont, InTitleWindowsFont上記の理由から、この新しいセーブゲームパネルを使用してカスタマイズして、スクリーンショットを保存できるようにすることを強くお勧めします。次の行を追加してこの目的を実現することができます。
Customize=CUST_INNER_SCREENSHOT, QSF_SIZE_320x240+QSF_TRUE_COLOR
備考:QSF_フラグは異なる可能性があります。唯一の重要な事実は、[Level]セクションにCustomize=CUST_INNER_SCREENSHOTコマンドを追加して、各セーブデータにスクリーンショットイメージを作成できるようにすることです。Savegame_panel.zipデモをテストして勉強して、この新しいTRNG機能の正しい使い方を理解することをお勧めします。デモのサンプルはOfficial Next Generation webpageでご覧いただけます。
SavegamePanelFlags(SPF_...)フィールド
---------------------------------------
このフィールドには、2つ以上のSPF_フラグを追加して、セーブゲームパネルの機能をカスタマイズすることができます。
フラグを必要としない場合は、このフィールドにIGNOREと入力します。
NG_Center[Reference]のSPF_フラグも参照してください。
BackGroundImageIDフィールド
----------------------------
常にセーブゲームパネルの背景画像を提供する必要があります。
このフィールドには、Pixフォルダに存在するイメージの番号を入力します。
例えば、背景画像として「Image8.bmp」ファイルを使用する場合は、このフィールドに値8を入力する必要があります。
NumberOfSaveフィールド
-----------------------
このフィールドには、セーブゲームパネルが処理できるセーブデータの数を入力します。
例えば、以前のtomb4の場合、この数値は15です。(savegame.0からsavegame.14まで)
設定できる最大数は100です。この場合、TRLEフォルダには、savegame.0からsavegame.99まで100個までのセーブデータがあります。
あまりに多くのセーブデータを選択しないことをお勧めします。なぜなら、プレイヤーは、あまりにも多くのセーブデータでは検索が難しくなる可能性があるからです。
上記以外の理由で、以前のTRLMのユーザーに問題を引き起こす可能性があります。(ただし、TRLM2009は任意の数のセーブデータを管理できるはずです)
妥当な値に30を設定することもできますが、セーブデータの標準数を指定することもできます。この場合、このフィールドにIGNOREと入力します。
NumberOfVisibleSaveフィールド
------------------------------
このフィールドは理解しにくいようです。
表示されるセーブデータの数は、前のフィールド「NumberOfSave」とは異なります。
「NumberOfSave」フィールドに大量のセーブデータを設定すると、同時にこの長いセーブデータのリストを画面に表示することができない(可能性が高い)可能性があります。この問題を解決するために、TRNGは画面上に短い数のセーブデータを表示し、リストのスクロールを許可して、セーブデータの別の「ページ」を表示することができます。
NumberOfVisibleSaveフィールドは、スクリーン上に表示されているページごとに表示されるセーブデータの数です。
例えば、古いセーブゲームパネルには15のセーブデータしか表示されませんでした。例えば、TRNG起動時に50個のセーブデータ行をすべて同じ画面に表示することはできないので、15個のセーブデータを表示します。次に、プレイヤーがDOWNキーを押すと、15のセーブデータ(savegame.15からsavegame.29へ)の次のグループが表示され、次に進みます。
備考:現実には、特定のSPF_フラグを設定した場合に限り、この方法でスクロールします。そうしないと、リストを一度にゆっくりスクロールします。
備考:このフィールドにIGNOREと入力すると、同時にすべての「NumberOfSave」が画面に表示されます。つまり、「NumberOfVisibleSave」フィールドと「NumberOfSave」フィールドは同じ値になります。
これは、まずセーブゲームパネルのフォント、イメージ、レイアウトを設定し、一度にどれくらいのセーブデータを画面に表示できるか試して、その番号を「NumberOfVisibleSave」フィールドに設定します。
警告:NumberOfVisibleSaveフィールドに正しい数値を設定しないと、TRNGは実際に必要なすべてのセーブデータが画面に収まるかどうかを検証しないため、大きな混乱を招きます。
SavegamePanelLayout(SPL_...)フィールド
-----------------------------------------
単一のSPL_値を入力すると、画面上の別のフレームの位置を設定できます。
NG_Center[Reference]のSPL_フラグも参照してください。
元来、スクリーンショットの画像を置く場所(左、右、中央)とセーブデータのリストを置く場所を設定する必要があります。
別の(オプションの)フレーム、情報フレームもあります。
情報フレームには、現在選択されているセーブデータに関する情報が表示されます。
例えば、選択したセーブデータにシークレットの数や武薬の数を表示することができます。
この機会に次のフィールドの説明を見てください。
InfoFormatStringフィールド
---------------------------
情報付きSavegamePanelLayoutフレームを使用する場合は、InfoFormatStringフィールドに、選択したセーブデータに表示する情報の書式設定に使用するテキストを入力する必要があります。
情報フレームはスクリーンのゾーンで、現在選択されているセーブデータについての情報が表示されます。
Paolone氏は、外部テキストのトリックを使用してフォーマットテキストを保存することをお勧めします。つまり、テキストファイルにテキストを入力し、Scriptフォルダに保存してから、このテキストを「@」 + 「name.txt」
例えば、「Info_savegames.txt」という名前のファイルにフォーマットテキストを入力し、新しい[ExtraNG]Stringsに「@Info_savegames.txt」というテキストを入力します。
この形式のテキストでは、画面に表示する内容を正確に入力できますが、特別なプレースフォルダを使用してセーブデータの特定の値を通知することを忘れないでください。
すべてのプレースフォルダは丸括弧「()」で囲まれており、その名前は、セーブデータから読み取られた実際の値を認識して置き換えることができる固定名です。
例えば、info形式のテキストに次の行を入力するとします。
Found Secrets 5
Large Medipacks 3
Small Medipacks 12
備考:見栄えをよくしたい場合は、「courier」や「new courier」のような固定幅のWindowsフォントを情報テキストとして選択することをお勧めします。これは、比例フォント(「Arial」など)
Found Secrets 5
Large Medipacks 3
Small Medipacks 12
プレースフォルダの完全なリストは次のとおりです。
(LEVEL-NAME)セーブデータ内のレベルの名前
(SAVE-NUMBER)savegameの連続した内部番号
(SECRETS) 発見されたシークレット数
(L-PACKS) 大型メディパックの数
(S-PACKS) 小型メディパックの数
(FLARES) フレア数
(WEAPONS) このセーブデータに存在する武器のリストを表示します。次の備考のセクションの(1)の注を参照してください。
(GAME-TIME)ゲーム時間。次の備考のセクションの(2)を参照してください。
(DATE-TIME)現在のセーブデータがいつ作成されたか、または最後に変更された日付。形式はDD / MM / YYYY(HH:MM:SS)です。
(KM-DISTANCE)移動距離(Km)
(METERS-DISTANCE)距離の再測定メーターの数((3)を参照)
備考:
(1)武器リストは長くなる可能性があるので、このような書式のテキストを使って行全体をこの値にする方が良いでしょう。
-----情報フォーマットテキストの例---------------
Available Weapons:
(WEAPONS)
-----情報フォーマットテキストサンプルの終り-----
このようにして、リストは提供されるすべての情報フレーム行を持ちます。
(2)ゲーム時間については、通常、この値はデフォルトのセーブゲームパネルのように、セーブデータリストに表示されます。セーブデータリストからゲーム時間を削除したい場合は、SPF_NO_TIME_IN_LISTフラグを追加します。
この方法の利点は、幅の短いフレームでセーブデータリストを提供できることです。
情報フレームから削除するには、テキストファイルから(GAME-TIME)を削除します。
(3)KMとメートルの2つの異なる値を持つ理由は、あなたの言語で「km」と「メートル」という単語を入力できるようにするか、言語ファイルごとに異なる言語で入力することです。
例えば、info形式のテキストを入力することができます。
Distanza:(KM-DISTANCE) chilometri e(METERS-DISTANCE) metri.
上記の例は、「キロメートル」と「メートル」の代わりに「chilometri」と「metri」という言葉を使用してイタリア語での距離の説明を示しています。
ゲームではこうなります。
Distanza: 2 chilometri e 43 metri
IdListWindowsFontフィールド
----------------------------
WindowsFont=IdNumberコマンドのIDを入力します。ここでは、セーブデータリストに使用するテキストのスタイルを設定します。
備考:SavegamePanelコマンドの最初にWindowsFontコマンドを置いて使用することが重要です。
IdInfoWindowsFontフィールド
----------------------------
WindowsFont=IdNumberコマンドのIDを入力します。ここでは、選択したセーブデータに示されている情報に使用されているテキストのスタイルを設定します。
情報が非常に多くなる可能性があるので、すべての追加情報テキストを確実に表示するために、小さなフォントを使用する必要があります。
備考:SavegamePanelコマンドの最初にWindowsFontコマンドを置いて使用することが重要です。
InTitleWindowsFontフィールド
-----------------------------
WindowsFont=IdNumberコマンドのIDを入力します。ここでは、パネルのタイトルを表示するために使用するテキストのスタイルを設定します。すなわち現在の言語に従って「ゲームを保存」または「ゲームを読み込む」というテキストが表示されます。
備考:SavegamePanelコマンドの最初にWindowsFontコマンドを置いて使用することが重要です。
構文:Settings=SET_constants引数
SET_constantsフィールド
-------------------------
プラス(+)記号で区切られた1つ以上のSET_値を入力できます。
現在、次のSET_constantsがあります。
SET_DISABLE_CHEATS
レベルをスキップし、無制限に弾薬やアイテムを入手する隠されたすべてのチートを無効にします。
備考:フライチートを無効にするには、以前のコマンドFlyCheat=DISABLEDを使用する必要があります。
SET_BLIND_SAVEGAMES
プレイヤーがsavegameエディタを使ってsavegamesを変更することを禁止したい場合は、このフラグを追加します。
プレイヤーがsavegamesを変更すると、リロード時に即座にクラッシュすることになります。
SET_CRYPT_SCRIPT
このフラグを設定すると、Script.datファイルが暗号化され、いくつかのユーティリティで逆コンパイルが禁止されます。
SET_DISABLE_CHEATSのようなセキュリティ問題を設定した場合は、Script.datの暗号化も設定することをお勧めします。そうしないと、単にScript.datを逆コンパイルしてSET_DISABLE_CHEATSフラグを削除して再コンパイルできます。
SET_PERFORM_FROM_CD
このコンスタンツを使用すると、CD/DVDや一般的な読み取り専用のストレージからゲームを実行することができます。
この設定を使用する理由は、友人にゲームを提供し、ローカルディスクにレベルエディタ(TRLE)フォルダをインストールすることなく、CDから直接再生できるからです。
この設定が存在すると、TRNGは保存されている現在のTRLEフォルダからではなく、ローカルドライブC:内の新しいタイトルと同じ名前の新しいフォルダ内に、savegameを保存し、そこからロードします。
例えば、「City Of The Dead」のようにScript.txtに記述されているレベルでこのオプションを使用すると、TRNGは次の名前のフォルダを作成します。
C:\City_Of_The_Dead
このフォルダにsavegamesを保存し、ここからロードします。
備考:
このようにして自動起動CDを作成するには、次の手順を実行する必要があります。
1)[Options]セクションのScript.txtファイルに次のコマンドを追加します。
Settings=SET_PERFORM_FROM_CD
(もちろん、他のSET_フラグを上記の行に追加することもできます)
2)Script.txtをScript.datに変換します。
3)TRLEフォルダにあなたのゲームに必要なすべてのレベルファイル(.dat、.tr4など)を入れ、TRLEフォルダ全体をCDイメージに保存して、CDライターで書き込むことができます。
4)イメージを書き込む前に、以下のファイルもイメージに追加する必要があります。Extra_NG_File.zipにあります。
START.exe
autorun.inf
5)CDを焼くことができるようになりました。最後に、作成した新しいCDの中身をみてください。
START.exe
autorun.info
TRLE(フォルダ)
備考:start.exeファイルとautorun.infファイルは、TRLEフォルダの外にあるCDのルートになければなりません。
6)このCDをいくつかのCDリーダに挿入するだけで、ローカルディスク(相手のコンピュータの)にTRLEや他のファイルやプログラムをインストールすることなく、ゲームが起動して再生されます。
構文:ShowLaraInTitle=ENABLED/DISABLED
デフォルトでは、ララはタイトルレベルでは表示されず、次のコマンドを使用して表示されます。
ShowLaraInTitle=ENABLEDを[Options]セクションに追加すると、ララが表示されます。
SNOW_DISABLED
この設定は、Snowコマンドを省略したのと同じです。NGLEで「Snow」ルームと表示された部屋は無視されます。つまり、Snow効果は表示されません。
SNOW_SINGLE_ROOM
「Snow」ラベルが付いた部屋と「O」(外)状態の部屋のみがゲームに雪が降ります。
各部屋は、水分/雨/雪のマルチステーションボタンの右にある水の強さから読み取った雪の強さになります。
SNOW_ALL_OUTSIDE
雪は、マルチステートのボタンを無視して、すべての外の部屋に表示されます。これは、[Snow]ボタンがない部屋でも、Waterルームと異なる場合は雪が降り、[O]が外になっていることを意味します。
備考:
(1)SNOW_ALL_OUTSIDE設定を使用し、すべてのレベルで雪の強度を設定したい場合は、「雪」属性を持つ部屋をNGLEに設定し、強度フィールドのその部屋に雪強度の値を設定することができます。その値は全体のレベルで使用されます。
(2)現在の雪室を使用するつもりがない場合は、「Snow=SNOW_DISABLED」コマンドを使用して(またはSnowコマンドを入力しない)、より多くのSnowルームを見つけるために多くの計算を避けるようTRNGに通知してください。
構文:SoundSettings=Sound Quality(SQ_...), MusicVolume, SoundEffectVolumeSound Qualityフィールド
------------------------
音楽には3つの異なるクオリティを選ぶことができます。
SQ_LOW_QUALITY(11025 hz)
SQ_MEDIUM_QUALITY(22050 hz)
SQ_HIGH_QUALITY(44100 hz)
IGNOREと入力すると、クオリティは変更されず、現在ゲームで設定されている値が使用されます。
MusicVolumeフィールド
----------------------
0(完全無音)と100(最大音量)の間の値を入力できます。
このフィールドにIGNOREと入力すると、音楽ボリュームは変更されず、現在ゲームで設定されている値が使用されます。
SoundEffectVolumeフィールド
----------------------------
0(完全無音)と100(最大音量)の間の値を入力できます。
このフィールドにIGNOREと入力すると、SFXボリュームは変更されず、現在ゲームで設定されている値が使用されます。
構文:StandBy=IdStandBY, Type StandBy(TSB_..), WaitTime, Flags StandBy(FSB_...), Text, NumTexts, AudioTrack, VAngle, RotateSpeed, Distance, IdTriggerGroupBegin, IdTriggerGroupEndIdStandBYフィールド
--------------------
理論的には、スタンバイは正しい条件が成立したときに開始され、いずれにしても、スタンバイモードを実行するためのフリップエフェクトが追加されています。このフリップエフェクトのおかげで、StandByコマンドの設定を使用してゲームでカメラエフェクトを実行することができます。
希望するStandByを選択するには、対応するIdStandBY値を選択します。
とにかく、StandByを本来の方法で使用する場合、IdStandByの値は=1である必要があります。実際には、IDが1のStandByだけが正しい条件で起動されます。
IDの有効範囲は1から499です。
StandBy(TSB_..)フィールド
----------------------------
このフィールドには、1つのTSB_値を入力して、スタンバイのメインエフェクトを設定します。
NG_Center[Reference]のTSB_コンスタンツも参照してください。
WaitTimeフィールド
-------------------
スタンバイを有効にするには、入力なしの時間を設定します。
秒数を入力する必要があります。
Flags StandBy(FSB_...)フィールド
----------------------------------
多くのFSB_フラグを設定して、TSB_値で設定されたメインメソッドをカスタマイズすることができます。
NG_Center[Reference]のFSB_コンスタンツも参照してください。
備考:このフィールドにIGNOREと入力すると、FSB_フラグを省略できます。
Textフィールド
---------------
スタンドバイがオンのときに、画面に表示されるテキストを入力することができます。
例えば、「Hit a Key To continue」のようなテキストを表示できます。
NumTextsフィールド
-------------------
スタンバイモード中に表示するテキストの数を設定します。
前の「Text」フィールドに入力した1つのテキストを表示するため、通常は「1」になります。
「1」より大きい数字を入力すると、「Text」フィールドに入力したテキストと、4秒後に、ExtraNGテキストリストにある、指定したテキストがすぐ後に表示されます。
例えば、スクリプトの[Strings]セクションに次のテキストを入力したとします。
23: Pause - Hit a Key
24: The longest Night
25: Created by Paolone
そして、上記の3つのテキストが画面上に連続して表示されることを望むなら、「Text」フィールドに最初のテキストを入力し、続いて「NumTexts」フィールドに表示するテキストの数(「3」)を入力します。
StandBy=...., Pause - Hit a Key, 3,....
AudioTrackフィールド
---------------------
スタンバイモード中に新しいオーディオを流したい場合は、再生するCDトラックの番号を入力することができます。
言い換えれば、オーディオを望まない場合は、このフィールドにIGNOREと入力することができます。
VAngleフィールド
-----------------
このフィールドは、カメラがララを下または上から見ているかを設定します。
正の値を指定すると、カメラがララよりも下に配置されるため、ララは下の階から表示され、負の値ではカメラがララよりも上に移動し、ララは上の階から表示されます。
0の値では、カメラはララと同じ高さになります。
有効な値の範囲は約-16384から+16384ですが、現実には16384のabs値に達することは避けてください。
このフィールドにゼロまたは負の値を使用することをお勧めします。大きな正の値を入力すると、カメラが床下に移動してしまいます。
備考:16384=90度、8192=45度。
このフィールドにIGNOREと入力すると、デフォルト値にすることができます。
RotateSpeedフィールド
----------------------
ララの周りを回るスピードには度のような単位があり、360度回転するには値は65536($10000)になります。
このフィールドに入力した値は、1秒に30回加算されるため、値を計算して希望の目的に到達することができます。
例えば、カメラが1秒間に4分の1回転(90度)を実行するようにするには、16384(つまり90度)/ 30(つまり1秒)=546と入力する必要があります。
特に距離が大きいときには低速を、距離が小さいときには速度を上げることをお勧めします。
速すぎる値をタイプすると、プレイヤーは船酔いするでしょう。
Distanceフィールド
-------------------
これはカメラ(ララを探している)とララの距離です。
1セクターは1024ユニット、1クリック=256ユニットです。
合理的な値の範囲は256/4096ですが、とにかく小さな値を推奨します。高い値(2048以上)を選択すると、ララを回っているカメラが壁に衝突して問題を起こす可能性があるからです。
IdTriggerGroupBeginフィールド
------------------------------
StandByコマンドは、カメラエフェクト、バックグラウンドオーディオ、テキストの表示に関する多くの機能を提供します。スタンドバイをさらにカスタマイズする場合は、このフィールドを使用してスタンバイを開始するときに実行するTriggerGroupを設定できます。例えば、TriggerGroup内の、Organizerを呼び出し、スクロールまたはスライドしたテキストを表示させたり、フライバイシーケンスを開始するトリガを呼び出すことができます。
TriggerGroupタイプを使用しない場合は、このフィールドにIGNOREを入力します。
IdTriggerGroupEndフィールド
----------------------------
StandByモードの開始時にTriggerGroupを設定すると、開始時のTriggerGroupで追加された効果を画面から削除する別のTriggerGroupが必要になります。
例えば、長いテキストを長い時間表示する場合、End TriggerGroupを使用して、そのテキストを画面からクリアすることができます。
SwitchIdフィールド
-------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
IDの有効範囲は1から1279です。
VariablePlaceFolderフィールド
------------------------------
このフィールドには、特定のTRNG変数を識別するためPlace Folderを入力します。
Place Folderの全リストは、NG_Center[Reference]のVARIABLE PLACEFOLDERSリストにあります。
例えば、変数「Local Short Beta1」を使用する場合は、Place Folderに#0052を入力します。
備考:このフィールドにIGNOREと入力すると、Switchは KeyPadオブジェクトでタイプされた値を受け取る変数、「Last Input Number」を使用します。
FlagsSwitch(SWT_....)フィールド
----------------------------------
このフィールドには、1つまたは複数のSWT_コンスタンツを入力して、Switchコマンドの作業モードに影響を与えることができます。
フラグを使用しない場合は、このフィールドにIGNOREと入力します。
NG_Center[Reference]のSWT_コンスタンツも参照してください。
Trigger Group Indicesフィールド
--------------------------------
このフィールドには、TriggerGroupコマンドのインデックスを入力できます。
最初のTriggerGroupは、変数が「1」のときに実行され、2番目のときは変数が「2」のとき実行されます。
いくつかのフィールドにIGNOREと入力すると、その番号がTriggerGroupにないことを意味します。
例えば、変数が「2」のときにTriggerGroupを実行したくない場合は、次のようなリストを入力できます。
..., 4, IGNORE, 7, 8
このようにして、変数が「1」になると、TriggerGroup=4が実行されます。
変数が「2」のときは何も実行されません。
変数が「3」の場合、TriggerGroup=7が実行されます。
変数が「4」の場合、TriggerGroup=8が実行されます。
この配列に最大120のインデックスを配置することができます。
詳しくは、AnimationコマンドについてのチュートリアルのTestPositionコマンドを参照してください。
構文:TextFormat=Color(CL_...), FormatFlags(FT_...), BlinkTime, SizeCharacterMenu(SC_...)Colorフィールド
----------------
CL_...の値(コンスタンツリストを参照)を使用して、フリップエフェクトの表示テキストのデフォルトの色を設定します。
FormatFlagsフィールド
----------------------
=FT_...の値(コンスタンツリストを参照)を使用して、テキストのデフォルト位置を設定し、デフォルトのサイズを設定し、さらに点滅またはストレッチを行います。
備考:テキスト位置のFT値にFT_NARROW_CHARSフラグとFT_Blink_CHARSフラグの2つとすべてのFT_SIZE..フラグを「+」文字を使用して追加することができます。
例
TextFormat=CL_GOLD, FT_TOP_CENTER + FT_Blink_CHARS, 16
このようにして、色に金色を設定し、位置を上部の中心に設定し、(プラス文字で)点滅する文字を設定します。
備考:この設定は、フリップエフェクトを使用して表示するテキストに対してのみ有効です。
トゥームレイダーの文字のサイズを変更するには、SizeCharactersフィールドにSC_..の値を設定する必要があります。(下記参照)
BlinkTimeフィールド
--------------------
数値は、FormatFlagsパラメータにFT_Blink_CHARSフラグも設定した時に、点滅する間隔になります。
注:点滅時間は、1、2、4、8、16、32、64、128などの2の階乗でのみを使用できます。
SizeCharacterMenuフィールド
----------------------------
tomb4メニューの文字のデフォルトサイズを変更するためのCostant値SC_Type。
備考:FT_フラグの値とは違って、SizeCharacterフィールドで設定した値は、トゥームレイダーのデフォルトテキスト(メニュー、オプション、ただしLegendのテキスト)には影響しますが、この設定はフリップエフェクトの表示テキストには影響しません。このため、このフィールドは[Title]セクションでのみ使用してください。
TextFormat=IGNORE, IGNORE,IGNORE, SC_HALF_HEIGHT
[Level]セクションでTextFormatを使用するときは、このフィールドには常にIGNOREと入力する必要があります。そうしないと、トゥームレイダーのメニューのテキストが、最後にプレイされたレベルに従って不規則に変化します。
現在、このフィールドでは次のいずれかの値のみを選択できます。
SC_NORMAL
何も変更しない。文字は通常のサイズになります。
SC_HALF_WIDTH
文字の幅が半分に縮小されますが、高さは変更されません。
SC_HALF_HEIGHT
文字の高さが半分に縮小されますが、幅は変更されません。
SC_HALF_SIZE
文字の幅と高さの両方を半減させる。
SC_DOUBLE_WIDTH
文字の幅が2倍、高さは変更されません。
SC_DOUBLE_HEIGHT
文字の高さが2倍、幅は変更されません。
SC_DOUBLE_SIZE
文字の幅と高さの両方が2倍になります。
TextFormatコマンドのデフォルト値
現在のレベルにTextFormatコマンドを設定しないと、デフォルト値が使用されます。
TextFormat=CL_WHITE、FT_BOTTOM_CENTER、16、SC_NORMAL
備考:
(1)フリップエフェクトを使ってゲーム内のテキストの設定を変更することもできますが、テキスト形式のトリガをあまりにも多く消費しないようにするには、このスクリプトコマンドを使用してデフォルト値を設定する方がよいでしょう。
(2)FT_...値を使用してテキストの位置を設定する場合は、特定のテキストにいくつかの書式文字を追加して、画面上のテキストの位置をさらに変更することもできます。例えば、FT_TOP_LEFTを使用しても、活力バーにテキストが重なって表示されない場合は、文字の組み合わせでテキストを開始できます。この方法で「\n」(n =改行)を使用すると、最初の空の行が表示され、表示されるテキストは下の位置から開始します。
左の行頭をより右に移動したい場合は、文字の組み合わせでテキストの各行を開始することができます:「\t」(t =タブ)
例
\tHi world\n\tI'm very happy to be here
FramePerSecフィールド
----------------------
このフィールドでは、シーケンスの速度を設定します。値は1秒あたりのフレーム数です。最大値は30、つまり1秒間に30フレーム、最小値は1です。
SEQ_flagsフィールド
---------------------
2つ以上のSEQ_フラグを設定することができます。NG_Center[Reference]のSEQ_フラグも参照してください。
現在、次のフラグがあります。
SEQ_LOOP
シーケンスは無限ループします。このフラグを使用する場合、特定のフリップエフェクトを使用してシーケンスを停止する必要があります。そうでない場合は、連続して実行されます。
SEQ_LOOP_INVERSE
このフラグは、SEQ_LOOPフラグも設定した場合にのみ機能します。
単一のSEQ_LOOPフラグはこのシーケンスで無限ループを設定します。(0から3までの4つのテクスチャを仮定)
0 1 2 3 0 1 2 3 0 1 2 3....
SEQ_LOOP_INVERSEフラグも設定すると、シーケンスは次のようになります。
0 1 2 3 2 1 0 1 2 3 2 1 0...
SEQ_STOP_AT_FIRST
このフラグを設定すると、アニメーションが完了すると常にTRNGが強制的に最初のテクスチャの範囲を設定します。
つまり、このフラグを省略すると、最後のテクスチャはアニメーションのタイプによって異なります。
ループを設定していない場合、最後に表示されたテクスチャは、配列シーケンスの最後のインデックスのテクスチャになります。
ループを設定している場合は、最後に表示されたテクスチャは、テクスチャシーケンスを止めるフリップエフェクトを実行した瞬間に表示されていたテクスチャになります。
Tex Indices array {...}フィールド
----------------------------------
Tex Indices arrayは、1000までの異なるインデックスを提供できます。
値はカンマ「,」で区切ります。
各インデックスは、特定のアニメーション範囲内の各テクスチャのインデックス位置を記述しています。
例えば、tgaマップに4つのテクスチャを設定した場合、各テクスチャにリテラル「A」が表示され、次に「B」、「C」、「D」
フレーム内の「A」テクスチャを表示する場合は0(ゼロ)を入力し、「B」を表示する場合は1を入力します。
例えば、TextureSequenceコマンドが次の場合
TextureSequence=1, 4, IGNORE, 3, 2, 1, 0
あなたはID=1のシーケンスを持っています。(これは、このシーケンスを開始/停止するためのフリップエフェクトトリガで設定する番号です)
4fpsを設定しているため、アニメーションは遅く、画像は1秒間に4回しか変化しません。
SEQ_フラグにIGNOREを設定したため、ループはありません。
ゲームで示されるシーケンスは、次の画像で表示されます。
D(3)
C(2)
B(1)
A(0)
備考:
* TextureSequenceコマンドでアニメーション化できる範囲は、NGLEで「P-Frame」のように設定する必要があります。
* TextureSequenceでアニメーション化できるテクスチャの最大数は16です。つまり、インデックス配列フィールドに0から15の範囲で囲まれた数値のみを入力できます。
*同じP-Frame範囲を異なる TextureSequenceコマンドでアニメートできます。
*アニメーションするP-Frame範囲のIDは、フリップエフェクトトリガに設定されます。
フリップエフェクト
アクション
コンディション
スクリプト形式でトリガをエクスポートすると、次のような情報を含むテキストファイルが取得されます。
---ファイルの先頭---------
; Set Trigger Type - FLIPEFFECT 96
; Exporting: TRIGGER(0:0) for FLIPEFFECT(96) {Tomb_NextGeneration}
; <#> : Lara. (Weapons) Disarm Lara in <&>way
; <&> : Remove All. (Weapons + Ammos)
; (E) :
; Values to add in script command: $2000, 96, $0
---ファイルの終わり-------
次の3つの値をスクリプトコマンドに追加します。
..., $2000, 96, $0
エクスポートしたトリガに関する情報
--------------------------------------
; Set Trigger Type - FLIPEFFECT 96
; Exporting: TRIGGER(0:0) for FLIPEFFECT(96) {Tomb_NextGeneration}
; <#> : Lara. (Weapons) Disarm Lara in <&>way
; <&> : Remove All. (Weapons + Ammos)
; (E) :
--------------------------------------
上記の例では、TriggerGroupコマンドに追加する値は「$2000,96,$0」の値です。
テキストファイルで読んだその他の情報は、上記の3つの数字がトリガ「Lara. Disarm Lara」を実行することを覚えておくために、参考のためだけに与えられています。
引数
IdGroupフィールド
------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
このTriggerGroupの中のトリガをスタートするためにIdGroup番号が使われます。事実、トリガウィンドウでフリップエフェクトの「Object to trigger <&>」フィールドで「Perform <&>Trigger Group」を選択した時、異なるIdGroup値を持つ異なるTriggerGroupとは異なるTriggerGroupを選択する必要があります。
注:IdGroupフィールドの有効範囲は1から9999です。
Exported Trigger values
-----------------------
IdGroupフィールドの後に、3つの値のリストを入力できます。3つの値の各グループは、[Export Script Trigger]操作から取得されています。
1つのトリガのデータを保持するために必要です。これらの3つの値は、[Export Script Trigger]ボタンから取得したテキストと同じ順序で入力します。
したがって、TriggerGroupの一般的な構文は次のようになります。
TriggerGroup=IdGroup, {Alfa1, Alfa2, Alfa3}, {Beta1, Beta2, Beta3}, {...}, {Omega1, Omega2, Omega3}
備考:括弧は本当に書く必要はありません。これらの括弧は、TriggerGroupコマンドに追加するトリガデータのオプションを説明するためです。
上記の構文では、「Alfa」、「Beta」、「Omega」は特定のエクスポートされたトリガ、「1/2/3」はエクスポートされた各トリガの3つの値です。
最初の値(「Alfa1」、「Beta1」、「Omega1」など)に現在のトリガに具体的な意味を与えるTGROUP_フラグを追加することはできますが、エクスポートした値は変更しないでください。
エクスポートされた各トリガの最初の値に次のTGROUPを追加できます。
TGROUP_AND
TGROUP_NOT
TGROUP_OR
上記のフラグは論理演算子であり、コンディショントリガのリンクにのみ使用されます。
論理演算子を使用しない場合、デフォルト値は常にANDです。これは、入力したすべての条件が、最終条件が成立するためには同時にすべてtrueでなければならないことを意味します。
とにかく場合によっては、より特定の状態を作りたいと思うかもしれません。
例えば、「ララがクライミング状態」または「ララがモンキースイング状態」のときを条件とする場合は、このようにTGROUP_OR演算子を使用する必要があります。
Condition1(ララがクライミング状態の条件)
TGROUP_OR + Condition2(ララがモンキースイング状態の条件)
このようにして、最終的な条件をtrueにするためには、少なくとも一つの条件がtrueである必要があります。
TGROUP_NOTは別のやり方で動作します。以前の条件(存在する場合)とリンクしているため、「AND NOT」のようになります。
あなたが[Set Trigger Type]ウィンドウの条件リストで欲しい条件を見つけられないときには、あなたはNOTを使用しますが、反対のもののみを使用します。この反対の条件をNOTで使用すると、その条件の意味を反転させます。
TGROUP_ELSEは条件または共通のトリガに追加出来ます。
このフラグをトリガに追加すると、「ELSEブロック」が開始されます。
ELSEブロックは、前の条件ブロックが成立しなかった場合にのみ実行されます。
ELSEを使用して、1つの条件ブロックに従って2つの異なるトリガ(またはトリガのブロック)を実行できます。
例えば、ララがすべてのシークレットを見つけた時はボーナスレベルをロードし、ララがすべてのシークレットを見つけられなかった時は、タイトルレベル(冒険を終わらせるため)に戻るには、次のようにELSEを使用して実現できます。
Condition(ララは <&> 個のシークレットを見つけた)
(もしそれがtrueなら)Perform trigger(ボーナスレベルをロードします。)
TGROUP_ELSE + Trigger(タイトルレベルに戻ります。)
このようにしてララがすべてのシークレットを見つけたらボーナスレベル、それ以外はタイトルレベルが読み込まれます。
TriggerGroupに2つかそれ以上のELSEフラグを配置して、非常に複雑な条件を作成することができます。
ELSEを使用するには、多くの条件をテストし、上記の条件と異なる結果に異なるトリガを実行することです。
例えば
Condition:「ララは1つシークレットを見つけた」
Trigger:レベル5をロードする
ELSE Condition:「ララは2つシークレットを見つけた」
Trigger:レベル6をロードする
ELSE Condition:「ララは3つシークレットを見つけた」
Trigger:レベル7をロードする
上記の例では、他の条件に付けられたELSEを使用しました。このようにして、条件のリストをスキャンし、結果ごとに異なるトリガを実行することができます。
TriggerGroupをスキャンするために使用されるルールは次のとおりです。
もし現在のトリガが条件の場合:条件がtrueであるかどうかを確認する。
もし、その条件がtrueなら他の条件を確認する。他の条件がなければ、最初のトリガが検出され、TriggerGroupの終了または最初のELSEフラグが検出されるまで、トリガがすべて実行されます。
もし現在のトリガが条件でない場合:以下の全てを実行し、最初にELSEフラグが見つかったときに停止します。
もし現在のトリガが条件であり、条件がfalseの場合、現在の条件ブロックをスキップし、それ以降の箇所もスキップして、ELSEフラグを見つけるまで解析を継続し、このELSEフラグから条件の確認またはトリガを開始します。
TGROUP_USE_FOUND_ITEM_INDEX
TGROUP_USE_OWNER_ANIM_ITEM_INDEX
TGROUP_USE_TRIGGER_ITEM_INDEX
TGROUPフラグを上のように「ITEM_INDEX」と変更した場合。ここで「ITEM_INDEX」は、トリガ(アクションなど)または条件によって使用されるMoveableインデックスを意味します。
デフォルトでは、各トリガはエクスポート時に既にインデックスを持っていますが、場合によっては、まだわかっていないMoveableのアクション(トリガ)を実行することがあります。
例えば、次のような戦闘状況を作成するには
「ララが敵を攻撃した時、その敵の体力が消耗する。」
複数の敵がレベル内には存在する可能性があるため、ララが敵と最初に遭遇するトリガが何であるか知ることはできません。
この問題を解決するために、トリガや条件に従うために使用する特別なインデックスをフラグとして追加します。
このやり方は、Moveableを動的に見つける方法がある場合にのみ可能です。
例えば、「Lara collides with moveable of <&>slot」のような条件を実行した場合、条件がtrueの場合、TRNGはララに触れているMoveableインデックスを発見します。現在、現在の条件で見つかったインデックスにフラグTGROUP_USE_FOUND_ITEM_INDEXを追加すると、次のトリガや条件が使用され、動的に検出されたこの敵に対して特定のトリガを実行できます。例えば、「Remove vitaltiy to <#> enemy」のようにダメージを与えます。
上記のフラグを使用することがわかっているときは、ソーストリガに任意のオブジェクトを選択して入力することができます。
なぜなら無関係に、そのアクションを実行するオブジェクトの別のインデックスが使用されることがわかっているからです。
TGROUP_USE_OWNER_ANIM_ITEM_INDEXフラグは、より理解しやすく使いやすくなりました。
このフラグは、現在のTriggerGroupが、Moveableのアニメーションに挿入されたAnimCommandsによって実行される場合にのみ使用してください。
この状況では、TGROUP_USE_OWNER_ANIM_ITEM_INDEXフラグは、このAnimCommandsを挿入したMoveableインデックスを使用するためのインデックスとして強制的に使用されます。
TGROUP_USE_TRIGGER_ITEM_INDEXフラグは、Moveableインデックスをリセットし、新たに元の値に強制します。
仮に以前のトリガまたは条件でTGROUP_USE_OWNER_ANIM_ITEM_INDEXまたはTGROUP_USE_FOUND_ITEM_INDEXのようなフラグを使用した場合は、このTGROUP_USE_TRIGGER_ITEM_INDEXフラグを使用して、現在の実際のソースインデックスを新たに使用してトリガまたは条件を使用できます。
このフラグを使用すると、最初にそのトリガで入力された有効なインデックスを使用するようにTRNGに通知します。
備考:NG_Center[Reference]のTGROUP_コンスタンツも参照してください。
構文:Turbo=Flags(TRB_..), FPStoKeep備考:Turboコマンドの説明の最後に、プロジェクト作成段階の少しのトリックを使ってレベルのスピードを上げるための提案があります。
フィールドの説明
Flags(TRB_..)フィールド
--------------------------
1つまたは複数のTRB_コンスタンツ値を設定することができます。
NG_Center[Reference]のTRB_値も参照してください。
FPStoKeepフィールド
--------------------
このフィールドは、フラグフィールドにTRB_ADAPTIVE_FARVIEWを設定した場合にのみ使用されます。
保持するFPS値を入力する必要があります。
IGNOREと入力すると、デフォルト値は29FPSとなり、FPSが29fpsより下がるとTRNGは新たに29fpsに達するまで遠方視距離を減少させます。
もしあなたのレベルが非常に低いfps、例えば15fpsを持っていれば、あまりにも高いFPStoKeep値を必要としない方が良いでしょう。さもなければ、距離があまりにも小さくなります。例えば、20FPStoKeepを入力すると、TRNGはfpsが20fpsに低下した場合に限り、距離の遠い表示を減らし始めます。
このフィールドは、次の質問に答える方法です。最高のフレームレートがどれくらい重要で、最大の遠景距離はどれくらいですか?
常に最高のフレームレートを持つことが非常に重要である場合、29(最大値)と入力すると、ゲームでは常にこのフレームレートが維持され、遠方の視界の距離は大きく損なわれます。逆に遠景距離が非常に重要だと思うならば、20fpsのような低値だけをこのフィールドに打ち込むことができます。こうするとフレームレートが非常にダウンした場合を除いて、遠くの距離はほぼ常に維持されます。
備考:TRB_ADAPTIVE_FARVIEW設定を使用しない場合は、このフィールドにIGNOREと入力する必要があります。
****************************************************************
あなたのレベルのスピードを上げるためのヒント
--------------------------------------------
Turboコマンドの使用がまだ希望の結果を得るのに十分でない場合、スピードを上げるためにレベルを構築している間に少しトリックを使うことができます。
Staticの問題...
----------------
Staticオブジェクトは、Moveableオブジェクトよりも表示に多くの時間を必要とします。このため、同じ部屋または近くにあまりに多くのStaticがあると、多くの「遅くなる」問題が発生します。
この問題を解決するには、Staticオブジェクトを同じ外観でMoveableオブジェクトに置き換えるというトリックがあります。
例えば、StaticメッシュとテクスチャをStrpixプログラムで置き換えることができます。
元のStaticオブジェクトを「Export dxf」し、ANIMATINGオブジェクトのようなMoveableに「Import dxf」というコマンドを使用すると、テクスチャも正しく移動します。
透明性の問題...
---------------
複雑な理由から、TRNGは、透明なテクスチャを持つオブジェクトがある場合に、多くの余分な計算を実行します。けれども、この使い方をあきらめることはありません。場合によっては、透明テクスチャをより詳細な不透明メッシュに置き換えることができます。
例えば円をシミュレートする場合は、円が透明テクスチャを持つ四角いメッシュを使用する代わりに、不透明な三角形を使って円形メッシュを作成することができます。このようにして、望む形をあきらめずに、透明なテクスチャの使用を避けることができます。
Adapative frame rate設定の代わり
---------------------------------
TurboコマンドのAdapative frame rateで作業しても満足できない場合は、現在のレベルの遠景値を動的に変更する新たなフリップエフェクトトリガを使用して、遠景が縮小されたり、遠景がより大きくなる領域を設定できます。
この方法を使用するには、競合が発生するためTurboコマンドのadaptive far viewを無効にする必要があります。そしてゲームのレベルを調べて、遠景を減じfpsを得られる重要な場所がどこであるかを理解する必要があります。
例えば、多くの木々があって非常に見通しの悪いレベルは、スピードの問題があります。この場合、ララがこの森に入ったときは遠景を減らすトリガを置き、ララがこの森から出て行くときは遠景を広げるトリガを置くことができます。
IdWindowFontフィールド
-----------------------
このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
IDの有効範囲は1から999です。
WindowFontNameフィールド
-------------------------
標準のフォント名を入力できます。
注:1.2.2.7 TRNGバージョンから、そのフォントの文字コードを使ってフォント名を導入することができます。
コロン文字「:」を使用して、両側を折り返します。
例
204:Arial
最も重要な文字コードのリスト
ANSI_CHARSET 0
DEFAULT_CHARSET 1
SYMBOL_CHARSET 2
SHIFTJIS_CHARSET 128
HANGEUL_CHARSET 129
GB2312_CHARSET 134
CHINESEBIG5_CHARSET 136
OEM_CHARSET 255
JOHAB_CHARSET 130
HEBREW_CHARSET 177
ARABIC_CHARSET 178
GREEK_CHARSET 161
TURKISH_CHARSET 162
VIETNAMESE_CHARSET 163
THAI_CHARSET 222
EASTEUROPE_CHARSET 238
RUSSIAN_CHARSET 204
BALTIC_CHARSET 186
備考:西洋の文字セットでは文字セット番号を省略すると、デフォルトで使用される値は0になります。すなわち、すべての西ヨーロッパ言語(英語、ドイツ語、フランス語、スペイン語、イタリア語)に適したANSI文字セットです。
備考:現在のTRNGは、8ビットエンコーディング文字セットのみをサポートしています。そのため、Unicodeなどの16ビット文字セットは使用できません。
フォント名については、多くのWindowsフォントがありますが、非常に一般的なフォント名のみを使用することをお勧めします。そうしないと、選択したフォントがプレイヤーの環境によっては失われてしまう危険性があります。
最も一般的なフォント名は次のとおりです。
Arial
Comic Sans MS
Courier
Courier New
Ms Sans Serif
Times New Roman
Verdana
備考:このフィールドに入力した名前は、PuzzleやLegendのようなスクリプトコマンドのように、[Strings]セクションにも必要です。
例えば、「Courier New」を使用する場合、このフィールドに次のテキストを入力します。
WindowsFont=1, Courier New,...
そして、このテキストを[Strings]または[ExtraNG]セクションにも入力する必要があります。
注:文字セット番号を設定する場合は、この番号もテキストに入力する必要があります。例えば、Windowsフォントで複合フォント名「128:MS Gothic」を使用する場合は、[Strings]セクションにもこの合成名を入力する必要があります。「128:MS Gothic」
備考:フォント名を省略してIGNOREと入力すると、太字やサイズなどの他の設定に応答する一般的なフォントが検索されます。
とにかく、最良の結果を得るには、常にフォント名を入力する方が良いでしょう。
WindowsFontFlags(WFF_...)フィールド
---------------------------------------
このフィールドには、「+」記号でリンクされた1つ以上のWFF_フラグを入力できます。
このフィールドにIGNOREと入力すると、TRNGは一般的なテキスト設定ではWFF_BOLD + WFF_SHADOW + WFF_LEFT_ALIGNのデフォルト設定を使用し、タイトル設定ではWFF_CENTER_ALIGN + WFF_UNDERLINE + WFF_ULTRA_BOLDを使用します。
NG_Center[Reference]のWFF_フラグも参照してください。
SizeFontフィールド
-------------------
フォントのサイズは複雑な方法で計算されます。
この値は、1024x768の画面解像度でより大きい文字のピクセル単位の高さです。ここで、文字の幅は入力したSizeFontの50%です。
そして、このサイズは、ゲーム画面の現在の実効解像度に応じて拡大されます。
備考:画面上にテキストを表示するために必要なスペースについては、ゲームが異なる画面解像度で動作する場合、このサイズが少し異なる可能性があることを伝えることが重要です。このため、[Size Font][Frame Size for text]には、フレームテキストに空き領域がありますが、それ以上の調整はできません。
言い換えれば、フォントに大きなサイズを選んだ場合、あなたが選んだテキストフレームにはすべてのテキストが収まるので満足していても、他のPCや他の解像度でゲームが再生されると、同じテキストが長すぎてそのテキストフレームに収まらず、プレイヤーがテキストの最後の行を読み取ることができない可能性があります。
したがって、このリスクを回避するには、テキストフレームの余分なスペースを取って、さまざまなコンピュータと解像度の間のフォントサイズの変化を補う方がよいでしょう。理論的には、上記のバリエーションを補うためにスペース全体の25/30%を空にする必要があります。
ColorRbgId and ShadowColorRgbIdフィールド
------------------------------------------
これらの2つのフィールドで、フォントの色を設定できます。(ColorRbgId)、さらにシャドウカラー(ShadowColorRgbId)
あなたが入力する値は、同じ[Level]セクション内のいくつかのColorRGBの識別子です。
影の色は、テキストの色とはまったく異なる色を選択する必要があります。例えば、テキストの色が白であれば、影には黒を選択する必要があります。逆も同じです。
備考:ColorRGBコマンドは、それらを使用するWindowsFontコマンドの前にタイプされている必要があります。そうでなければ、解析ステップで解析されていないため、正しいColorRGBコマンドを見つけることができません。
構文:WindowTitle=NameOfCurrentLevel例
WindowTitle=The Last Revenge by Paolone
備考:テキストを使用する他のコマンドについては、English.txtファイルにも同じテキストを追加することを忘れないでください。
別の言語バージョンを取得したい場合は、英語のセクションにテキストを入力し、別の言語のコンボボックスをクリックするだけで、選択した位置に表示されたテキストを上書きできます。
有効範囲は1から127です。
WorldFarViewを使用すると、ゲームのあらゆるレベルで使用できる最大(視野の)距離を設定できます。
2つのワイドシーンや複雑なシーンに応じて、WorldFarViewよりも小さいか同じLevelFarView値を異なるレベルで設定する必要があります。
備考:
詳細は、LevelFarViewコマンドとFogRangeコマンドを参照してください。
備考:
Windowsフォントを使用する最大の利点は、異なる文字セット(デフォルトの西洋文字セットと異なる)をサポートできることです。
Windowsフォントを使用すると、東洋言語でテキストを表示できます。
とにかく、Windowsのフォント管理にもいくつかの問題があります。
Windowsフォントの表示はWindowsAPIの機能(DirectXの機能ではない)に基づいているので、トゥームレイダーが使用するDirectXで管理するデフォルトよりも描画が遅くなります。
これは、画面上にウィンドウのテキストが軽く「ちらつく」ことを意味します。
別のリスクは、あなたの選択したWindowsフォントが、いくつかのコンピュータでは見つからない可能性があり、その場合TRNGは類似のフォントを探し出そうとしますが、それは違うのでゲームの見栄えはあまり良くありません。
上記の理由から、DefaultWindowsFontコマンドは東洋言語(トゥームレイダーのデフォルトではサポートされていません)を使用する場合にのみ使用することをお勧めします。西側のレベルビルダー(およびそのプレイヤー)は、より良いパフォーマンスとコンピュータとの互換性の問題から、デフォルトのフォント管理を使用することをお勧めします。
IdWindowsFontフィールド
------------------------
このフィールドには、すべてのシステムテキストのデフォルトとして使用するWindowsフォントの設定のあるWindowsFontスクリプトコマンドのIDを入力します。
スクリプトでは、最初にWindowsFontコマンドを置き、次に、前のコマンドを使用するDefaultWindowsFontを(下に)配置することが重要です。
例
ColorRGB=1, 255,255,255
ColorRGB=2, 0,0,0
WindowsFont=1, Arial, WFF_BOLD+WFF_SHADOW, 40, 1, 2
DefaultWindowsFont=1, IGNORE
備考:WindowsFontコマンドで入力する多くの設定は、ゲームでは無視されます。なぜなら点滅テキスト以下、原色(白)、または二次色(黄色)としてTRNGが処理するためです。
とにかく、サイズ、フォント名、太字、イタリック体などが使用されます。
注:バージョン1.2.2.7からWindowsFontはFontNameフィールド(そのフィールドで指し示すテキスト)に希望の文字セットも入力できます。
文字セット:FontName
例
128:Arial
128は、日本語や中国語のような東洋言語の文字セットです。
その他の文字コードは次のとおりです。
ギリシャ語=161
トルコ語=162
ロシア語=204
西洋の文字セットについては0ですが、他の文字セットがない場合は常に西洋の文字セット(デフォルト)が使用されるため、入力する必要はありません。
Flags(DWF_...)フィールド
---------------------------
このフィールドには、DWF_フラグを追加してこのコマンドをカスタマイズできます。
セットフラグを使わない場合は、このフィールドにIGNOREとタイプすることができます。
LineSpacingフィールド
----------------------
行間隔については、文字行とそれに続く行間の垂直方向の距離を意味します。
このフィールドを使用して、このスペースを増減することができます。
値は、トゥームレイダーのエンジンによって設定された元の値の100分の1で表されます。
例えば、100と入力すると、変更はありません。(この場合は無駄です)
120を入力すると行間隔の20%を増やし、半分に減らすには50を入力します。
このフィールドにIGNOREと入力すると、元の値を保持できます。
Offset modifiersフィールド...
------------------------------
MainMenuOffsetsフィールド以降には、トゥームレイダーメニューで使用されるシステムテキストの位置を上下に移動するフィールドがあります。
入力する値はピクセルで表示されますが、トゥームレイダーの画面の現在の解像度に応じて大きな違いがあるため、これらの値を1024x768解像度で入力する必要があります。次に、TRNGは実際の画面解像度に従ってこれらのオフセットを調整します。
備考:テキストを上に移動するには、-10などの負の値を設定する必要があります。例えば、-10は元の位置よりも10ピクセル高くテキストを移動します。
これらのフィールドの名前は自己解説です。とにかく、変更するテキストをすぐに覚えることができます。
MainMenuOffsets:最初の画面の「New Game」、「Load Game」、「Options」、「Exit」
NewGameTitle:「New Game」画面のタイトル
LoadGameTitle:「Load Game」画面のタイトル
NewGameList:「New Game」画面のレベルのリスト
LoadGameList:「Load Game」画面のsavegame情報のリスト
OptionSettings:「Options」画面のすべてのテキスト:「Options」、「Control Configuration」、「Music Volume」、「Sfx Volume」、「Sound Quality」、「Targeting」、およびそれらの設定
OptionCmdList:「Option」、「Control method」、およびゲームコマンドのすべてのリストとその設定。
PauseScreen:「Paused」メニューのすべてのテキスト:「Paused」、「Statistics」、「Options」、「Exit to title」
StatList:「Statistics」画面のすべてのテキスト。タイトルの「Statistics」をのぞく全て。
InventoryItemName:現在選択されているアイテムの名前。
ExamineText:Examineコマンドを設定した後に表示されるExamineアイテムにリンクされているテキストの位置
位置を変更したくない場合は、上記のすべてのフィールドにIGNOREとタイプすることができます。異なる言語のLanguage.txtファイルのリスト。
各File=文に対して、language.datファイル(例:JAPAN.DATファイル)が作成されます。
構文:
[Language]
File=0,English.txt
File=1,FRENCH.TXT
File=2,GERMAN.TXT
File=3,ITALIAN.TXT
File=4,SPANISH.TXT
File=5,US.TXT
File=6,JAPAN.TXT
File=7,DUTCH.TXT
引数
1 - インデックス番号(「1」)
language.datの位置をソートします。このファイルのレベル名とパズルアイテム名は、Script.txtファイルで同じでなければならないため、数字が「1」のファイルは重要です。
2 - Txtファイル名(「English.txt」)
その言語のテキストを取得するソースtxtファイル
他のLanguage.txtファイルのリストの下に追加することができます。
レベルセクションを開始します。構文:
[Level]
Name=Playable Tutorial Level
Legend= The year 2000, somewhere in Egypt...
Horizon= ENABLED
Layer1= 160,160,192,7
PuzzleCombo= 3,1,Cartouche Piece 1, $0000,$0400,$0000,$0000,$0000,$0002
PuzzleCombo= 3,2,Cartouche Piece 2, $0000,$0400,$0000,$0000,$0000,$0002
Puzzle= 3,Ba Cartouche,$0000,$0400,$0000,$c000,$8000,$0002
Puzzle= 5,Eye Of Horus,$0017,$0500,$0000,$0000,$0000,$0002
PuzzleCombo= 5,1,Eye Piece, $0017,$0500,$0000,$0000,$0000,$0002
PuzzleCombo= 5,2,Eye Piece, $0017,$0500,$0000,$0000,$0000,$0002
Puzzle= 6,The Hand Of Orion, $0000,$0400,$8000,$c000,$0000,$0002
Puzzle= 8,The Hand Of Sirius, $0000,$0400,$8000,$c000,$0000,$0002
LoadCamera= 0,0,0,0,0,0,255
LoadCamera= 11088,-1100,28896,11119,-1399,31486,0
Level= DATA\TUT1,107
構文:
[Options]
LoadSave= ENABLED
Title= ENABLED
PlayAnyLevel= ENABLED
InputTimeout= 18000 ; frames * seconds = 60x30
FlyCheat= ENABLED
Security= $55
DemoDisc= DISABLED
上記のステートメントの説明については、現在のテーブルの特定のステートメント名を参照してください。
構文:[PCxtensions]
Level=.TR4
Cut=.TR4
FMV=.BIK
PCゲーム版のファイル拡張子を割り当てる。
1 - Level file(Level=)
2 - Cutscene files(CUT=)
3 - Movies(FMV=)
これらの値を変更することは有用ではありません。
構文:[PSXExtensions]
Level=.PSX
Cut=.CUT
FMV=.FMV
プレイステーション1版のファイル拡張子を割り当てる。
1 - Level file(Level=)
2 - Cutscene files(CUT=)
3 - Movies(FMV=)
これらの値を変更することは有用ではありません。
タイトルセクションを開始します。[Title]セクションの文は[Level]セクションと同じですが、[Title]セクションにはパズルアイテムのすべての文がありません。
[Title]ステートメントの説明については、現在のテーブルのステートメント名を参照してください。
構文:AnimatingMIP=Slot, SectorDistance[Level]セクションで使用する。
このコマンドは、所定の距離から見たときの低品質アニメーション(MIP)の使用を可能にします。
これはゲームエンジンの仕事を減らすのに便利です。
引数
1-Slot=Mipバージョンを使用するメインスロットのインデックス
これは、WADファイルのアニメーション名で表示される番号です。
例えば、この場合、その名前は次のようになります。「ANIMATING 13」
2 - SectorDistance:MIPオブジェクトの使用対象からの距離。
Paolone氏はこの数がスクエア(またはセクター)の数であると考えます。
[Level]セクションで使用する。
空のテクスチャとHorizonオブジェクトとの境を表示させるかどうか設定します。
Layer1コマンドを使用して正しい空の色の値を設定すると、より効果的です。
[Options]セクションで使用する。
現在のゲームがデモだけの場合に設定します。
引数がENABLEDの場合、最初のレベルでのみ再生されます。
[Level]セクションで使用する。
Examineコマンドは、プレイヤーが調べることができる入手可能なアイテムのデータを設定します。
インベントリ内でプレイヤーがExamineを選択すると、オブジェクトの画像がフルスクリーンで表示され、この背景の上にLanguage.txt(English.txtのこと)ファイルで見つかったテキストが表示されます。
Examineオブジェクトのテキスト(Examineオブジェクトは1から3の3つしかありません)は、[PSXStrings]セクションの最初の部分をすぐに開始します。
3つのExamineオブジェクトは、テキストを表示する動作が異なります。
Examine1はテキストを持ちません。それはグラフィックイメージだけです。描画や特殊記号で地図を表示することができます。
この地図を変更するには、Strpixを使用して、Examine1オブジェクトに新しい(高精細)テクスチャを貼る必要があります。これは、これらのテクスチャがフルスクリーンで表示されるためです。
Examine2のオブジェクトには2つの異なるテキストがあります。最初のテキストは「Language.txt」内のヘッダー「Rules1:」の後から始まり、画面の上半分に表示されます。
2番目のテキストはヘッダー「Rules2:」の後に開始され、画面の下半分に表示されます。
Examine2は画面の中央で縮小されて表示されます。
Examine3のオブジェクトが最も一般的なExamineオブジェクトです。
そのテキストはヘッダー「PETEPOO:」の後に開始され、オブジェクトはバックグラウンドでフルスクリーンに表示され、フォアグラウンドでは「PETEPOO:」タグの後の共通テキストが表示されます。
Examineコマンドの引数の説明については、Puzzleコマンドの説明を参照してください。構文と意味は同じです。
構文:FlyCheat=ENABLED/DISABLED[Options]セクションで使用する。
ララが空を飛ぶためにD O Z Yと入力するのを有効または無効にする。
通常、このオプションは、レベルのすべての部屋の構造(とテクスチャ!)を容易に確認するデバッグフェーズでしか使えません。
レベルを配布する前に、常にこのコマンドをDISABLEDに設定する必要があります。
[Level]セクションで使用する。
現在のレベルのフォグの色を設定します。
霧の電球とは違って、Script.txtのFOGは霧の効果をレベル全体で有効にしますが、霧は広い空間でしか見えません。
霧は周りが黒い非常に遠いゾーン(18スクエア以上)に適しています。
引数
1 - 霧の赤の強さ(「210」)
2 - 霧の緑の強さ(「176」)
3 - 霧の青の強さ(「99」)
備考:
ゲーム中の霧を見るには、(霧の電球とは違って)Volumetric FXを無効にする必要があります。(!)
[Level]セクションで使用する。
Horizonを現在のレベルで使用するように設定します。
ENABLEDを設定すると、地平線が表示されます。
DISABLEDを設定すると、Horizonは使用されず、レベルの周りは黒色になります。
[Options]セクションで使用する。
ゲームのフレームレートを設定します。
引数はFrames *秒として計算されます。
例えば、18000 = 60×30(毎秒30フレーム)
高すぎるフレームレートを使用すると古くて遅いコンピュータには問題があるため、この値を変更しない方が良いです。
構文:Key=NumberOfKey,NameInInventory,TopBorder,DistanceFromCam,Orient_X, Orient_Y, Orient_Z, RotationFlag[Level]セクションで使用する。
引数とその意味はPuzzleとExamineコマンドと同じですが、この場合はパズルアイテムの代わりにキーを記述します。
引数の説明については、「PuzzleCombo=」コマンドを参照してください。
構文:KeyCombo=NumberOfCombo,NumberOfPart, NameInInventory,TopBorder,DistanceFromCam,Orient_X, Orient_Y, Orient_Z, RotationFlag[Level]セクションで使用する。
キーの一部についてのデータを設定する。PuzzleComboのように機能しますが、パズルアイテムの代わりにキーアイテムの一部を記述します。
引数の説明については、PuzzleComboコマンドを参照してください。
構文:Layer1=Red,Green,Blue,SpeedHorizon=ENABLEDのときに[Level]セクションで使用する。
このコマンドは、空のテクスチャの色と空のテクスチャの動きの速度を設定します。
引数
1 - 赤色(「160」)
背景の空色のために赤の強度を設定する。
2 - 緑色(「150」)
背景の空色のために緑の強度を設定する。
3 - 青色(「192」)
背景の空色のために青の強度を設定する。
4 - 空のテクスチャの速度の動き(「7」)
範囲の値:-16 から +16
負の値を使用すると、アニメーションの動きが反転します。
[Level]セクションで使用するには{Name=}ステートメントの後に追加します。
現在のレベルの開始時に表示されるテキストを設定します。
このメッセージは約4秒間表示されます。
このステートメントはオプションです。
構文:LensFlare=OrigX,OrigY,OrigZ,Red,Green,Blue[Level]セクションで使用する。
これは、太陽をカメラで見たような光効果を作り出すために使用されます。
注:ヌルメッシュオブジェクトLensFlareと同じ名前であるにもかかわらず、このコマンドは異なります。
引数
1 - X軸の反射座標
2 - Y軸の反射座標
3 - Z軸の反射座標
4 - 反射光の赤色強度
5 - 反射光の緑色強度
6 - 反射光の青色強度
座標の値を設定するには、LoadCameraの設定と同じ方法を使用することをお勧めします。(F1キーを使用して試行錯誤が必要です。)
構文:Level=FileName, NumberOfCdTrack[Level]セクションで使用する。
引数
1 - レベルファイル(「DATA\KARNAK」)
拡張子TR4のないTR4ファイルのパス。
2 - デフォルトオーディオトラック(「110」)
現在のレベルのデフォルトの背景音として使用するAudioフォルダのNNN.wavファイルの番号
[Level]セクションで使用する。
空に雷(音)と雷(白い点滅)を有効または無効にします。
嵐があるレベルでこの効果を有効にします。
カメラの位置を設定して、ゲームの「ロードゲーム」画面で使用するイメージを作成します。
[Level]セクションで使用する。
引数
1 - ゲームユニット内のカメラのソースX位置(76406)
2 - ゲームユニット内のカメラのソースY位置(-3880)
3 - ゲームユニット内のカメラのソースZ位置(40584)
4 - ターゲット(カメラが見ている場所)X位置(75794)
5 - ターゲットY位置(-3220)
6 - ターゲットZ位置(40328)
7 - カメラが置かれている部屋の数(23)
F1キーを押します。引数が画面左上隅に表示されます。
Script.txtファイルにその数字をコピーしてください。
備考:
(1)F1機能は、Script.txtにFlyCheat=ENABLEDコマンドがある場合にのみ機能します。
(2)同じ[Level]セクションに2つのLoadCameraコマンドがある場合、ゲームは2番目のLoadCameraコマンドを使用して、セーブデータの読み込み画面を表示したり、ララが死んだ後のリロード画面を表示します。
おそらく最初のLoadCamera=は次のレベルにジャンプするFinishトリガなどいくつかの状況で使用されますが、わかりません。
[Options]セクションで使用する。
ゲームのロード/セーブ操作を有効または無効にします。
このコマンドでDISABLEDを設定すると、プレイヤーはゲームを読み込んだり、ゲームを保存したりすることができません。
このコマンドは、すべてのレベルで機能するため、あまり役に立ちません。
奇妙なことに、理論的に可能なのは、ゲームを保存するためのピックアップアイテムを[Level]セクションに設定して、プレイステーションのトゥームレイダー3のように、プレイヤーがブルークリスタルを拾った後にのみ保存できることです。
[Level]セクションで使用する。
Mirror効果を設定します。
引数
1-RoomNumber。これは、ララが鏡を見ることができる部屋番号であり、鏡の前の部屋です。
2 -XOriginRoomBy1024 = ルームエディタのX座標の計算値。
この数字は16進形式です。
X座標は、[3D]パネル上で床を選択した際にRoom Infoに表示されます。
Mirrorコマンドに入力するには、X座標に1を加えた後、その合計に1024を掛ける必要があります。
例えば、鏡の前の部屋のX座標が12(10進数)とすると、
次のように16進数を取得します。
12 + 1 = 13
13 * 1024 = 13312
13312 =(16進数で変換)$3400
備考:X座標は、鏡の前の部屋の左上隅でなければなりません。
構文:Name=NameForNewGameScreen備考:[Level]セクションの始めに使用する。
レベルの名前を設定します。この名前はSelect Level画面に表示されます。
Script.txtファイルでこの名前を変更する場合は、English.txtファイルの名前も変更する必要があります。
[Level]セクションで使用する。
引数とその意味はPuzzleとExamineコマンドと同じですが、この場合はパズルやキーアイテムの代わりに一般的なPICKUP_ITEMを記述します。
引数の説明については、PuzzleComboコマンドを参照してください。
構文:PickupCombo=NumberOfPickup, NumberOfPart, NameInInventory,TopBorder,DistanceFromCam,Orient_X, Orient_Y, Orient_Z, RotationFlag[Level]セクションで使用する。
Pickup可能な(パズルではない)アイテムの一部に関するデータを設定する。PuzzleCombo=のように機能しますが、パズルアイテムの代わりに、一般的なPICKUP_ITEMの一部を記述します。
引数の説明については、PuzzleComboコマンドを参照してください。
構文:PlayAnyLevel=ENABLED/DISABLED[Options]セクションで使用する。
プレイヤーが任意の順序でプレイするレベルを選択できるかどうか、またはゲームがScript.txtファイルの最初のレベルから自動的に開始するかどうかを設定します。(もちろんtitle.tr4レベルを除く)
初心者の間違いは、このコマンドをENABLED設定にすることです。
レベル作成者は有効にしても役立ちますが、レベルを配布するときは、常にこのコマンドをDISABLEDにしてプレイヤーが最初のレベルから開始して最後に達すると次のレベルに進むようにする必要があります。
[Level]セクションで使用する。
入手可能なアイテムのデータを設定します。
引数の説明については、PuzzleComboコマンドを参照してください。
引数は同じですが、唯一の違いはPuzzleコマンドに「オブジェクトの一部のインデックス」引数がないことです。
[Level]セクションで使用する。
現在のレベルで使用するパズルコンボオブジェクトのデータを設定します。
注:コンボは複合オブジェクトで、2つ以上の部分からなる形式です。
それを使用する(Puzzle_Holeに入れる)前に、異なるパーツを組み合わせます。
引数
1 - オブジェクトのインデックス(「1」)
この番号は、WADファイルのPUZZLE DONEオブジェクト名と同じです。
例えば、現在のコンボパズルがPUZZLE_ITEM4に対応している場合、このフィールドには数字「4」が入力されます。
また、他のコマンド(Pickup、Key)でも、同じルールで値を設定します。例
PUZZLE_ITEM3はこのフィールドに「3」を入力します。
KEY5はこのフィールドに「5」を入力します。etc.
2 - オブジェクトの一部のインデックス(「1」)
例えば、このコンボアイテムが3つの部分を持つ場合、Script.txtには3つのPuzzleComboステートメントがあります。
最初のPuzzleComboでは、パーツのインデックスは「1」、2番目の「2」、3番目の「3」になります。
3 - オブジェクトの名前(「Sun Disk」)
この名前は、プレイヤーがこのアイテムを入手したときにインベントリに表示されます。
Script.txtでオブジェクト名を変更する場合は、English.txtも同じ変更をする必要があります。
他のLanguage.txtファイルについては、同じ名前を持つ必要はありませんが、Script.txtとEnglish.txtのオブジェクト名は常に同じ名前でなければなりません。
以下の16進数の6つの数字は、インベントリのオブジェクトの見え方を設定するためです。
$0000,$0180,$0000,$0000,$0000,$0002
説明しやすくするため、名前を付けます。
番号A、番号B、番号C、番号D、番号E、番号F
4 - 番号A($0000)
画面の上端からの位置。(ピクセル単位)
備考:必ずしもオブジェクトの起点が左上の視点とは限りません。原点は3D構造のオブジェクトの位置によって異なります。このため、オブジェクトを他のインベントリオブジェクトと同じ高さにするために、この番号Aを増減します。
負の数も挿入できますが、16進数で入力する必要があります。例えば、-10(上端に10ピクセル)を設定するには、数値$FFF6を入力する必要があります。
5 - 番号B($0180)
(仮想)表示カメラからの距離
この引数は、インベントリ内のオブジェクトのサイズを増減するのに便利です。
距離を伸ばすと、オブジェクトは小さくなります。
距離を縮めると、オブジェクトは大きくなります。
この値はゲーム単位で表しています。(1スクエア=512単位)
例えば、値$0200(小数点以下は512)を設定すると、表示カメラから1スクエアの距離にあるようにオブジェクトが表示されます。
このフィールドに$0000を設定すると、オブジェクトは表示カメラの前にあり、スクリーン全体をカバーするため、オブジェクトは巨大になります。
通常は、この範囲内の値を使用します。$0200 - $0500
6 - 番号C($0000)
この引数は、表示カメラのX軸の向きを設定します。
説明するのは複雑ですが、この値を変更しようとすると、Paolone氏が意味することを理解できます。
この引数の値は$0000から$FFFFまでですが、通常は4つの値しか使われません。
$0000 = 北(上から見た図)
$4000 = 東(右図)
$8000 = 南(下から見た図)
$C000 = 西(左図)
7 - 番号D($0000)
Cナンバーと同じ意味ですが、Y軸に関係しています。
8 - 番号E($0000)
CとDの数字と同じ意味ですが、これはZ軸に関するものです。
9 - 番号F($0002)
特殊機能を有効/無効にするビットマスク。
$0002 = オブジェクトの回転を有効にする。
$0008 = わかりませんが、オブジェクトの回転中心が境界ボックスの中心にくるように強制します。
[Level]セクションで使用する。
RemoveAmulet=ENABLEDの場合、現在のレベルのQUEST_ITEMをインベントリから削除します。
構文:ResetHUB=NumberOfLevel[Level]セクションで使用する。
ゲームエンジンにララやサイドカー、ジープなどのデフォルトメッシュを再ロードさせます。
次のレベルのララに異なるメッシュ構造がある場合は、このコマンドを使用する必要があります。
引数
1 - 最初のレベル番号は、必要な再ロードララメッシュ(「3」)です。
例えば、レベル2では少女ララを使用し、次のレベル3では成人ララを使用すると、レベル2の[Level]セクションに次のコマンドを入力する必要があります。
ResetHUB=3
第3レベル(次のレベル)をロードする前に強制的にリロードします。
備考:
異なるテクスチャ(スキン)は、ResetHUBコマンドを必要としません。
[Level]セクションで使用する。
現在のレベルで内部カットシーンを宣言します。
引数
1 - 内部カットシーンのインデックス(「1」)
このインデックスは1から始まります。
2 - 部屋番号(「5」)
カットシーンを開始する部屋番号。
[Level]セクションで使用する。
Race For The Irisで使用されたタイマーを有効または無効にします。
備考:
画面上でタイマーを開始するには、以下を行う必要があります。
- レベルにVon Croyオブジェクトを配置。[Options]セクションで使用する。
紹介画面の背景としてtitle.tr4レベルを使用するかどうかを設定します。[Level]セクションで使用する。
Train効果を有効/無効にします。
Train効果では、列車の動きを表現するため地平線が動き続けます。
[Level]セクションで使用する。
UVスクロールテクスチャの速度を設定します。
引数
1- スピードテクスチャアニメーション(「8」)
明らかにこの数字は1バイト。(8ビット)
これは、書き込み-2または254が同じ結果を持つことを意味します。
範囲は-16 +16で囲まれているようです。
numberが負の場合(または127より大きい場合)、アニメーションの方向が反転されます。
備考:
以前のバージョンのTRNGドキュメンテーションでは、このコマンドでは、WATERFALLのテクスチャの速度にどのように影響するかが間違って説明されていました。現実には、このコマンドはWATERFALLのテクスチャには影響しませんが、レベルの床/壁に適用されるスクロールテクスチャのみに影響します。
WATERFALLのテクスチャの速度を変更したい場合は、このスクリプトコマンドを使用できます。
Customize=CUST_WATERFALL_SPEED,NewSpeed
NewSpeedは負の値で、スクロールの速度を設定します。
詳細は、NG_Center[Reference]のCUST_WATERFALL_SPEEDコンスタンツも参照してください。
[Level]セクションで使用する。
現在のレベルで少女ララを使用することをゲームエンジンに「知らせる」ために使用されます。
少女ララは成人ララ(少女ララは武器を持たず、彼女はおさげが2つ、成人ララは1つしかありません)と非常に異なっているので、ゲームエンジンに助言する必要があります。
試してみたい方は、ここに未知のスクリプトコマンドのリストがあります。
Weather=
[Level]セクションで(おそらく)使用する。
script.exeに「rain」や「snow」のような魔法の言葉がないので、おそらくENABLED/DISABLEDで動作します。
備考:このコマンドは、次世代エンジンでは削除され、いくつかのコマンドで代用されています。
StarField=
その名前から、夜の空を星と見なしているように見えますが、どう動くのかわかりません。
Layer2=
引数の構文はLayer1=と同じですが、違いは何ですか?
Security=
このコマンドは[Options]セクションにあり、値は常に$55(10進数で85)です。
しかし、この番号は何ですか?
たぶん、武器無制限のような他のチートを有効/無効にすることを考慮しています。
あるいは、チェックサム計算でのsavegameの検証を実行するために使用されていますか?
謎です…。
Pulse=
おそらく構文は次のようになります。
Pulse=ENABLED/DISABLED
NoLevel=
これは非常にうんざりですが、このコマンドは、TR4で実際に使用されています。
使用されたのは[Level]セクションです。
[Level]
Name=Yes
NoLevel=ENABLED
Level=A,0
次の値またはそれらの合計を使用して、同時に異なる機能を有効にすることができます。
1 =ボートの前にライトを表示する。
+2 =ボートはヘビートリガを有効にできません。
+4 =ボートはララトリガを有効にすることができません。
備考:「ララ」トリガについては、トリガがララによって活性化される可能性があることを意味します。
値2と4について、この制限を使ってゲームで興味深い状況を作成することができます。例えば、フリップエフェクトトリガを使用してWaterルームの底をカバーすることができます。
Lara. Kill Lara in <&>way -> Default death(vitality=0
共通の「トリガ」をトリガタイプとして使用する。
次に、あなたはモーターボートに値4(ボートは「ララ」トリガを有効にすることができません)を設定します。
さらに、その水に危険な外観(例えば溶岩のようなもの)を与えると、
今、ララは危険な水に直接入ると殺されますが、モーターボートを使って水を渡ると、モーターボートは水の底の共通の「トリガ」をトリガしないため、生き残ります。
これはほんの一例であり、他の興味深い組み合わせは少しのファンタジーを使って作成することができます。
+8 =「見まわす」機能を有効にする。
+16 =ボートを「燃料なし」に設定します。このような状況では、ボートエンジンのスイッチは不可能になります。このボートを停止または復元するには、TRNG変数トリガを使用してゲーム時間にボート内のこのOCBを設定またはクリアすることができます。
+32 =自動燃料管理。このフラグがあると、TRNGはLocal Long Delta変数を使用して燃料の現在値を検出します。デルタが0の場合、ボートは「無燃料」モードになり、作動しません。デルタがゼロ以外の値を持つと、ボートは機能します。あなたはデルタ変数の燃料を変更するために変数トリガを使用することができます。とにかく、TRNGはデルタ変数の値をエンジンボートが作動しているごとに減少させることを忘れないでください。
+64 =ボートを「アンカー」に設定します。この状況では、エンジンは機能しますが、ボートは現在の位置から離れることができません。
+128 =燃料バーを画面に表示します。このフラグは、32(自動燃料管理)と一緒に動作します。OCB 128 + 32では、ララがボートを運転している間、現在の燃料を表示する燃料バーが画面に表示されます。ティルトグレード(0/63)
------------------------
ティルトグレードは、現在のブリッジの勾配のレベルです。
斜面の方向にある2つの対向する辺の差についてのクリック数です。
例えば、0 =フラット(傾きなし)、1 =反対側の1つのクリック、4 =両側の間が1セクター(4つのクリック)など。
備考:Tilt GradeはBRIDGE_CUSTOMオブジェクトに対してのみ機能し、他のBRIDGEオブジェクトでは、タイル要素の名前に傾斜が使用されます。BRIDGE_FLAT=Tilt0、BRIDGE_TILT2=Tilt2
ハンギングを有効にする(64)
----------------------------
断片化されたトリガゾーンの境界の端にララがハンギングするのは良くありません。彼女は凍りつくだろうし、いくつかのダイナミックなアクションでは、彼女は荒々しくブリッジに投げつけられるだろう。
これらの問題をすべて回避するため、すべてのブリッジオブジェクトに対してハンギング機能が無効になっています。
とにかく、いくつかのブリッジでそれを新たに有効にしたい場合は、そのOCBフィールドに64を追加するだけです。
Paolone氏は、一般的な二乗ブリッジ(条件付きトリガなし)に対してのみ、またはプレイヤーが他の反対側でハングしようとしなかったことを期待して、1つまたは2つの辺がゲームセグメントのグリッドと同じブリッジを追加することをお勧めします。(ゲーム計画のトリックを使ってこれを禁止するべきです)
スライドを無効にする(128)
---------------------------
デフォルトでは、傾きの等級が2以上(3から無限)までのとき、ララはそのゲームセクターで滑ります。(スライドします)
ブリッジを使用すると、傾きグレードのスライドを無効にすることができますが、状況によっては非現実的なように見えます。
実際には、このOCBは、傾き3以上のBRIDGE_TILT3、BRIDGE_TILT4、BRIDGE_CUSTOMで使用することができます。
このOCBを使うと、ララはこの斜面の橋で普通に歩くことができます。
Paolone氏は、階段のように45度(傾斜4クリック)の傾きが正常で、ララのような人が歩き回ることができるように、目に見える理由がある場合にのみ、この機能を使用することを提案します。
ブリッジの厚さ(1/255に256を乗じたもの)
----------------------------------------
ブリッジの厚さは重要です。ララがブリッジの下にいるとき新しい天井をシミュレートする役割と、ブリッジの上面と下面の間の壁を設定された厚さで作ることができるからです。
魚の数
------
OCBフィールドで設定する主な値は、魚の数です。
1から127の数値を入力できます。
魚の数はあまり多くしないでください。レベル全体の魚の最大数は「128」です。
魚はLITTLE_BEETLEのリソースの一部を使っているので、この数量はLITTLE_BEETLEにも影響が出ることを覚えておいてください。
魚の群れの代わりに別々の魚を使用する場合は、16匹または32匹で広い水域を埋めることができます。
備考:
*OCBフィールドで0にすると、TRNGはララを攻撃しようとする8匹の魚の群れの設定を使用します。
*イナゴやスカラベと魚の相違は、灰色のボックスを認識することができることです。
灰色のボックスを使用すると、水域の一部へのアクセスを禁止することも、StaticまたはMoveableの存在を識別することもできます。
実際には、床、壁面、天井のみの衝突をチェックすることを覚えておく必要があります。そのため古い船のようなものを水の中に入れ、船の下に灰色のボックスを置くと、魚はそれを横切るかわりに周りを回ります。
スローフィッシュ(128)
-----------------------
値128を加えて、魚をゆっくりと動かすことができます。
プールや水槽のような狭い空間でこの値を使うと非常に便利です。Fish and Pirahnaのデモの水槽も参照してください。
フレンドフィッシュ(256)
-------------------------
魚を装飾的な使い方をする際に使用します。
OCBに値256を追加すると、魚はどんな場合でもララを攻撃したり傷つけたりしません。
個々の魚(512)
---------------
魚は群れでなく別々に泳ぎます。
魚が群れでいるとき、彼らは群れのボスを中心に狭いスペースに留まろうとします。
群れを利用する利点は、ララが水の中に入ったとき、攻撃的な魚の群れが非常に早く移動することです。
広い水域では、魚が広いスペースに分散されるように群れを無効にするほうがよいでしょう。
魚の種類
--------
すべての魚が常に同じ外観を持つトゥームレイダー3とは異なり、TRNG Fish Emitterでは4種類の魚の中から選択できます。
ピラニア(+1024)
クラウンフィッシュ(+2048)
バタフライフィッシュ(+4096)
エンジェルフィッシュ(+8192)
「魚の種類」と魚の動作を混同しないでください。
例えば、あなたは友好的なピラニアまたは攻撃的なクラウンフィッシュを設定することができます。
魚の種類は魚の外観だけを設定し、その動作は設定しません。
備考:同じFish Emitterに2種類以上の魚を追加することができます。この場合、Fish Emitterは異なる種類の魚を同じ量、生成します。
例えば、次のようにタイプすると、OCB = 2048 + 8192 + 8 =(クラウンフィッシュ + エンジェルフィッシュ + 8匹の魚)= 10248
Fish Emitterは4匹のクラウンフィッシュと4匹のエンジェルフィッシュを生成します。
ジャンプフィッシュ(16384)
---------------------------
魚がランダムに水から飛び跳ねます。
この設定を使用する場合、魚が水から飛び跳ね、地面で死なないように注意してください。
このリスクを回避するには、少なくとも水の周りに少なくとも4クリックの高さの壁を作成します。
もう一つの方法は、水の深さが2クリック未満のとき、魚はジャンプできないので、水の部屋の周りに、2クリック未満の浅瀬を作成します。
備考:「Fish and Pirahna」のデモをチェックすると、レベルの開始時に熱帯魚が少し頻繁に飛びます。これは、ジャンプを可能にするのに十分な深さ(2クリック以上)の水面があるが、水の中間の高さが非常に低い場合に発生します。これはデモレベルで使用された沿岸の状況でした。とにかく、あなたが深い水を作成する場合、デモレベルのようではなく、魚はめったにない状況で飛び出します。これは魚が水面に近すぎる(1クリックで)ときだけジャンプしますが、非常に深く、魚は非常に頻繁に飛び出すには深すぎる水になります。
ティミー・フィッシュ(32768)備考:
* Hydrasのカップルで作業するときは、TRNGが南向き(NGLEビューで)で開始されるため2体が向き合うことはできません。
* OCBの2と1を省略すると、Hydraは単一のオブジェクトのように機能し、プロジェクト内での向きと位置を維持します。
ミサイル型OCB
-------------
ミサイルはララに命中させるためにヒドラが撃った活力のあるボールでなければなりません。
以下の値のうちの1つだけを選択し、カップル設定のために「さらに」「1」または「2」を追加します。
0 OCB(ミサイル0)
ミサイルタイプに意味のある値を追加しない場合は、最初のミサイルタイプを選択します。
ミサイル0は、緑色のエネルギッシュなボールです。それはララに少しのダメージを与えます。(衝撃波)
256 OCB(ミサイル1)
グリーンエネルギーを与えるボールですが、これはララを燃やします。
512 OCB(ミサイル2)
黄色エネルギーを与えるボール。ほとんどダメージを与えない。
768 OCB(ミサイル3)
エナジャイズボール。リトルダメージ。このボールは少しカーブしララに達する。
1024 OCB(ミサイル4)
エナジャイズボール。ほぼ768OCBと同じですが、この場合ボールは湾曲しません。
1280 OCB(ミサイル5) イエローボール、ダメージはほとんどありません。
1536 OCB(ミサイル6)
火の玉。これはララを燃やします。
1792 OCB(ランダムミサイルタイプ)
ミサイルタイプのように1792を設定すると、TRNGはミサイルタイプをランダムに選択します。
これは、同じヒドラの同じ種類で、異なる種類のミサイルを撃つことができることを意味します。
プレイヤーは、最も危険なボールであるミサイル1(緑色)とミサイル6(ファイアボール)を色やレイアウトで認識することができます。
他のOCB設定
-----------
2048 OCB(火災を無効にする)
ヒドラは、エネルギーを与えるボールを撃つ前に、少しの火を示します。
この火はそれほど美しいものではありません。なぜなら、それはヒドラの体の不思議な姿勢で示されるからです。とにかく、ショットがすぐに来たときにプレイヤーが理解するのに役立ちます。
値2048をOCBに追加すると、小さな火災は表示されなくなります。
OCB 2 =カヤックに飛び乗るアニメーションを受け入れる。
-------------------------------------------------------------
デフォルトでは、トゥームレイダー3の冒険の元のコードを使用して、ララは浮遊(水上)の位置からのみボードに乗ることができました。
舟に乗る他の方法を失うことは問題です。なぜなら、カヤックが低水域にあるときはララは新しいカヤックに乗れないからです。そしてこうした理由から、カヤックを永遠に失うリスクを避けるため、(低水域にある)カヤックから降りることが禁止されています。
MudubuのTR3レベルは、潮流(シンク)の使用のように、悪い位置でカヤックから出ることをララに禁じるために、常に深い水やその他のトリックを持つように作られていました。
とにかく多くの異なる環境でカヤックを使いたいと考えています。このため、別の状況でボートから降りることができるので、他の方法を取ることは有益です。
Paolone氏はカヤックオブジェクトにカスタムアニメーションを作成できないので(このオブジェクトはkanak.wadのhttp://www.TrLevelManager.eu/ng.htmのdemosセクションにあります)、ジャンプしてボードに入るアニメーションはありません。とにかく、このカスタムアニメーションをもう一度追加するチャンスを作ります。
上記の演説を説明するもう一つの方法はこれです。あなたが舟に乗る新しいアニメーションを追加しない場合、カヤックは深い海でのみ使用する必要があります。低水域や地上のような他の環境では、カヤックを数多くの状況で離れることができないので、それを理解できないプレイヤーは、イライラする可能性があります。
2階からカヤックにジャンプするためにカスタムアニメーションを作成する場合、次の操作を実行する必要があります。
1)KAYAK_LARAスロット用のカスタムアニメーションを作成するには、次の機能を使用します。
これらのデータを使用してアニメーションを作成します。
開始位置
LARAスロットのアニメーション77のフレーム39のポーズ
Paolone氏は水平方向の速度や正確な下降角を知ることができないので、位置については完璧なマッチングはできません。とにかくララをカヤックオブジェクトの原点Yより約150単位上に置き、配置する位置はあなたのアニメーション33を実行する前に、カヤックの中心より-80引いた位置である位置に、ララは次の位置に移動します。
ララX =カヤックX
ララY =現在のララY(Y座標の変更なし)
ララZ =カヤックZ - 80
向きについては、アニメーションを実行する前にカヤックと同じにする必要があります。
ララの衝突ボックスがカヤックの衝突ボックスに触れ、ララの位置がカヤックの座席に適合したときにアニメーションが開始されることに注意してください。
提案は、LARAスロットのAnimation77で見られるような動きの速度を使用して、垂直方向に長い移動を実行することです。例えば、階下に200単位、前方に約80単位移動します。
最終的な位置
KAYAK_LARAスロットのAnimation3のフレーム176の位置とポーズ
向き
ララはカヤックと同じ向きにすべきです。
備考:とにかく、ゲームでは、+/- 20度の僅かな差しか認められません。
AnimationEditorデータ
Slot=KAYAK_LARA
Animation33(新しいアニメーションを追加する必要があります)
StateID=4
Next Animation=4
2)KAYAKスロット用のカスタムアニメーションを作成する。
ララが乗り物を運転するとき、2つのスロットのすべてのアニメーションが働いているため、アニメーションの各組み合わせ(2つのスロットのアニメーションの数が同じ)は常に同じフレーム数を持つ必要があります。
Animation5をKAYAKスロットからコピーすることができます。
カヤックが短く揺れているので、ララが舟に飛び乗ったように使うことができ、Paolone氏の目的には良いことです。
次にKAYAKスロットに新しいアニメーションを追加し、Animation33の位置でアニメーションの上にコピーします。
KAYAK_LARAスロットで作成したAnimation33のフレーム数が同じになるまで、このKAYAKのAnimation33に空のフレームを追加することが重要です。
AnimationEditorで他のAnimation33と同じデータをこのアニメーションに設定します。
Slot=KAYAK
Animation33(新しいアニメーションを追加する必要があります)
StateID=4
Next Animation=4
3)カスタムアニメーションを有効にするために、KAYAKのOCBに値2を設定します。
このカスタムアニメーションのすべての管理はTRNGですでに処理されているため、アニメーションまたはTestPositionコマンドを使用する必要はありません。カヤックオブジェクトにOCB2を追加するだけです。
備考:カヤックのメッシュを参考にしてアニメーションを構築したいのであれば、WAD内のカヤックメッシュの向きがゲーム内とは逆になることを覚えておいてください。カヤックオブジェクトのAnimation16のフレームからカヤックの位置を取得すべきです。
OCB 4 =地上から船上に行くアニメーションを受け入れる。
-----------------------------------------------------
カヤックはラバーボートやモーターボートとは違って、ビーチに「駐車」できる地上でも動くことができるので、カヤックがビーチに乗っているときにはアニメーションを追加するのは面白いはずです。
この目的を実現するには、2つのカスタムアニメーションを作成し、それらを有効にするためOCBに4の値を追加する必要があります。
新しいカスタムアニメーションの導入に関する説明は、OCB 2の説明も読んでください。
あなたが地上からボートに乗るためのアニメーションを追加する場合は、ビーチにいるときにボートから降りることができる利点も得られます。
言い換えれば、これらのアニメーションが欠落しているとき、ララがビーチにいるとき、ララはカヤックから離れることができません。
以下は、2つのカスタムアニメーションを実現するための技術情報です。
左サイドから乗り込むアニメーション
開始位置
LARAスロットのAnimation103のポーズを使用してください。(どのフレームでも結構です)
位置については、以下のデータがカヤックの位置とは異なる点で計算されます。これらのデータはTestPositionコマンドと互換性があり、理解できない場合は、HelpフォルダのAnimationCommand.htmを読んでください。
XDistance= -280
YDistance= 0
ZDistance= +100
Facing= $4000(+90度)
最終的な位置
KAYAK_LARAスロットのAnimation3のフレーム176の位置とポーズ
AnimationEditorデータ
Slot=KAYAK_LARA
Animation34(新しいアニメーションを追加する必要があります)
StateID=4
Next Animation=4
右サイドから乗り込むアニメーション
開始位置
LARAスロットのアニメーション103のポーズを使用してください。(どのフレームでも結構です)
位置については、以下のデータがカヤックの位置とは異なる点で計算されます。これらのデータはTestPositionコマンドと互換性があり、理解できない場合は、HelpフォルダのAnimationCommand.htmを読んでください。
XDistance= +255(奇妙なことに、この値は左側の対称値(-280)とは違います。なぜなら衝突ボックスが非対称の位置だからです)
YDistance= 0
ZDistance= +100
Facing= $C000(-90度)
最終的な位置
KAYAK_LARAスロットのAnimation3のフレーム176の位置とポーズ
AnimationEditorデータ
Skot=KAYAK_LARA
animation35(新しいアニメーションを追加する必要があります)
StateID=4
Next Animation=4
カヤックアニメーション
KAYAK_LARAアニメーションと同じアニメーション数と同じフレーム数のアニメーションをKAYAKスロットにも常に追加する必要があります。
地上からの乗船はカヤックの回転を必要としないので、カヤックが常に静止しているカヤックスロットのAnimation16を使用して、KAYAK_LARAオブジェクトのAnimation34と35と同じ長さのフレームを追加します。
備考:TRNGはカスタムアニメーションを実行する前に理想的な開始位置に達するように自動調整を行います。これは、あなたのアニメーションの開始時にララの位置を意味する、それは常にカヤックとまったく同じ点になります。
OCB 4をカヤックに追加し、カヤックをビーチに駐車してから、左または右から入るようにしてください。この瞬間に入るアニメーションはまだ存在していないので、ララは、「missing go-in animation number XX」というメッセージとの整列フェーズの後に直ちに停止される。このようにして、カスタムアニメーションを実行する必要があるときに、カヤックに対するララの位置を知ることができます。
OCB 8 = NORMAL TRIGGERSを無効にする。
-------------------------------------
デフォルトでは、ララがカヤックに乗っているときは、通常はララは普通のトリガをトリガします。
このアクティベーションを無効にしたい場合はOCBフィールドに値8を加えることができます。この方法でカヤックのララはヘビートリガのみを処理し、普通のトリガは無視されます。
この機能は、水中で泳いでいるときにララにダメージを与えたいが、彼女がカヤックに乗っているときにこのダメージを避けることを許可したい場合にも便利です。
OCB 16 =有効なミスト
------------------
このOCBはトゥームレイダー3に存在する機能を再び有効にしようとしますが、TRNGではネイティブな方法では機能しません。
急な霧は、実際には水はありませんが、水をシミュレートするための滝で、カヤックの波をシミュレートするために使用される白い霧です。
急な霧は、カヤックが下に移動しているとき(その「舟先」は下を目指している)、床がカヤックに近づいたときにのみ働きます。
他の状況では、速い霧は常に無効になります。
ng.wadのSWITCH_TYPE1スロットに格納されているオブジェクトを使用すると、レベルのために動作するキーパッドを使用することができます。
キーパッドを使用すると、パスワード(キーコード)を必要とするドアを作成したり、レベルにあるエレベーターをカスタムトリガで制御することができます。
キーパッドはSWITCH_TYPE1スロットでうまく動作しますが、SWITCH_TYPE2と3でも動作するはずです。
SWITCH_TYPEオブジェクトのOCBウィンドウでは、キーパッドのように機能するためにOCBの次の組み合わせを設定する必要があります。
0-9999 =キーコード。これは、ララがスイッチを有効にするために入力する必要がある番号(暗証番号)です。
10001 - 10010 =キーコード番号に1000から10010の範囲の値を設定した場合、エレベーターのように単一のキーが必要です。この場合、OCBの数はユーザーが入力できる最大数を表します。例えば、10007を設定した場合、プレイヤーは最大7(1から7)の数字しか入力することができません。
この作業モードはエレベータに使用されますが、この方法を使用する他の機能には短時間でプレイヤーに異なる選択を許可する機能が追加されます。例えば、ドアを開くか、ララをテレポートするかを選択します。
+16384 =キーパッドスイッチに信号を送ります。このスイッチオブジェクトがキーパッドのように機能するには、この値をOCB番号に追加する必要があります。
いくつかの例
秘密コード「7153」を要求するキーパッドを持つには
7153 + 16384 = 23537
したがって、キーパッドのOCBコードに23537と入力する必要があります。
単一の番号を必要とするキーパッドを「1」から「4」の範囲で囲むようにするには
10004 + 16384 = 26388
この場合、OCBに挿入する番号は26388です。
備考:
単一キーのキーパッドモードについては、現在のところアクショントリガだけがあります。
Elevator. Move <#>elevator to floor number set in last keypad operation
それを使用することができますが、他の多くのものが短時間で追加されます。ゲームでは、エレベーターを動かすトリガは、プレイヤーが正しい値を挿入した場合にのみ実行されます。このサンプルでは、範囲「1」から「4」に囲まれた数字になります。
これが起きると、この数値は目標階としてエレベータを移動させるトリガによって使用されます。
備考:
*コードを見ると、明らかにジャンプ力の計算は、PARALLELBARオブジェクトのララに対する向きに従って変化します。すなわち、もしララが北から来た場合、OCBの値によってジャンプの飛距離が決定し、一方でララが反対方向(南)から来た場合、OCBは他の方法で計算され短いジャンプになります。OCBの値の通りに飛距離が出ない場合は、マップ内でPARALLEL_BARSを回転させて向きを変え、ジャンプの飛距離を調整してください。
元々のTR5のコードはこのように動作するようです。
*PB_PROGRESSIVE_CHARGEフラグを指定してPARALLELBARをカスタマイズすると、OCBで設定した値が連続したチャージ計算の開始点になります。
PB_PROGRESSIVE_CHARGEを使用すると、バーの周りを一周するたびに最終ジャンプのパワーがOCBだけ増加するため、この場合は大きすぎる値を設定しない方が良いでしょう。
計算は、現在のOCB(最小値)からOCBの最大値に10を掛けたもの(最大値)から始まります。
PUSHABLEオブジェクトはすべて、OCBフィールドに正しい値を設定するだけで、踏んだり、登ることができます。(NGLEでオブジェクトが選択されている間に、「O」キーを押します)
0-31 =オブジェクトの衝突の高さ。1クリック=1ユニット単位なので、PUSHABLEの高さ1セクター(4クリック)を設定するには、4を入力する必要があります。
このようにして高さ7セクターのPUSHABLEを作成することができます。
次の値を1つ以上を追加して、対応する機能を設定することができます。
32 =値32のPUSHABLEオブジェクトは、空に投げられる可能性があります。
この機能の使用には注意が必要です。
技術的理由から、TRNGは、移動可能な方向に沿って常に(正面に)押し込むことができるように、押す面を(直ぐに)回すことが必要です。
あなたのPUSHABLEは、側面に同じテクスチャを持って、上にシンメトリなテクスチャを持っていれば問題はありません。一方、ララがオブジェクトを空に押し込んだ時は、押した方向に従って正しい面にPUSHABLEが変わります。
この問題を解決する方法は2つあります。
- 4つの側面に同じテクスチャを持ち、上部のテクスチャに90度のステップで常に同じ回転を繰り返す画像を配置することができます。
-OCB512または1024を有効にして、ある方向(東西または南北)の移動を禁止し、正しい向きにレベルにPUSHABLEを配置し、投げられる可能性のある境界線を探します。
備考:PUSHABLEオブジェクトが落ちているとき、それはSHATTERオブジェクトを破壊し、死の生き物を殺すが、DEMIGODを倒すことはない。
64 =現在のPUSHABLEの新しいTRNG機能を有効にします。警告、それは非常に重要です。64の値を加えた場合にのみ、特別なOCB機能が動作するからです。
値64が欠けていると、次世代エンジンは現在のPUSHABLEのOCBを無視します。
この方法は、「Lost Library」に表示される惑星効果との互換性を可能にするために必要です。
惑星効果のためにPUSHABLEを使いたいときは、値が64であるOCBが入力されていないので、TRNGは惑星効果のPUSHABLEのOCBを無視するため、異なる5つのPUSHABLEオブジェクトに1から5の間のOCBだけを入力しなければなりません。
言い換えれば、次世代PUSHABLEに新しい特殊機能を使用する場合は、他のOCBに値64を追加する必要があります。
128 =引っ張るのを禁じる。
256 =押すのを禁じる。
512 =東西を禁じる。
1024 =南北を禁じる。
2048 =西に登る。
4096 =北に登る。
8192 =東を登る。
16384 =南に登る。
登る機能については、PUSHABLEの高さに少なくとも8クリックにする必要があります。(高さはOCBに設定する値として8クリック= 32単位)
備考:
*伝統的なPUSHABLEにしたいのであれば(tomb4の古いスタイル)、OCBに値64の追加を省略するだけです。1 =サイレントモード。
音と地震を無効にする。見えないローリングボールのトリックを使用して、より特殊なトリガを順番に有効にして、サウンドや画面が揺れるのを避けると便利です。
2 =敵を倒す。
ローリングボールは、動いている間に触れるすべてのクリーチャーを倒します。
4 =押すとアクティブ。
値4を追加すると、ララが押すとローリングボールがアクティブになります。
このような状況では、ローリングボールのトリガは必要ありません。
OCB 4では、平坦なセクター(傾斜していないセクター)にもローリングボールを置くことができます。境界セクターに傾斜があるだけです。
このようにして、ララはそれを動かす方向を選択することができます。
8 =プッシュとリカバリでアクティブ。
このOCBはOCB4のように動作しますが、この場合、ローリングボールを一度押すだけでなく、目的位置まで何度も押すことができます。
この方法を使用すると、ローリングボールを平らな(傾斜していない)床から、新しいスロープに達して転がすことができます。
注:また、このOCBにはアニメーション番号316が必要です。上記のOCB4の情報を参照してください。
16 =SHATTERオブジェクトを破壊する。
ローリングボールは、転がる先でSHATTERオブジェクトを破壊します。
32 =水の部屋との衝突を確認する。
ローリングボールが水の中に入るなら、OCB 32を追加することができます。
- 水しぶきをあげる
- 異なる物理的挙動を伴う水中移動のシミュレーション。
4 =衝突を無効にする。ララはStaticを渡ることができた。
8 =ガラス透過を設定します。Staticにはガラス透明効果があります。
16 =氷透過を設定する。Staticは、氷のような透明感を持ちます。
32 =物理的接触でのララのダメージ。彼女が触れるとStaticがララを傷つける。このダメージはララ(完全な活力= 1000)に10 HPを取り除きます。それでも、CustomizeスクリプトコマンドでCUST_SET_STATIC_DAMAGEを使用してこの値を変更できます。
備考:ララがStaticに触れている間、このダメージが連続的に適用されることを覚えておいてください。これは短時間でララを殺す可能性があることを意味します。
64 =物理的接触でララを燃やす。ララは燃えますが、とにかくララは水を探し出す時間が少しはあります。
128 =ララを物理的接触で殺して爆発させる。このOCBを使用すると、一種のMINEにこのStaticを変換できます。
備考:このOCBコードを使用する場合は、ララのアニメーション番号438をインポートしてください。これはnewcity.wadで見つけることができます。
あなたのレベルでこのアニメーションが見つからない場合、TRNGは爆発を実行しますが、ララは活力= 0のときに使用されるデフォルトの死のアニメーションで殺されます。
256 =ララを物理的接触で毒する。彼女がStaticに触れるとララは中毒になる。CustomizeスクリプトコマンドでCUST_SET_STATIC_DAMAGEを使用して毒強度を変更することができます。
512 =巨大な衝突。TRNGに、現在のStaticに6x6セクターより大きい衝突ボックスがあることを知らせます。デフォルトでは、tomb4は衝突チェックの速度を最適化するために6x6セクターより大きい衝突を無視しましたが、とにかく6x6を超える巨大なStaticを作成したい場合、OCBに512を追加するだけです。このようにして、Staticに36x36セクターまで衝突ボックスが発生する可能性があります。
1024 =ハードシャッター。古いtomb4では、SHATTERオブジェクトはスケルトンとテンプラーによってまたは他のすべての武器によって破壊されました。一部のSHATTERオブジェクトのOCBに1024を追加すると、その硬度を上げることができ、Staticは爆発的な弾薬(フラッシュ弾ではない)、SPHINX、JEEP、SIDECAR、ローリングボール(正しいOCBがある場合)によってのみ破壊されます。
2048 =ヘビートリガが接触しています。ララがOCB2048のStaticに触れると、Static下に置かれたヘビートリガがアクティブになります。
4096 =スケーラブル。このフラグを使用すると、現在のStaticサイズを拡大または縮小することができます。
OCBを入力すると、次の式で縮尺率を設定できます。
パーセンテージ * 4 + 4096
パーセンテージは1から1000の範囲の数値で、100 =元のサイズです。
例えば、1000を使用すると、Staticはオリジナルの10倍になります。1を入力すると、Staticは元のものより100分の1になります。
最大サイズについては、「10倍」は理論上の制限であり、メッシュスケーリングについては機能しますが、ビューボックスにオーバーフローが発生する可能性があります。この場合、アイテムは多くのポジションからゲームに表示されません。
この理由から、400%スケーリングを実行しない方が良い(すなわち4回より大きい)
重要:スケーラブルフラグを設定すると、以前の(値が小さい)フラグは無視されます。このフラグはスケーリングの割合を設定するためにOCBを使用する必要があるため、これは必要です。とにかく、このフラグは、次のOCBフラグが常に有効になっているかのように動作します。巨大な衝突(512)とヘビートリガ(2048)
備考:
*上記の値を追加することはできますが、2つの異なるタイプの透明度を追加することはできません。
例えば、Staticがガラスのようになり、衝突がない場合、OCBウィンドウに値(8 + 4 =)12を入力できます
その他の例。
ララを爆発させて彼女を燃やす爆弾にStaticを変換するには:64 + 128 = 192
備考:この時間が完了すると、以前の魚雷が破壊され、別の魚雷が発射されるため、3秒未満の数値(OCB=90)を入力することはお勧めしません。この理由から、あなたが短すぎる時間を使うと、ララがSUBMARINEに非常に近づきすぎてミサイルはララに命中することができなくなります。
発射時間に追加する他のOCB。
4096 =それは水中の外からミサイルを射撃することを可能にします。
デフォルトでミサイルは水面上で爆発し、水面から離れることがないようにします。
このカスタムTRNGアニメーション機能を使用する場合、アニメーション番号に1つまたは次のフラグを追加することもできます。
8192(オン/オフスイッチ)
---------------------------------
OCB「8192」を追加すると、オン/オフ(またはフリップ/フロップ)機能が有効になります。
この場合、2つのカスタムアニメーションを作成し、最初のアニメーション番号を入力する必要があります。
例えば、最初にスイッチを操作するカスタムアニメーションが386の場合は、8192 + 386をOCBに入力します。
スイッチオフ用アニメーションも作成する必要があります。すなわち386に続く387。
備考:
すべてのスイッチがオン/オフ機能を許可しているわけではありません。
オン/オフ機能を持つスイッチには常に4つのアニメーションが必要です。
それらは、通常、次のようになっています。
ヒント:JUMP_SWITCHのようなSWITCH_TYPE1/2/3とは異なるスイッチを見つけて、このオブジェクトをコピーしてSWITCH_TYPE1/2/3にリネームします。例えば、Guard.wadでは、JUMP_SWITCHに優れたオン/オフスイッチがあります。
4096(反対のStateID)
---------------------
上記のアニメーションテーブルを見て、それを他のスイッチと比較すると、特に、開始位置のStateIDが「1」(代わりに「0」)で終了位置のStateIDが「0」(代わりに「1」)と、StateIDが異なっていることがわかるでしょう。
この場合、スイッチにOCB「4096」を追加して、TRNGにStateIDのこの反転について通知する必要があります。
備考:フリップ/フロップ機能を使用していないときにも、このフラグを使用する必要があります。開始位置(または「オフ」状態)が「0」でなく「1」であるたびにこのフラグを使用する必要があります。
備考:オン/オフ機能を使用していないときにも、このフラグを使用する必要があります。開始位置(または「オフ」状態)が「0」でなく「1」であるたびにこのフラグを使用する必要があります。
オン/オフスイッチのオフ機能は、ドアやフリップマップを有効にする普通のトリガでは正常に機能しますが、何らかの方法でMoveableを移動または変更するような特殊なトリガでは機能しません。この場合、スイッチオブジェクトの現在のStateIDをチェックするTriggerGroupを作成し、この値に応じてスイッチオンまたはスイッチオフに対して異なるトリガを実行する必要があります。
次に、スイッチセクターでこのTriggerGroupのみを実行します。
ウェブサイトのデモセクションにある「New Mirrors」プロジェクトの例を参照してください:
http://www.TrLevelManager.eu/ng.htm
次に、この行をScript.txtファイルの[Level]セクションに追加する必要があります。
Enemy=TEETH_SPIKES, IGNORE, IGNORE, IGNORE, EXTRA_TEETH_NO_DAMAGE_ON_WALKING
EXTRA_TEETH_NO_DAMAGE_ON_WALKINGフラグは、TEETH_SPIKESがTR1スパイクのように機能することを意味します。OCB 0
-----
デフォルトモードを設定します。
値0では、TR5と同じように動作します。
このモードでは、プレイヤーはララがバランスを崩すと反対の方向を指定する必要があります。例えば、ララが右に落ちそうなとき、プレイヤーは矢印左を押す必要があり、その逆もあります。
OCB 1
-----
ハードモードを設定します。
値1では、ララが完全にバランスをとっている間にプレイヤーが左右のキーを押すと、ララが落ちる可能性があります。(デフォルトモードではOCB0で、TRNGは無駄な方向キーを無視しました)
ハードモードでは、プレイヤーはより早く正確にコマンドを入力しなければならず、ランダムなアンバランスが頻繁に発生する可能性があります。
OCB 2
-----
ベリーハードモードを設定します。
それは「ハードモード」のように機能しますが、この場合、ララのアンバランスを修正するために必要なレスポンス時間は「ハードモード」よりも速くなければなりません。
OCB 3
-----
不可能なモードを設定します。
このOCBではララはいつも落ちるでしょう。
このOCBを使用する唯一の理由は、TRNG変数を使用してOCBフィールドを2度目に変更したい場合です。
このようにして、何らかの理由で(雨、雪、風)、ララがタイトロープを歩くことができず、その後の変化(雨、雪、風のストップ)で新しくタイトロープを通過することができるような、ゲームのダイナミクスをシミュレートすることができます。
アイテムメモリで動作するTRNG変数トリガを参照してください。これらのトリガは、「Variables。Memory。.... Item Memory...」のテキストですべて始まります。
OCB -1
------
イージーモードを設定します。
デフォルトでは、WATERFALLMISTエミッタはOCBを受け入れませんが、TRNGでは、ミストを放出するためにOCBを追加することができます。
備考:
*OCBフィールドで「0」にすると、古いミストエミッタが使用されます。
* waterfallMISTとWATERFALL1 / 2オブジェクトを混同しないでください。エミッタはNGLEの赤い円錐ですが、waterfall1 / 2はスクロールテクスチャが適用された有効なオブジェクトです。
このように合計する値が異なるため、OCBフィールドに値を入力する式は少し複雑です。
(NumberOfBalls-1)+ EmitMode * 4 +(SizeBall-1)* 16 +(EmitDurate-1)* 256 + ColorIndex * 4096 + CenterSquare
上記の値の意味を理解するには、以下の説明を読んでください。
NumberOfBallsの値(デフォルト= 4)
----------------------------------
霧のために異なる発生源を持つことができます:1から4。
デフォルトのtomb4では、値は最大:4
これらのミストボールは、1つのセクターの側面を覆うように一直線に並んでいます。
線(または長すぎる線)を望んでいないが、より短いゾーンだけを希望する場合は、この番号を減らすことができます。(例えば、1または2)
EmitMode(デフォルト= 0)
-------------------------
この値は発生フェーズの周波数を設定します。
4つのプリセット発生モードがあるので、この値の有効範囲は0から3です。
0 =通常発生モード。これは、デフォルトのtomb4で使用されるものと同じです。それはライトスプレーのように見えます。
1 =低速発生モード。このモードでは、発生フェーズと次のフェーズとの間の休止時間が長くなります。
2 =高速発生モード。高速モードでは、発生はほぼ継続し、ミストボールは実際に密なボールのレイアウトを持っています。
3 =ランダム発生モード。ランダムな方法では、間隔は規則的ではありませんが、ランダムな方法で変化します。このモードは、浜辺や急流の波の霧をシミュレートするのに便利です。
SizeBall値(デフォルト= 12)
----------------------------
有効範囲は1から16です。
この値は、ボールの単一のサイズおよびボールのセリエの長さにも影響します。
デフォルト値は12です。
EmitDurate値(デフォルト= 6)
-----------------------------
デュレートの放出は、単一粒子の寿命です。
ほとんどの場合、時間は長くなり、ミスト効果が強くなります。
この値の有効範囲は1から16です。
ColorIndex値(デフォルト= 0)
-----------------------------
古いミストエミッタでは、色は常に同じ(薄灰色)でしたが、今度は次の表にしたがって8種類の色(範囲0/7)から選択できます:
R G B
0:ライトグレイ128 128 128
1:水色 128 255 255
2:イエロー236 252 19
3:白255 255 255
4:ダークグリーン15 93 76
5:赤255 0 0
6:青0 0 255
7:ライトグリーン0 255 0
CenterSquare値(デフォルト= 0)
-------------------------------
デフォルトでは、ミストラインはセクターの中心ではなく、赤い円錐の基部に近い側に表示されます。
スクエアの中心にミストを作成したい場合は、値32768を追加する必要があります。
だから、実際には、CenterSquareは以下のような値を持つことができます。
1番目のAI_FOLLOW =OCB1(移動させたいMoveableの下)
2番目のAI_FOLLOW =OCB1(Moveableが移動する場所)
3番目のAI_FOLLOW =OCB2(さらに移動させたい場所)
4番目のAI_FOLLOW =OCB3(etc)
2 =サウンドエフェクトMAPPER_PYRAMID_OPENを再生し、このオブジェクトが外の部屋にある場合は、霧の効果を有効にします。
備考:このオブジェクトはPulse=スクリプトコマンドの影響を受ける可能性があります。BADDY_1「Bob」のOCB1000
他のBADDY_1 OCB 2000
他のBADDY_1 OCB 3000
同じ部屋に他の敵(仮に「Richard」という名前とします。)が倒されたとき、他の敵が順に現れるようにするには、このようにOCBを2番目のシーケンスでは設定します。
BADDY_1「Richard」のOCB5000(分かりますか?「4000」ではなく「5000」です。「Bob」BADDY_1シーケンスの次の値+1000)左のドアで値269
右のドアで値276
異なる負の数は、多数のFlame Emitterを配置して同時に有効にした場合、それぞれの間隔を変える唯一の用法です。例えば、-5のような同じ負のOCBを持つ2つのFlame Emitterを、同時に有効にすると、同じ時間に水平の炎が放出されます。一方、-5と-8のような2つの異なる負のOCBを配置すると、2つのFlame Emitterは同じ時間に有効になりますが、噴出と休止時間に関するタイミングが異なります。
{正の数}=明らかに正のOCBは炎の形状に影響を与えませんが、とにかくこれらの値は実際には驚くような方法で使用され、「スケールされたスパイク」に従って有効な盛り上がりブロックが変更されます。これがPaolone氏がコードを勉強した結果ですが、Flame Emitter1のOCBがこの謎の「スケールスパイク」の立ち上がりブロックに影響することを理解するためには、実験が必要です。2 =円錐が向いている方向に炎を移動させる。
備考:この「動く」は単に炎の方向ではありませんが、炎は部屋の壁の後ろに消えるまで部屋の中を実際に動きます。火のようなリソースを継続的に浪費することを避けるために、火を水面まで動かすことをお勧めします。この火が水の部屋に達すると消えます。
例えば、FLAME_EMITTER3のOCBに「5」を入力し、ANIMATING3のOCBに「5」を入力します。このOCBは二股の稲妻を生成するので、常にOCB「0」の別のANIMATING3を配置する必要があります。
OCB 888、889、890
-----------------
これらのOCBは1.2.2.4バージョンのTRNG dllから追加されました。
これらのOCBを使って青い稲妻でララを攻撃することができます。
違いは、ララの症状です。
888 =ララを燃やし即死させる。
889 =ララを傷つけ、数秒後に殺す。
この値のダメージは、ララの乾燥具合に応じて変化します。
ララが水中にいるとダメージは非常に少なくなります。
ララが水面に浮いていると水中よりもダメージが多くなります。
ララが(水泳の後で)濡れていると、ダメージはさらに多くなります。
ララが完全に乾燥すると、ダメージは最大になります。
890 =ダメージはありません。エフェクトとしてEmitter3を使用したいときは、このOCBを使用します。
コードビット 1 =トーチに点火する
コードビット 2 =トラップを有効にする(下のように)
コードビット 3 + コードビット 5 =碑文を読む(読んだとき何かが起こるようにしたい場合は、AI_FOLLOWの下にヘビートリガを配置します)
コードビット 4 =ガソリンに点火する(上記)
コードビット 5 =トーチをつかむ
すべてのビットボタン...ガイドを消す。
備考:例
1 =トリガするために1回だけ引きます。0 =南を指す。
1 =南西を指す。
2 =西を指す。
3 =北西を指す。
4 =北を指す。
5 =北東を指す。
6 =東を指す。
7 =南東を指す。
8 =南を指す。
9 =南西を指す。
10 =西を指す。
11 =北西を指す。
12 =北を指す。
13 =北東を指す。
14 =東を指す。
15 =南東を指す。
16 + =上記に16の値を追加して、スパイクを常に突き出すようにすることもできます。(古いTRスパイクのように)
32 + =上記に32を加えると、スパイクが一度押し出され、その後はずっと引っ込んだままになります。
例:4クリックの高さまでゆっくり上げるには
(16 x 4) + 1 = 65
トリガタイプを「DUMMY」に設定します。例
31 =完全な赤
992 =完全な緑
31744 =完全な青
上記の値の一部を追加する(または強度の低いものを使用する)と、他の色を得ることができます。
例えば:
31 + 992 =(赤+緑)= 1023 =黄