旧TR3 Gold-J(仮)プロジェクト掲示板
過去ログ


No.259 alternateのパラメータの謎 その1
投稿者---べっく(2001/05/30 00:25:37)

どーも、べっくです。

以前から疑問に思っていた事がありまして、ちょっとテスト中です。
以下のスクリプトをご覧下さい。

;--- Switch to Room B.
Start_trigger(28, 5,7)
If_Lara_on_ground_Do_with_activate(62,0,0)
alternate_On(1)
end()
End_trigger()

このスクリプトは、TREditor3Dのサンプルスクリプトとして同梱
されていたTurboの"The Fenician Temple II"のスクリプトLevel2.scp
からの抜粋です。

ここで、alternate_On(1)と記述されていますが、括弧の中の
パラメータ 1 には何か意味があるんだろうか?と思ったのです。

実際、以下のようなマップを作って実験してみました。

ROOM1 : スタート地点の部屋
ROOM2 : ROOM1の隣の部屋
ROOM3 : ROOM1のクローン 形状を少し変更
ROOM4 : ROOM2のクローン 形状を少し変更

そして以下のようなスクリプトを作成しました。

Put_alternate(1,3) ;Alternate #1
Put_alternate(2,4) ;Alternate #2

Start_trigger(1, 5,8)
Do_with_Activate(62,0,0)
Alternate_On(1)
end()
End_trigger()

Start_trigger(1, 5,3)
Do_with_Activate(62,0,0)
Alternate_On(2)
end()
End_trigger()

つまり、1番の部屋を3番にチェンジするイベントと、2番の
部屋を4番にチェンジするイベントを別々にコントロールしよう
としたのです。

結果は失敗でした。どちらのトリガーを踏んでも、1、2番から
一気に3、4番に変更されてしまいます。

だとすれば、Turboの書いたパラメータには何の意味があるのでしょう。
パラメータ無しで Alternate_On() とすると、全てのオリジナル部屋が
チェンジ部屋(flip roomと呼びましょうか)に変更されますが、この
スクリプトにはこの機能しかないのではないか?と疑い始めました。

つまり、Turboのスクリプト自体、勘違いだったのだ、という結論に
到達しかかりました。
ところが、実験を進めるうちに更なる謎に直面する事になったのです。

眠いので、この続きは後日に書き込みます(爆)。
では。
 


No.260 Re:alternateのパラメータの謎 その1
投稿者---moog(2001/05/30 19:50:04)

>以前から疑問に思っていた事がありまして、ちょっとテスト中です。
>以下のスクリプトをご覧下さい。
>
>;--- Switch to Room B.
>Start_trigger(28, 5,7)
> If_Lara_on_ground_Do_with_activate(62,0,0)
> alternate_On(1)
> end()
>End_trigger()
>
>このスクリプトは、TREditor3Dのサンプルスクリプトとして同梱
>されていたTurboの"The Fenician Temple II"のスクリプトLevel2.scp
>からの抜粋です。
>
>ここで、alternate_On(1)と記述されていますが、括弧の中の
>パラメータ 1 には何か意味があるんだろうか?と思ったのです。
>
>実際、以下のようなマップを作って実験してみました。
>
>ROOM1 : スタート地点の部屋
>ROOM2 : ROOM1の隣の部屋
>ROOM3 : ROOM1のクローン 形状を少し変更
>ROOM4 : ROOM2のクローン 形状を少し変更
>
>そして以下のようなスクリプトを作成しました。
>
>Put_alternate(1,3) ;Alternate #1
>Put_alternate(2,4) ;Alternate #2
>
>Start_trigger(1, 5,8)
> Do_with_Activate(62,0,0)
> Alternate_On(1)
> end()
>End_trigger()
>
>Start_trigger(1, 5,3)
> Do_with_Activate(62,0,0)
> Alternate_On(2)
> end()
>End_trigger()
>
>つまり、1番の部屋を3番にチェンジするイベントと、2番の
>部屋を4番にチェンジするイベントを別々にコントロールしよう
>としたのです。
>
>結果は失敗でした。どちらのトリガーを踏んでも、1、2番から
>一気に3、4番に変更されてしまいます。
>
>だとすれば、Turboの書いたパラメータには何の意味があるのでしょう。
>パラメータ無しで Alternate_On() とすると、全てのオリジナル部屋が
>チェンジ部屋(flip roomと呼びましょうか)に変更されますが、この
>スクリプトにはこの機能しかないのではないか?と疑い始めました。
>
>つまり、Turboのスクリプト自体、勘違いだったのだ、という結論に
>到達しかかりました。
>ところが、実験を進めるうちに更なる謎に直面する事になったのです。

べっくさん、こんばんわ。

テスト結果からだと、1つのレベルでは一度しかAlternateのイベントは
使えないことになりますね。何ででしょう。私もいろいろテストしてみます。
 


No.261 Re:alternateのパラメータの謎 その2
投稿者---べっく(2001/05/30 22:58:08)

どーも、べっくです。

続いてのテスト結果です。
今度は一部屋のマップを使用しました。

ROOM1:オリジナル部屋
ROOM2:ROOM1のクローン 形状を少し変更
ROOM3:ROOM1のクローン 形状を少し変更
ROOM4:ROOM1のクローン 形状を少し変更

そして、以下のようなスクリプトを作成しました。

Put_alternate(1,2) ;Alternate #1
Put_alternate(1,3) ;Alternate #2
Put_alternate(1,4) ;Alternate #3
Put_alternate(1,5) ;Alternate #4

;トリガー1
Start_trigger(1, 4,8)
Do_with_Activate(62,0,0)
Alternate_On(1)
end()
End_trigger()

;トリガー2
Start_trigger(2, 5,8)
Do_with_Activate(62,0,0)
Alternate_On(2)
end()
End_trigger()

;トリガー3
Start_trigger(3, 6,8)
Do_with_Activate(62,0,0)
Alternate_On(3)
end()
End_trigger()

;トリガー4
Start_trigger(4, 7,8)
Do_with_Activate(62,0,0)
Alternate_On(4)
end()
End_trigger()

つまり、一歩ずつ前に進むたびに部屋形状が変更するような
イメージを想定してレベルを作成した訳です。

ところが、不思議な事に(1, 4,8)の場所、つまり一つ目の
トリガーのみが有効になり、なおかつそこでは、3番目の
alternate、つまりROOM1からROOM4への置き換えが発生した
のです。

不可解な現象は更に続きます。
 


No.262 Re:alternateのパラメータの謎 その3
投稿者---べっく(2001/05/30 23:23:45)

ならばこんなスクリプトではどうか、と
その2と同じマップを使用してスクリプトを少し変更
してみました。

Put_alternate(1,2) ;Alternate #1
Put_alternate(1,3) ;Alternate #2
Put_alternate(1,4) ;Alternate #3
Put_alternate(1,5) ;Alternate #4

;トリガー1
Start_trigger(1, 4,8)
Do_with_Activate(62,0,0)
Alternate_On(1)
end()
End_trigger()

;トリガー2
Start_trigger(2, 5,8)
Do_with_Activate(62,0,0)
Alternate_Off(1)
Alternate_On(2)
end()
End_trigger()

;トリガー3
Start_trigger(3, 6,8)
Do_with_Activate(62,0,0)
Alternate_Off(2)
Alternate_On(3)
end()
End_trigger()

;トリガー4
Start_trigger(4, 7,8)
Do_with_Activate(62,0,0)
Alternate_Off(3)
Alternate_On(4)
end()
End_trigger()

つまり今回は、次のトリガーで前回のalternateを
無効にした上で変化を起こそうとした訳です。
結果は、全く予想外のものでした。

以下、動作順にマップの変化を記載します。

トリガー1を踏む:ROOM1からROOM4に置き換え
トリガー2を踏む:無反応
トリガー3を踏む:無反応
トリガー4を踏む:ROOM4からROOM3に置き換え
トリガー3を踏む:ROOM3からROOM2に置き換え
トリガー2を踏む:ROOM2からROOM5に置き換え
 

このスクリプトでどうしてこんな変化が起こるのか
さっぱり分かりませんが、alternateの個別制御が
難しいのだけは確かなようです。

そこで私のSerpent Cityでは、ちょっとした小技を
使用しました。この作品ではalternateが2回使用され
ております。

・電撃ルームの照明がつく
・ダイナマイトで建物上部が破壊される

これらはパラメータ無しのAlternate_On()で制御されて
おります。つまり、ララが電撃ルームに侵入して照明が
ついた時、遥か遠方の建物は一度爆破されているのです(笑)。

その後、ララが大玉2個の地下回廊に降りた時に一旦
Alternate_Off()が起動して建物を元の形状に戻し、その
後のイベントでもう一度Alternate_On()を起動して建物を
再度爆破している事になります。

地下回廊から電撃ルームに戻れない設定にしている理由は
ここにあります。地下回廊に降りた時に電撃ルームは消灯
してしまいますから、そこから戻れる設定にすると照明に
矛盾が生じてしまうのです。

Alternateを個別制御する方法さえ明らかになれば(出来れば
の話ですが)もう少し凝った事が出来るのになぁ、という
風に思って今回の実験をするに至った訳です。

とりあえず、これまでの実験報告でした。
 


No.263 Re:alternateのパラメータの謎 その3
投稿者---moog(2001/05/31 01:00:44)

>そこで私のSerpent Cityでは、ちょっとした小技を
>使用しました。この作品ではalternateが2回使用され
>ております。
>
>・電撃ルームの照明がつく
>・ダイナマイトで建物上部が破壊される
>
>これらはパラメータ無しのAlternate_On()で制御されて
>おります。つまり、ララが電撃ルームに侵入して照明が
>ついた時、遥か遠方の建物は一度爆破されているのです(笑)。
>
>その後、ララが大玉2個の地下回廊に降りた時に一旦
>Alternate_Off()が起動して建物を元の形状に戻し、その
>後のイベントでもう一度Alternate_On()を起動して建物を
>再度爆破している事になります。
>
>地下回廊から電撃ルームに戻れない設定にしている理由は
>ここにあります。地下回廊に降りた時に電撃ルームは消灯
>してしまいますから、そこから戻れる設定にすると照明に
>矛盾が生じてしまうのです。
>
>Alternateを個別制御する方法さえ明らかになれば(出来れば
>の話ですが)もう少し凝った事が出来るのになぁ、という
>風に思って今回の実験をするに至った訳です。
>
>とりあえず、これまでの実験報告でした。

Alternate_On()Off()の繰り返しでトリッキーに部屋を
入れ替える訳ですか。公認エディタで使われるFlip Mapも
基本的には一つのトリガーで一度に全てのマップが入れ
替わるのが基本ですが、特殊なオプション機能もあった
ように思います。ちょっと確認してみます。