World Wide Guide to FS Scenery Design日本語版 | Knowledge Bank
投稿したいものがある場合、 kraybill@vianet.net.au. にメールを送ってください。
Q. 空港にアプローチしているとき、ときどきビル・poly3d や 滑走路が見えなくなります。また、アプローチしているときは何も見えないのに、通り過ぎると すぐ見えるようになったりします。これは近くにある .bgl ファイルとコンフリクトしている のが原因でしょうか? ぶつかっているファイルを1つにまとめればこの現象は起きなくなるのでしょうか?
Konstantin Kukushkin の発言:
これは低い scenery density 設定により起こります。FS5 は取り扱う 3D オブジェクトの 個数の内部制限を持っており、この制限は scenery density に依存しています。 objectを見えなくするかどうか決める FS5 の規則は不明です。 正確な数値は FSASM のドキュメントに見受けられます。この主題に対して投稿したいものがあれば、
kraybill@vianet.net.au にメールを送ってください。
ケープタウンの Nico Visagie [e-mail: nvisagie@global.co.za] の発言:
ここ数年、私は Flight Simulator のシーナリのプログラミングを行っています。最初はBGLGENから始め、初期ののバージョンが出たときに BGLCOMPにアップグレードし、のちにSCASM にアップグレードしました。私は、データベースエラーが何で、また何がそれを引き起こすのか理解していませんでした。私は自分のシーナリ作成方法が正しいと信じていました。これは間違っていました、、、なぜなら私のシーナリが常にデータベースエラーに見舞われるようになったのです!
SCASM の Scenery Hints セクションにデータベースエラーに関する以下の記述があります:
"データベースエラーは幾つかの原因により引き起こされます。その一つは navaid 周波数の重複です。しかし、これらのエラーがおかしなジャンプターゲットによっても引き起こされるという事実を受け入れられない人がいるようです"これは文字通り事実です! 特にSCASM の
RefPoint
命令についてそうです。RefPoint
命令をジャンプターゲットで終端させることが非常に重要です。ルーチンの最後に直接送ってはなりません。いくつか例を示します:EXAMPLE 1
Area( 5 Lat Long 10 )
RefPoint( 7 :End 1 Lat Long )
... Instruction
... Instruction
... Instruction
:End
EndA
上の例では、
RefPoint
は:End
ラベルというジャンプターゲットで正しく終端されています。もう少し複雑な例を見てみましょう。EXAMPLE 2
Area( 5 Lat Long 10 )
RefPoint( 7 :End 1 Lat Long )
RotatedCall( :Rot 000 000 000 )
:End
Jump( : )
:Rot
... Instruction
... Instruction
... Instruction
Return
EndA
RefPoint
がRotatedCall
命令の直後で終端されていることに注意してください。Rotation Jump 中に、RefPoint
は rotation の終わりまで自動的に引き伸ばされます。それゆえ、あなた自身で引き伸ばす必要はありません。
RotatedCall
サブルーチンの終わりのReturn
に注意してください。Return
はRotatedCall
に続く命令へ戻ることによりRotatedCall
を終端します。全てのサブルーチンを
Return
文で終端することが重要です!EXAMPLE 3
Area( 5 Lat Long 10 )
PerspectiveCall( :Perspec )
Jump( : )
:Perspec
Perspective
RefPoint( 7 :End 1 Lat Long )
RotatedCall( :Rot 000 000 000 )
:End
Return
:Rot
... Instruction
... Instruction
... Instruction
Return
EndA
上の例は、遠近法でビル、山やその他のオブジェクトを書くときに主に使われるものです。次の例では影について扱います。
RefPoint
が終端されている場所に注意してください。前と同じく、RotatedCall
の直後で終端されています。前と同じく、ROtatedCall
RefPoint中に自動的に含まれます。再び
Return
に注意してください。これらは call を終端し、call の直後の命令に戻ります。EXAMPLE 4
Area( 5 Lat Long 10 )
PerspectiveCall( :Perspec )
ShadowCall( :Shadow )
Jump( : )
:Perspec
Perspective
:Shadow
RefPoint( 7 :End 1 Lat Long )
RotatedCall( :Rot 000 000 000 )
:End
Return
:Rot
... Instruction
... Instruction
... Instruction
Return
EndA
この例はオブジェクトに影を与える方法を示しています。
ShadowCall
のジャンプターゲットに注意してください。これはPerspectiveCall
が使用しているターゲットを越えた位置にあります。影は2次元で、perspective におく必要がありません。[February 1997]この主題について投稿したいものがあれば
kraybill@vianet.net.auにメールを送ってください。