32. メモリーゾーン
メモリゾーンの意味:
メモリゾーンには、ゲームの異なるプロパティが含まれています。:
- セーブデータメモリーゾーン:指定した物の量/存在がここに記録されているので、- プレイヤーがゲームをロードすると - セーブデータがちょうどロードされたときに、ゲームは物の適量/存在を知るでしょう。
- アイテムメモリーゾーン:動的オブジェクトのほとんどは数字で表すことができるいくつかのプロパティを持っています。その数字 - オブジェクトの実際の状態を表すプロパティ - は、ここに記録されています。
- コードメモリーゾーン:このゾーンは地震の実際の強度などのゲームのいくつかの特殊なプロパティを表しています。
- スロットメモリゾーン:WAD内の各動的オブジェクトのスロットは、そのスロットから配置されているオブジェクトそれぞれが同じ値を持ちます。このゾーンは、これらの一般的なスロットのプロパティの実際の値を表します。
- アニメーションメモリゾーン:動的オブジェクトのアニメーションのいくつかのプロパティがWADMergerのために知られており、それらのいくつかは知られていません。このフィールドは、これらの既知/未知のアニメーションプロパティの実際の値を表します。
- インベントリメモリゾーン:このゾーンは、インベントリに関するデータが含まれています。 (実際には、インベントリ内のアイテムについて。)
各メモリゾーンには、さらにフィールドがあります。各フィールドは、そのゾーン内の特定のプロパティを制御します。
変数/メモリゾーントリガを調べれば、メモリゾーンフィールドにいくつかの操作を行えることが分かるでしょう。 - それらの中で最も重要な操作:
- フィールドに変数の値を強制します。そのフィールドには、その値が入るので、(そのフィールドによって制御される)プロパティは、この新しい、強制された値で制御されます - すなわち、プロパティの値が変更されました。
- 変数にフィールドの値を強制します。その後、条件でその変数の値を検討すると、ゲームが変数の値に応じて物事を実行します:「値がXであれば、これとこれはそのフィールドに起こっているということを意味し、ゲームは物事A.を行います。しかし値がYであれば、それとそれはそのフィールドに起こっているということを意味し、そのフィールドに起こっていることなので、ゲームは物事Bを行います。」
理解するためにいくつかの例を見てみましょう:
各例は、別のフィールドを意味しています。
- セーブデータメモリーゾーン:
= 1800はララの水中エアバーが満タンの値です。バーに900を強制すると、バーが半分だけフルになります。
= ララの背中にある武器(ショットガン、クロスボウ、グレネードガン)の内、背中にある武器がショットガンであればその値は3です。だから、値を条件として検討し、それが3であれば、ショットガンがちょうどララの背中にあることがわかります。
- アイテムメモリーゾーン:
= 16384は(ルームエディタで)ララが正確に東に向いていることを意味します。なので、ララに16384を強制すると、ララは東を向きます、そしてララはその方向から向きを変えることはできません。
= -8192は、指定したエミッタから放出した炎が、ちょうど最大長(2スクエアの長さ)であることを意味します。なので、値を条件として検討し、それが-8192である場合、指定した炎がちょうどその最大長に達したことがわかります。
- コードメモリーゾーン:
= 4台のカメラ(追跡、カメラ/固定カメラ、見回し、戦闘)の内、動作しているカメラが見回しカメラであればその値は2です。だから、フィールドに値2を強制すると、何が起こるでしょう。:見回しボタンとカーソルキーを使用して見回しカメラビューを動かし、それらのボタンを離します。その後、追跡カメラを使用するとその位置は、それらのボタンで調整し終えたばかりの最後のカメラビューを維持します。(見回しボタンとカーソルキーがちょうどまだ押されているかのように。)
= 一部の古いスクリプトコマンドは、レベルの状態を意味しています。(Lightning = ENABLEDコマンドは、雷効果がレベルで働いていることを意味し、Layer1 = X、Y、Z、Aは空にレイヤ1があることを意味し、Train = ENABLEDはレベルが列車レベルであることを意味します。など)フィールドは、それらのステータスをフラグとして含んでいます。例えば、ホライゾンは4で、レイヤ1が8で、レンズフレアは2048なので、これらのステータスがレベルで有効である場合、そのフィールドの値は 4 + 8 + 2048 = 2060 です。フィールドに12を強制した場合、4 + 8 は変わらずに有効ですが、2048は無効になっていることを意味します。 - まるで、 太陽を持つすべての部屋に、NLボタンをオンにしただけのフリップマップした部屋を作成し、FLIPMAPトリガを有効にすると、それらの部屋の太陽が全てオフになるように。
- スロットメモリーゾーン:
= 160は、LARAスロットの影のサイズです。ララの影の大きさを変更したい場合は、ここでより小さい/より大きな数を強制します。
= shatter機能を制御するために、各メッシュにリンクされているビットがあります。Mesh0のためのビット0(1)、Mesh1のためのビット1(2)、Mesh2のためのビット2(4)など。SKELETONスロットでフィールドを研究して、値が 2560 = 512 + 2048 であったとすると、頭(Mesh9 、ビット9、512)と盾(Mesh11、ビット11、2048)が破壊出来ることがわかるでしょう。
- アニメーションメモリゾーン:
= ララに今後は指定したアニメーションのための新しいNext Frameを持たせたければ、Next Frameを制御するフィールドに新しいNext Frame IDを強制します。ここでのNext FrameはWadMergerのAnimation EditorのNext Frameのこと
= 前方への加速のために新しい値を強制するなら、条件で加速度値を検討することは価値があります。
- インベントリメモリゾーン:
= キー、パズルなどのアイテムを持っていて、キー、パズルなどを選択しました。スクリプトコマンドは、インベントリ内のアイテムのX-Y-Zの座標を定義するためのコマンドです。しかし、別のインベントリのアイテム(例えばメディパック大または小)を持っている場合、インベントリ内のアイテムのX-Y-Zの位置を変更するため座標のフィールドに値を強制する必要があります。
=(変数のインベントリメモリゾーンフィールド値を研究するための)F339のトリガはおそらく動作しません。
ご覧のように、実行可能またはCONDITIONトリガを定義するための直接的な方法を持っていない場合は、メモリゾーンフィールドはかなり便利です。
例えば、ララのプロパティを直接変更するために、複数のFLIPEFFECTトリガがあります。 - 上記のララの説明では。しかし、ララの影の大きさを変更したい場合は、メモリゾーンフィールドを使用する必要があります。
または:ララの持つ大きな水袋の水の量を知りたい場合。「Inventory. Big Skin Bag (Byte)」フィールドから、変数に実際の値を入れ、その値を検討するための変数に関するCONDITIONトリガを使用するのが唯一の方法です。
メモリゾーンに関するトリガ:
メモリゾーンの対象を定義するためのトリガ。
- A54は、アイテムメモリゾーンの対象として指定した動的オブジェクトを定義します。
- F292は、スロットメモリゾーンの対象として指定した動的オブジェクトのスロットを定義します。
- F307は、アニメーションメモリゾーンの対象として指定したアニメーションを定義します。 - 注:
= これらのアニメーションIDはいわゆる絶対的なアニメーションIDです。(なので、WADのすべての動的オブジェクトのすべてのアニメーションは、オブジェクトスロットIDの順に、次々とアニメーションIDが割り振られていきます。)
= メモリゾーンは、LARAオブジェクトのアニメーションでのみ動作すると思います。
- F335は、インベントリメモリゾーンの対象として指定したインベントリアイテムスロット(pickableアイテムまたはMEMCARD_LOAD_INV_ITEMなどのような特別なアイテム)を定義します。
だから、何かのためにそのゾーンのフィールドを使用する前に、アイテム、スロット、アニメーションまたはインベントリメモリゾーンの対象を定義する必要があります。(これは論理的です。つまり、例えば、スロットメモリーゾーン内のオブジェクトスロットを検証したい場合、その前に、そのスロットがどれであるかを定義する必要があるからです。)
セーブデータメモリゾーンやコードメモリーゾーンは、対象を持っていません。
メモリゾーンと他の数の間の値を強制するトリガ:
- 変数にメモリゾーンフィールドの値を強制するトリガ:
= F244は、セーブデータメモリゾーンから値を強制します。
= F256は、アイテムメモリゾーンから値を強制します。
= F277は、コードメモリゾーンから値を強制します。 (Current Valueにだけ。)
= F293は、スロットメモリゾーンから値を強制します。
= F295は、アニメーションメモリゾーンから値を強制します。
= F339は、インベントリメモリゾーンから値を強制します。 (おそらく動作しません。)
- メモリゾーンフィールドに変数の値を強制するトリガ:
= F245は、セーブデータメモリゾーンに値を強制します。
= F257は、アイテムメモリゾーンに値を強制します。
= F278は、コードメモリーゾーンに値を強制します。 (Current Valueからだけ。)
= F294は、スロットメモリゾーンに値を強制します。
= F296は、アニメーションメモリゾーンに値を強制します。
= F336は、インベントリメモリゾーンに値を強制します。
- メモリゾーンフィールドに(トリガによって定義された)数を強制するトリガ:
= F246、F247、F254またはF262は、セーブデータメモリゾーンに値を強制します。
= F255、F259またはF261は、アイテムメモリゾーンに値を強制します。
= F279、F281またはF342は、コードメモリーゾーンに値を強制します。
= F337またはF338は、インベントリメモリゾーンに値を強制します。
数学演算:
- メモリゾーンフィールド値にCurrent Value変数の値を追加するトリガ:
= F273は、セーブデータメモリゾーンに値を追加します。
= F275は、アイテムメモリゾーンに値を追加します。
= F283は、コードメモリーゾーンに値を追加します。
- メモリゾーンフィールド値からCurrent Value変数の値を減算するトリガ:
= F274は、セーブデータメモリゾーンから値を減算します。
= F276は、アイテムメモリゾーンから値を減算します。 (トリガ名は「Savegame Memory」を言及し、間違っています。)「Savegame Memory」は誤り。
- メモリゾーンフィールド値に(トリガによって定義される)数を追加するトリガ:
= F249は、セーブデータメモリゾーンに値を追加します。
= F258は、アイテムメモリゾーンに値を追加します。
= F280は、コードメモリーゾーンに値を追加します。
- メモリゾーンフィールド値から(トリガによって定義された)数を減算するトリガ。
F250は、セーブデータメモリゾーンから値を減算します。
- メモリーゾーンフィールドの値を0にします:
= F248は、セーブデータメモリゾーンから値を削除します。(値がビットである場合、すなわちそれは、値2の指数です。)
= F260は、アイテムメモリゾーンから値を削除します。(値がビットである場合、すなわちそれは、値2の指数です。)
= F282は、コードメモリーゾーンから値を削除します。(値がビットである場合、すなわちそれは、値2の指数です。)
CONDITIONトリガ:
- (変数を使用せずに、直接ゾーンの値を検討する)CONDITIONトリガには:
= C52:コードメモリゾーンフィールドの実際の値は、値2の指数である「ビット」の値よりも大きいか(またはそれと同等で)なければなりません。
= C53:コードメモリゾーンフィールドの実際の値は、値2の指数である「ビット」の値よりも小さくなければなりません。
- 特別なCONDITIONトリガ(直接ゾーンの値と変数を比較する):
C49、C50またはC51:Current Value変数の実際の値とコードメモリーゾーンフィールドの実際の値とを比較します。
特別なトリガ:
ララが、敵を狙っている時に、Current Value変数で、長い数を使ってその敵を識別するため、セーブデータメモリーゾーンフィールドの「System. Item Memory address of enemy aimed by Lara」(下記参照)を使用します。F351は、その長い数を、(Current Value)の便利な値に変換します。
この「有用な値」は、敵のトゥーム(ゲーム)インデックスです。
メモリゾーンフィールドのリスト:
セーブデータメモリゾーン:
- “Inventory. Ammo…” fields:弾薬量。
- “Inventory…” fields with weapon names:武器の存在、ロードされた弾薬の種類、lasersightがついているかどうか。
- “Inventory…” fields for medipacks or flare:メディパックやフレアの量。
- “Inventory…” fields for binocular, crowbar, lasersight, examine:それらの存在。
- “Inventory…” fields for key, puzzle combo, pickup, quest:それらの存在。
- “Inventory. Puzzle…”fields:指定したパズルアイテムの量。
- “Inventory…” fields for little/large waterskin:水袋の存在または水袋に入っている水の量。
- “Inventory. Mechanical Scarab…” field:機械スカラベまたはその部品の存在、またはそれらが組み合わされているかどうか。
- “Inventory. Remaining usage of Mechanical Scarab…” field:スカラベの残り利用回数。
- “Lara. Air for Lara…”field:水中でのララの酸素量。
- “Lara. Current Weapon (not necessarly in the hand)…” field:指定した武器はちょうどララの手の中にあるか、SPACEを押したときに引き抜かれます。
- “Lara. Environment where Lara is…” field:ララは、陸地にいるか、水の中で泳いでいる/水に浮かんでいる/水の中にいるか、浅瀬を歩いている/流砂を歩いている。
- “Lara. Hands. Attached Lara Status…” field:ララのアクションためのいくつかの特別なフラグ。(例えば、フラグ2は、ララがちょうど武器を構えたか、フレアに点火したかを意味します。)
- “Lara. Hands. Item in the Hands of Lara (Current)…” field:“Lara. Current Weapon”fieldを参照してください。しかし、今回はフレアやトーチの状態も計算されます。
- “Lara. Hands. Item in the Hands of Lara (Following)…” field:(Current)フィールドに似ていますが、今回はここで武器/フレアを取り出すことを強制することに意味があります。
- “Lara. Hands. Remaining time with lighted flare in the hand…’ field:ララの手にある点灯したフレアの残りの使用時間。
- “Lara. Hands. Weapon in the hand…” field:あまり役に立たないフィールド。ルームエディタでは選択できないようです。
- “Lara. Item Index of Lara…” field:LARAオブジェクトのトゥーム(ゲーム)インデックス。
- “Lara. Poison…” fields:ララの毒状態の度合いを計算するための、2つの類似したフィールド。
- “Lara. Rope. Speed sliding on the rope…” field:ララがロープで前方/後方にどこまで揺れているか。
- “Lara. Special Status of Lara…” field:ララの状態のためのいくつかの特別なフラグ。(例えばゲームは、ララが燃えている場合、値に8を追加します。)
- “Lara. Special2 Status of Lara…” field:ララの状態のためのいくつかの特別なフラグ。(例えばゲームは、ララがちょうど双眼鏡やlasersightを通して見ている場合、値に16を追加します。)
- “Lara. Test. Climb sector Test (=1 yes; =0 no)…” field:トリガスクエア周辺の壁はすべて登れるか/登れないか。
- “Lara. Test. Lara has a flare in the and (1 = yes)…” field:ララは点火しているフレアを持っているかどうかを定義しています。
- “Lara. Test. Lara is on rope (different than -1 Lara is on the rope)…” field:ララは、ある特定のロープ上にいるか、またはどのロープ上にもいないかを定義します。
- “Lara. Test. Lara is placing the weapon on the back(1 = yes)…” field:ララは、いずれかの武器で敵を狙っているか、何も狙っていないかを定義します。
- “Lara. Test. Throw out item from the Hands (1 = Lara is throwing out item)…” field:このフィールドには、トーチのフラグが含まれています。(床の上に落ちている、ちょうど点火しているなど。)
- “Lara. Weapon on the back of Lara…” field:指定した武器はちょうどララの背中に見えているかどうかを示しています。
- ”Statistics. Distance…”field:このフィールドにはララが、これまでゲーム全体で移動した距離が含まれています。
- “Statistics. Killed Enemies…” field:このフィールドには、ララが、これまでゲーム全体で殺した敵の数が含まれています。
- “Statistics. Secrets…”field:このフィールドにはララが、これまでゲーム全体で見つけたシークレットの数が含まれています。
- “Statistics. Used Ammos…”field:このフィールドには、ララが、これまでゲーム全体で発砲した弾薬の数が含まれています。
- “Statistics. Used MediPacks…” field:このフィールドには、ララが、これまでゲーム全体で使用した大小のメディパックの数が含まれています。
- “System. Auto-Aiming for Enemy…” field:このフィールドは、自動照準がちょうど有効になっているかどうかを示しています。
- “System. Core Game Timer (one unit = 1/30 of second)…” field:このフィールドには、ゲーム全体で経過した時間が含まれています。(画面上にメニューがある時間を含む。) - 常に更新されるとは限りません。
- “System. Disable special keys (15 disable inventory pause f5)…” field:このフィールドの値を検証すると、ララの死後に何かを有効にできます。
- “System. Fog Bulb Color…”field:霧の実際のカラーコード(色がトリガによって定義されている場合。)
- “System. Item Memory address of enemy aimed by Lara…” field:上記のF351のトリガの説明を参照してください。
- “System. Number of current Level…” field:レベルのID。(FINISHトリガで使用しているID。)
- “System. Screen Timer (Increased only when it is different than 0)…” field:いわゆる「スクリーンタイマー」の実際の値。
- “System. Unknown (Item chosen from Inventory?...” field:各インベントリアイテムは、ここに自身のID番号を持っています。プレイヤーがインベントリでそのアイテムを選択すると、フィールドは、その値を適用します。
- “TRNG Index. Animation Index for Selected Animation Memory…” field:この時のアニメーションメモリゾーンの対象は、今回は、このフィールドのアニメーションの番号になります。
- “TRNG Index. Index of last item found with testposition or condition…” field:例えば、BADDY_1スロットでGT_COLLIDE_SLOTタイプのGlobalTriggerを使用します。ララがBADDY_1と衝突すると、TriggerGroupが有効になります。このTriggerGroupには、変数にこの“TRNG Index…”フィールドの値を置くF244のトリガを配置します。この値は、最新の条件によって定義されるオブジェクトのゲームのインデックスです。この条件は、GT_COLLIDE_SLOT-BADDY_1、そう、このゲームインデックスは、ララが今ちょうど衝突したBADDY_1のゲームインデックスです。
- “TRNG Index. Index of last item used by Lara…” field:ララが最後に(バイクに乗ったり、ボタンを押すなどした)相互作用のあるオブジェクトのトゥーム(ゲーム)インデックス。
- “TRNG Index. Index of moveable performing last AnimComand…” field:例えば、BADDY_1スロットはAnimationXのフレームでAnimCommandを持っています。このAnimCommandは、2つのトリガが含まれているTriggerGroupです:トリガの1つ(T1)はbaddyを、そのフレームで実行します。他のトリガ(T2)は、変数にこの“TRNG Index…”フィールドの実際の値を置くF244トリガです。これは、T1でちょうど実行しているbaddyのトゥーム(ゲーム)インデックスを、T2でその変数に入れることを意味しています。
- “TRNG Index. Item Index for Selected Item Memory…” field:この時のアイテムメモリゾーンの対象は、今回は、このフィールドのオブジェクトのトゥーム(ゲーム)のインデックスになります。
- “TRNG Index. Slot Index for Selected Slot Memory…” field:この時のスロットメモリゾーンの対象は、今回は、このフィールドのオブジェクトスロットID番号(NG Center[Reference]を参照)になります。
- “TRNG Organizer Timer. (Increased always in game but not in inventory and pause)...” field:このフィールドには、これまでのゲーム全体で経過した時間が含まれています。(画面上にメニューがある時間を含みません。)
アイテムメモリーゾーン:
- “Animation Now (Number of current animation)…” field:対象の実際のアニメーション。
- “Contact Flags ($2400 = damage Lara on touching)…” field:ララはちょうど動的オブジェクトと衝突しているかしていないかが定義されています。
- “Custom Flags (Different flags in according with object type)…” field:それは、対象の活動状態について説明しています。(例えば191は、死んだ敵など)
- “Custom_A, B, C, D…” fields:異なるオブジェクトに関するさまざまな情報が含まれています。
= ENEMY_JEEP:
A - 最後のAI_FOLLOWからの距離。
C - カウンタが稼働しているので、カウンタが0に達すると、ジープは手榴弾を投げます。
D - 実際のAI_FOLLOWのID。
= GUIDE:
B - GUIDEが手にしているトーチのフラグ。
D - 実際のAI_FOLLOWのID。
= VON_CROY:
C - 特別なプロパティ(例えば値1は、VON_CROYはララに手を振っているということです)。
D - 実際のAI_FOLLOWのID。
= BADDY_1, BADDY_2:
B - 部屋のゲーム(トゥーム)インデックスです。BADDYはその部屋でちょうど死んでいるか生きています。
C - BADDYの実際のUziの弾薬。
= SETHA:
A - 3種類の発砲動作のいずれかが行われているときに3つのカウンタは、ここで実行されています。:0から151まで、0から161まで、0から199。
= SPHINX:
C - ルームエディタウィンドウの北の端からの実際の距離。
D - ルームエディタウィンドウの西の端からの実際の距離。
= CROCODILE:
B - AI_GUARDで左方向/右方向にしっぽを動かします。
= HORSEMAN:
A - 生きているかどうか。
B - 馬に乗っているかどうか。
D - HORSEMANのAI_FOLLOWのID。
= MUTANT:
C - ここでの値が999で変わらなくなるまで、MUTANTは、ララに気付くことはありません。
= BABOON_NORMAL, BABOON_INV, BABOON_SILENT:
A - ルームエディタに配置されたBABOONの水平座標がここに含まれています。
C - 生きているかどうか。
= HARPY:
A - 発砲動作が行われているとき、カウンタは、ここで実行されています。
= LITTLE_BEETLE:
A - BEETLEが床から放出される場合、この値は1です。
B - BEETLEが天井から放出される場合、この値は2です。
C - BEETLEが壁から放出される場合、この値は4です。(カブトムシが放出されている時ダウンカウンタになります。)
= WRAITH1, WRAITH2, WRAITH3:
B - 火のWRAITHがララに衝突したときに増加されるカウントダウンカウンタ。値が約10000を超えると、衝突する度にララを燃やします。
C - これは0から約1000または-1000までのカウンタです。(ララの周りのWRAITHの回転方向に応じて。)
D - WRAITHがララから遠ざかって行く場合に増加する正の値、またはWRAITHがララに近づいてくる場合に増加する負の値。
= AHMET:
A - AHMETが配置されたスクエアの東西の列が含まれています。
C - AHMETが配置されたスクエアの南北の列が含まれています。
= WHEEL_OF_FORTUNE:
A、B、C、D - ここでの値とその符号は、セネトのゲームの回転盤がちょうど黒であるか または白に依って、そしてちょうど回転している時に、どの角度かに依っていると思います。
= SCALES:
B - 間違った水の量で満たされたかどうか。
= FALLING_BLOCK:
A - (ララがそれを踏んだために)揺れ始めるとカウンタは、カウントダウンを開始します。ブロックが落下するとカウンタも停止します。
= TRAPDOORs:
C - 閉じたかどうか。
D - ちょうどトラップドアが配置されている部屋と、トラップドアが配置されているその上の部屋のトゥームインデックスについて教えてくれます。
= ROLLINGBALL:
A - 指定した瞬間に動いているROLLINGBALLが停止するまでにどのくらい南北方向に「移動」しなければならないか 。
B - 指定した瞬間に動いているROLLINGBALLが停止するまでにどのくらい東西方向に「移動」しなければならないか 。
C - ボールが水中にあるかどうか。(OCB = 32で)
= TEETH_SPIKES:
A、B - 値は、稼働中のスパイクで変化しています。重要な値は、スパイクが完全に引っ込んでいる時と、それらが完全に突き出している時です。
C - スパイクが最上位の位置に到達したときに、カウンタが回り始めます。 0に達した時、スパイクが地面から飛び出します。
= JOBY_SPIKES:
A - 実際の回転速度の程度。
B - 実際の拡張の程度。
D - それは最大伸展の長さです。
= SLICER_DICER:
A - このトラップが置かれているルームエディタウィンドウの北の端からの距離が含まれています。
B - このトラップが置かれている垂直座標が含まれています。
C - このトラップが置かれているルームエディタウィンドウの西の端からの距離が含まれています。
= CHAIN, PLOUGH, STARGATE:
A - CHAIN/PLOUGH/STARGATEが、動作しているかどうかという情報。
B - PLOUGH/STARGATEが、動作しているかどうかという情報。
D - CHAIN/PLOUGH/STARGATEが、少なくとも以前1回は動作したかどうかという情報。
= HAMMER:
A - ハンマーはちょうど打撃している(または打撃後の震えの最初の部分の)場合、0ではない。
C - ハンマーが ちょうど開始位置(最高) にある場合、0のみ。
D - ハンマーが、少なくとも以前1回は動作したかどうかという情報。
= BURNING_FLOOR:
A、B、C - 非常に似ている3つのカウンタがここで実行されます。それらは、火災が延焼しているときにカウントアップし、鎮火しているときにカウントダウンします。
D - カウンタは、床が燃えはじめた時カウントアップを開始し、火が鎮火しはじめた時に停止します。
= SPIKEBALL:
A、B - SPIKEBALLの二重扉が開いているかSPIKEBALLのナイフが拡張されている場合、0でない。
D - ボール自体やナイフの位置に関する情報。
= FLAME_EMITTER(水平または垂直炎を噴出している場合のみ):
A - (炎が噴出を停止し始めた時)のランダムな値から0(この時炎は再び吹き出し始めます)までのカウンタ。
B - 噴出している炎の実際の長さ。
C - エミッタが噴出を開始すると、カウンタは、0までカウントダウンします。エミッタが噴出停止を開始すると、それは元にカウントします。
D - ランダムな時間間隔がここでカウントされます。:実際の噴出動作の時間。
= FLAME_EMITTER2(マイナスのOCB番号付きのみ):
A - フリップマップをトリガする(「Temple of Horus」からスケールパズルを参照):フリップマップがトリガされているかどうか。
雷をそらすために(「Street Bazaar」からLIGHTNING CONDUCTORのセットアップを参照):PUSHABLEオブジェクトが「退避場所」にあるかどうか。
= FLAME_EMITTER3(炎として):
A - ショートカウンターは何度も何度もダウンして実行されます。カウンタの各番号は炎の爆発がちょうど爆発したかどうかを意味します。
B - 指定した瞬間に爆発したのはどの爆発かを示す、コードビットがここにあります。
= FIREROPE:
B - 2つのカウンタがここで実行されます。第1のものはロープが燃えているときに、第2のものはロープが崩れているときに実行されます。
D - ロープが発火したときにカウンタのカウントダウンが始まります。0に達した時、ロープが崩れ始めます。
= TWOBLOCK_PLATFORM(ララがそれを踏んだ時プラットフォームが半クリック下降する場合):
A - 開始位置やプラットフォーム用の下降の度合いを変更するには、ここに数を強制することができます。
B - プラットフォームは上昇を始める位置(ベース)、または下降位置にあります。
= RAISING_BLOCK1, RAISING_BLOCK2:
B - 上昇の実際の高さ。
C - ブロックが完全に下降したかどうか。
= EXPANDING_PLATFORM:
B - 拡張の実際の長さ。
C - プラットフォームが完全に戻っているかどうか。
= SQUISHY_BLOCK2:
A - ブロックがトリガされると、揺れが停止するまでカウンタがここで実行されます。揺れが停止し、カウンタが止まるとブロックは落下します。
= PUSHABLE_OBJECTs:
A、C - ブロックが、少なくとも一回は押されているかどうか。
= SENTRY_GUN:
A - 銃が弾丸を発砲している場合、値1と2が、互いに高速で変化します。
B - レーダーはちょうど ガンの方向に回転しているか、または別な方向を向いているか。
C - 銃が弾丸を発砲すると、ここでカウンタがカウントアップされますが、最大値を超えることはありません 。
= MINE(トリガによって爆破される場合のみ、すなわちOCB = 1):
A - トリガが地雷を点火するとカウンタが回り始め、地雷が爆発するまでここで実行されます。
= OBELISK:
D - 電気アーチは(「The Great Hypostyle Hall」のオベリスクパズルを参照してください)オベリスクから来ている間は、ここでカウンタが実行されます。
= FLOOR_4BLADE, ROOF_4BLADE:
A - FLOOR BLADESが上向きに移動したか/ROOF BLADESが下向きかに移動したかどうか。
D - ブレードが(一瞬または「永遠に」)停止した場合、値が変化しています。
= BIRD_BLADE, MOVING_BLADE:
A - BIRD BLADEが閉じているかどうか。
D - ブレードが少なくとも以前1回は動作したかどうかという情報。
= CATWALK_BLADE:
D - ブレードがちょうど移動しているかどうか。
= PLINTH_BLADE:
D - ブレードの全動作中は、値は0ではありません。
= SETH_BLADE:
A - ダブルブレードの位置に関する情報。
B - ダブルブレードは下向きに移動しているかどうか。
C - カウンタが0に達した時にブレードをトリガする(OCBの数に応じた)時間をカウントダウン。
D - ブレードが少なくとも以前1回は動作したかどうかという情報。
= LIGHTNING_CONDUCTOR:
A - ショートカウンターは、何度も何度もここでカウントダウンされます。カウンタが0に達した時に雷が地面に当たります。
B - どこで実際の雷が発生しているのか、その座標はおそらくここにあります。
D - OCB = 2 の場合のみ:「退避場所」へPUSHABLEを配置した場合、カウンタが開始されます。それが停止したときに落雷場所を変更されていた雷は、ANIMATING8オブジェクトを破壊します。
= ELEMENT_PUZZLE:
A - 器の状態(空/一杯/ララがガソリンに点火している/ガソリンが燃えている)。原文はscaleとなっていますが、scaleを使うパズルとは別ものです。
= (PICKABLE オブジェクト):
D - アイテムがちょうどPICKUPトリガを有効にしているかどうか。
= PUZZLE_HOLEs:
A - ララがパズルアイテムをここに配置しているかどうか。
= TURN_SWITCH:
A - 最後の移動(まだ移動していない/時計回り/反時計回り。)
B - スイッチ(最初の使用後)が移動されていないとき、0でない。
= CROWBAR_SWITCH:
A - スイッチが無効になっているか、まだ使えるかどうか。(生きたBABOON_NORMALがその近くにいて。)
= PULLEY:
B - (「The Great Hypostyle Hall」からオベリスクパズルを参照してください):PULLEYが使用できない(「見えない」)かどうか。
C - PULLEYを少なくとも一回は使用したかどうか。
D - OCB番号。
= DOOR_TYPEs(COG_SWITCHでのみ):
A - ララがスイッチを操作している(ドアがこれ以上動かせないほど高くは上がっていない)間、ショートカウンタが、ここでカウントダウンされます。
= SEQUENCE_DOOR1:
A - ドアが開いたかどうか。
= SEQUENCE_SWITCH1/2/3:
A - スイッチが押し込まれたかどうか。
= GOD_HEAD:
A - 最大膨張に達する前は0。
B - 拡張の実際の長さ。
C - ヘッドがその最大サイズを持っていると、カウンタはここで実行されます。 0に達した時、ヘッドが戻る描画を開始します。
= STATUE_PLINTH(OCB = 0で):
A - PUZZLE_ITEM5が配置されているかどうか。
B - この台座でCTRLキーを押したとき、インベントリがPUZZLE_ITEM5で自動的にオープンして(そしてまだ開いている)かどうか。
= GRENADE(床にある):
B - 手榴弾が爆発したとき、ここでショートカウンターがカウントダウンして実行されます。
= STEAM_EMITTER:
A - 水平噴出蒸気として:カウンタはダウンを開始し、蒸気の噴出は徐々に停止します。
0に達した時、噴出が再び開始されます。
水中で(非連続的な)バブルエミッタとして:放射される気泡の実際の量をカウントダウン。
B - 水平噴出蒸気として:噴出を開始するとランダムカウンタがここで実行され、0に達した時、エミッタは噴出停止を開始します。
C - 水平噴出蒸気として:蒸気の実際の長さ。
= EARTHQUAKE:
A - 地震の実際の強度。
B - 地震の実際の強度が、Custom_Aほど正確ではありません。(ここには値は2つしかありません。)
C - カウンタは、ここで次々に実行されます。各シーケンスは強度範囲(「大きな地震のための範囲」、「より小さい地震のための範囲」等)を意味します。
= WATERFALLMIST(OCBによってそれをカスタマイズしている場合のみ):
A - 標準、低または高速噴出を持つ:WATERFALLMISTがアクティブであるかどうか。
ランダム噴出で:2つのカウンタは、噴出または非噴出の時間をカウントするためにここで実行されます。
B - 噴出が起こっているかどうか。
C - ランダム噴出を持つもののみ:噴出時から非噴出時への移行、またはその逆の局面への連続する変化の乱数。
= SPRINKLER:
A - スプリンクラーが作動されると、カウンタはカウントアップで実行されます。最後の一滴が出てきたときに停止します。
= AMBER_LIGHT:
A - ループカウンタは、何度も何度も、継続的に実行されます。(なので、各値は、パルス強度の実際の程度を表しています。)
= WHITE_LIGHT:
A - このライトが点灯してから、強い点滅を停止するまでカウンタは、ここで実行されます。
= PLANET_EFFECT:
A - 開始値は 50 + OCB数-1 です。PLANET_EFFECTが有効になると、値は-1になります。
C、D - 0でない一定の値を持っているのは 、直接ANIMATING4にリンクされているオブジェクトだけです(「The Lost Library」の地球儀パズルを参照してください。)
= LASER_HEAD:
A - ヘッドの状態(攻撃されている、目が撃たれているなど。)
B - 頭がトリガされた後に上昇してきた場合に値が変化します。
C - 複雑なカウンタがここで実行されています。頭が何をしているかに応じて、時々レートを変更し、時々停止します。
D - さらに複数のカウンタがここで実行されています。主なもの:突然の2つのヘッドの移動間のカウンタ、そしてヘッドがエネルギーを得ている時に作動しているカウンタ。
= HYDRA:
D - ヒドラが倒され始める(「死にかける」)と、カウンタがここで実行されます。
= ENEMY_SUB_MARINE:
A - 潜水艇がちょうど左または右にどの程度傾いているか。
= FISH_EMITTER:
A - 放射される魚の実際の量をカウントダウン。
B - (一匹の魚が 放出される時の)ランダム値と(次の魚が放出される時の)0との間で、ショートカウンターが何度も何度もここで実行されます。
C - エミッタがトリガされたかどうか。
D - 例えば、もし3種類の魚が3匹いる場合、放出された魚をこのような順番でカウント:0、1、2、3、0、1、2、3、0、1、2、3。
- “Facing…” fields:(ララのためだけでなく)。このフィールドの各番号は、X、Y、Z軸の周りの対象の向きを表しています。
- “Flags of Item…” field:「AI_AMBUSHモードである」、「オブジェクトはちょうど撃たれている」、「殺されていない」などのフラグを含んでいます。
- “Frame Now (warning it's an abs value)…” field:実際のアニメーションの実際のフレームID。
- “Height Floor below the item…” field:床からの実際の垂直距離。
- “HP (Current life level. $C000 = unkillable)…” field:体力の実際の程度。
- “Object buttons. Five buttons + invisible button…” field:OCBのコードビットまたは[Clear Body]ボタンがオンまたはオフになっています。
- “OCB Code (The value you typed in OCB of this item)…” field:OCBウィンドウ内の値。
- “Position…” fields:X、Y、Z座標。
- “Room (Room where is the item)…” field:オブジェクトがちょうど設置されている部屋のゲーム(トゥーム)インデックス。
- “Slot Id (number of slot)…”field:オブジェクトのスロットインデックス。(参照:NG Center[Reference]。)
- “Speed…” fields:実際の垂直/水平方向の速度。
- “State Id…” fields:オブジェクトのアニメーションに関する状態の値。
- “Transparence level (0 = opaque / 126 transparent / over 127 removes item)…” field:実際の透明度レベル。
- “Unknown (Light…” fields:これらのフィールドは、対象のアイテムがちょうど置かれている部屋の環境光の照明についての値を示します。
- “Unknown (Pheraps accelleration on falling)…” field:AI_FOLLOW型のオブジェクトのいくつかのアニメーションのState IDを示しています。
- “Unknown (Sprite…” fields:不明。
- “Unknown (Used when enemy shot a granade = $c210)…” field:不明。
- “Unknown Countdown (Some counter, not yet discovered)…” field:通常のオブジェクトのタイマー。 (タイマー値を研究するために便利なフィールドです。)
- “Visible Mesh Flags (each mesh a different bit)…” field:表示されているメッシュを定義します。
コードメモリゾーン:
- “Audio Track Number…”fields:ちょうどチャンネル1または2で再生されているオーディオファイルのID。
- “カメラ Mode…” fields:ちょうど使用されているカメラの種類についての情報。(値を検討するための 「Now」フィールドと、値を強制するための「Next」フィールドがあります。)
- “Current Level number (more updated than savegame memory)…” field:同様のセーブデータメモリゾーンフィールドを参照してください。
- “Dash Bar Value (0 - 120)…” field:ララの実際のダッシュ力。
- “Earthquake vertical movement (negative values)…” field:地震の強さ。
- “Frame 3d Counter. (It works in game and inventory but not in pause)…” field:このフィールドには、これまでのゲーム全体で経過した時間が含まれています。(画面上にF5/F6/一時停止のメニューがある時間を含みません。)
- “ Frame System Counter. (Works always, in game, inventory and pause screens)…” field:このフィールドには、これまでのゲーム全体で経過した時間が含まれています。(画面上にメニューがある時間を含みます。)
- “Inventory Item just chosen from inventory (example a key to open a door)…” field:ララの不要な「NO」の音を防止するために、「カスタマイズされたPUZZLE HOLE」でそれを使用します。
- “Inventory Item required in game (example, crowbar for door)…” field:プレーヤーがオブジェクトと相互作用するためにCTRLキーを押すときインベントリが開くならば、インベントリが開くまでの間、値は相互作用のために必要なオブジェクトのスロットIDです。
- “KeyBoard Game Command hit (Use bit operations with KEY1_ constants)… field:プレイヤーがキーによってララを移動させた(または何かさせた)とき、ここにそのキーコマンドのコードが表示されます。
- “Music volume (max = 100)…” field:このフィールドには、オーディオの「一般的な音量」が含まれています。- オプションメニューを参照。
- “Screen… “ fields:画面の解像度を表示します。
- “Script Dat. Level Flags (Use bit operation to read or change)…” field:いくつかの古いスクリプトコマンド(YoungLara、Horizon、Trainなど)は、レベルのプロパティを識別するために、このフィールドにフラグがあります。
- “Script Dat. オプション Flags (Use bit operations to read or write)…” field:不明。
- “Sound SFX volume (max = 100)…” field:このフィールドには、サウンドの「一般的な音量」が含まれています。 - オプションメニューを参照。
- “Speed Layer…” fields:レイヤー1または2の速度/方向の値を定義します。
- “Test. Disable Fog Bulbs (1 = disable)…” field:霧の電球が無効になっているかどうか。
- “Test. How entered in current game (New level=0; From savegame = 4)…” field:このフィールドは役に立ちません。
- “Test. There is a Flyby in progress (1 = true / 0 = false)…” field:フライバイシーケンスがちょうど行われているかどうか。
スロットメモリゾーン:
- “Explosion Mask. (Each bit a type of weapon able to do explode it…” field:破壊することができるメッシュを定義します。
- “First Animation Index…”field:このフィールドは、オブジェクトのスロットの最初のアニメーションのIDを識別するのに役立ちます。
- “First Mesh Index…” field:値は「twice #AMI」です。ルームエディタで[Select Object]パネルで#AMIの値を参照してください。
- “Flags. Main flags…” field:オブジェクトのスロットを定義するためのフラグはAIオブジェクトを使用することができるか、或いは彼は水中の生き物か等を意味します。
- “FootStep (Shadow below Lara or enemies)…” field:影の大きさ。
- “HP. Max Vitality at start…” field:ララまたは他の生物の最大ライフポイント。
- “Number of Meshes…” field:スロットのメッシュの量。
- “Pointer for Collision Procedure…” field:このフィールドが0なら、スロットは衝突判定を持っていないことを意味します。
- “Pointer for Draw Extra Procedure (used by jeep, sidecar)…” field:不明。
- “Pointer for Emitter Procedure…” field:このフィールドに0を使用すると、オブジェクト自体は全く見えませんが、放出される効果のみが(例えばバイクのヘッドライトの光で)見えるようになります。
- “Pointer for Initialization Procedure…” field:不明。
- “Pointer for Main Control Procedure…” field:対象スロットのアニメーションを「凍結」したい場合は、ここに0を強制します。
- “Pointer for Special Ceiling Procedure…” field:不明。(TWOBLOCK_PLATFORMsでのみ動作します?)
- “Pointer for Special Floor Procedure…” field:TWOBLOCK_PLATFORMの下のDUMMYトリガを「殺す」には、ここに0を強制します。
- “Test Attack Lara (1=attack, 0 =ignore Lara)…” field:不明。(BADDY_1または2でのみ動作します?)
- “Unknown1 (Pheraps distance to enable the MIP バージョン)…” field:どのくらい離れた距離で、オブジェクトがMIPバージョンに変わるのかを定義します。
- “Unknown2 (Usually it has value 50)…” field:このフィールドは、敵がララを攻撃する際に、どのくらいの距離で彼女を察知するのか、その水平距離を含んでいます。
- “Unknown3 (It will be copied in Custom_B field of Item structure)…” field:不明。(値は「クリーチャー・フラグ」といった種類でなければなりません。)
- “Unknown4…” field:不明。
アニメーションメモリゾーン:
- “Absolute Index of first AnimCommand…” field:あまり役に立たないフィールド。
- “Absolute Index of first State Change...” field:あまり役に立たないフィールド。
- “First absolute Frame index…” field:指定したアニメーションのFrame0の絶対インデックスを定義します。
- “Frame Rate…” field:アニメーションのフレームレート値。
- “Frame Size…” field:あまり役に立たないフィールド。
- “High Accelleration…”field:アニメーションの「アクセル」の値。
- “Last absolute Frame index…” field:指定したアニメーションの最後のフレームの絶対インデックスを定義します。
- “Low Accelleration…” field:あまり役に立たないフィールド。
- “Next Animation index…”field:アニメーションの「Next Animation」の値。
- “Next Frame index…” field:アニメーションの「Next Frame」値(絶対フレームIDとして)。
- “Next High Acceleration…”field:あまり役に立たないフィールド。
- “Next Low Acceleration…”field:あまり役に立たないフィールド。
- “Next Speed…” field:あまり役に立たないフィールド。
- “Number of Animation Commands…” field:あまり役に立たないフィールド。
- “Number of State Changes…”field:あまり役に立たないフィールド。
- “Speed…” field:アニメーションの「速度」の値。
- “State Id…” field:アニメーションの「State ID」の値。
- “Unknown…” fields:不明。
インベントリメモリゾーン:
- “Distance of Cam. {Little values bigger items and vice-versa)…” field:インベントリで見た時のアイテムまでの仮想距離。
- “Slot of Mesh to show in Inventory…” field:指定したインベントリアイテムのスロットID。
- “String index of Name…”field:アイテムの名前を含むストリングスのID。
- “Top Border in 2d plane. (Negative numbers move up the item)…” field:インベントリ内のアイテムの垂直位置。
- “Type Flags. (4 = USE, 32 = EXAMINE, $1000 = LOAD ect)…” field:インベントリ内の指定したアイテムに関連付けられているコマンド。
= “Unknown. (It may be only 1 or -1)…” field:不明。
= “View Flags. (2 = turn endless, $4000 = usable?)…”:field:選択したアイテムが、インベントリ内で回転しているか、または静止しているか。
= “… Facing about the cam view on…” fields:アイテムはインベントリ内でX、Y、Z軸の回りをどのように回転しているか。
追加情報:
- メモリゾーンフィールドの詳細を知るにはSkribblerzのメモリゾーンのチュートリアルを参照してください。Skribblerzにはチュートリアルがないので、
http://www.tombraiderforums.com/showthread.php?t=211719
を参照してください。
- それらの代わりに直接的な方法を持っているので、いくつかのフィールドを使用する必要はありません。
しかし、時には、変数でこれらのフィールドを使用するのは価値がある方法です。どうして?
なぜなら、直接トリガの対象は、標準的なものですが、対象として変数の値を使用した場合、変数に複数の値を持つことができるので、トリガの対象は、一つ以上のものとすることができるからです。
もしくは多分、直接法の作用の範囲はより少ししかないので、変数メソッドを使用する必要があります。
- メモリゾーンフィールドの名前で「byte」、「short」および「long」という言葉は、フィールドが持っている数を示しています。
例えば、フィールド名に「short」という言葉があれば、それは、そのフィールド内の最小の期待値が-32768で、そのフィールドで最大の期待値は32767であることを意味しています。
「short」という言葉の付いたフィールドがあれば、「short」または「long」変数を使用することを強くお勧めします。なぜなら、フィールドの値が-32768から0、または255から32767の間にある場合、「byte」変数は、フィールドの値を処理できないからです。
- 10進数形式で値を使用するか、または16進数形式で値を使用するかは重要ではありません。(形式を選択できるなら。)
- 一部のフィールドには値を強制することができません。(しかし、条件で検討することができます。)
- 一部の値は、恒久的な効果のために継続的に強制されなければなりません。
- 一部のフィールドは、レベルジャンプで強制された値を失います。または値を強制した後にゲームを保存し、そのセーブデータをロードした場合。(問題を理解し、それを解決するためにPaolone氏の変数チュートリアルのこの部分を参照してください。:“The wooden Door:how save and restore our changes”。)
- 変数の「Local/Global」タイプと、フィールドでのその「Local/Global」効果は同じではありません。
- 理解するために例を参照してください。
メディパック大の量は、グローバルな値です。なぜなら、レベルAからレベルBにジャンプした場合、レベルAの終わりにメディパック大をX個持っていると、また、レベルBの開始にメディパック大をX個持っているからです。
レベルAの終りでX個のメディパックを定義するのにLocal変数を使用して、レベルBにジャンプすると、メディパックの量はXのままです。 - Local変数がレベルBの開始時に0になるにもかかわらず。