World Wide Guide to FS Scenery Design日本語版 | Knowledge Bank


シーナリ表示と database error の問題

投稿したいものがある場合、 kraybill@vianet.net.au. にメールを送ってください。

オブジェクトが見えなくなる
Database errors


オブジェクトが見えなくなる

Q. 空港にアプローチしているとき、ときどきビル・poly3d や 滑走路が見えなくなります。また、アプローチしているときは何も見えないのに、通り過ぎると すぐ見えるようになったりします。これは近くにある .bgl ファイルとコンフリクトしている のが原因でしょうか? ぶつかっているファイルを1つにまとめればこの現象は起きなくなるのでしょうか?

Konstantin Kukushkin の発言:

これは低い scenery density 設定により起こります。FS5 は取り扱う 3D オブジェクトの 個数の内部制限を持っており、この制限は scenery density に依存しています。 objectを見えなくするかどうか決める FS5 の規則は不明です。 正確な数値は FSASM のドキュメントに見受けられます。

この主題に対して投稿したいものがあれば、
kraybill@vianet.net.au にメールを送ってください。


Database Errors

ケープタウンの 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

RefPointRotatedCall 命令の直後で終端されていることに注意してください。Rotation Jump 中に、RefPointは rotation の終わりまで自動的に引き伸ばされます。それゆえ、あなた自身で引き伸ばす必要はありません。

RotatedCallサブルーチンの終わりのReturnに注意してください。ReturnRotatedCallに続く命令へ戻ることにより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の直後で終端されています。前と同じく、ROtatedCallRefPoint中に自動的に含まれます。

再び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にメールを送ってください。


Last updated 2 February 1997 by Gene Kraybill. All rights reserved.
日本語訳:村上 卓弥