Prepar3D v2 日本語環境で動かない理由を調査

概要

本記事は、別記事から分離した内容となる。
※初版は2014年3月26日となる。随時修正は行っている。

 

不具合の理由

これらの日本語環境での問題は、中国語の環境でも発生する事象とのこと。
アジア言語環境で正常に動かない問題だが、声をあげなければ改善はされない。
「me too!」「I have the same problem!」「please fix that!」のような簡単な数単語の文言でもいいので、筆者の投稿した内容に追記いただけると助かる。
残念のなことに、中の人から「英語環境で使ってね」と返事が来てしまった。

それでは本題。本現象の解析だ。

  • “同僚救出ミッション”を指定した場合は、事象が発生しない。
  • デフォルトのF22+ラングレー基地では発生する。

違いはこうだ。

  • “同僚救出ミッション”は旧型式(FSX/P3Dv1)のミッションファイル
  • “F22+ラングレー基地”は新形式のミッションファイル

前者はiniファイルのような、FLTファイル。後者はFXMLファイルとなっている。
その中で、緯度・経度の記述があるが、それが前述のロケールの設定によって、フォーマットが変わったしまうのだ。これは日本語環境でフライトをセーブしたものすべてに当てはまる。
逆にデフォルトのミッションや、自分でフライトしたミッションはこれを修正すれば無事読み込めるようになる。

下記の二つの行を検索する。緯度と経度だ。
文字化けしているが、何度 何分 何秒の形式で記載されている。これを小数点付の”度”の表記に変換して記載する。

たとえば、Value=”N52……” />をValue=”52.00000″ />とするのだ。
※ちなみにサンプルでは5桁だったが、最大有効桁数は不明。

変換は各自で計算する必要がある。Excelの場合はこのようになる。
計算式の例は =B2+(C2*100/60/100)+(D2*100/60/10000) となる。60進数を100進数に変換するのだ。
excel.png
※北半球及び東経しか飛んでいないのでわからないが、S(南緯)やW(西経)は-で表記するものと思われる。

fxml.png

そうすれば、日本語ロケールのままファイルを読み込めるようになる。
これはオランダのアムステルダム付近に出現した例。
fxml.jpg

起動時のF22+ラングレー基地は、\Prepar3D v2\flights\other\PREPAR3D.fxml
にファイルがある。これを修正すれば、北緯0度東経0度の海に落ちることはなくなるはずだ。

計算結果はこちら。+-は明確に記載すること。
実際は誤差で滑走路の右側150mぐらいの場所に来てしまう。

Name=”Latitude” Value=”37.07335833″
Name=”Longitude” Value=”-76.37219″
先ほどのフライトファイルの指定を外して起動してみよう。
たまたまラングレー基地の標高が低いため海にドボンとなっていたが、標高のデータは正しく読み込まれる。
※+は無くても構わない。

また、Show Start UpでFSXのFree Flightと同じ状態にするのも問題ない。
計算誤差はここでRUNWAYの選択をすれば改善する。
startup.jpg

FSXのフライトファイルを見ると、下記のように-が化けているものがある。
FXMLで独自の読み込み機能が作られた際に顕著化したのだろうが、もともとバグの痕跡はあったようだ。
FSXもP3DもFLTロード時は影響が運よく出なかっただけである。
flt.png

 

FSX / PREPAR3D
4 comments to “Prepar3D v2 日本語環境で動かない理由を調査”
  1. 計算式ですが、分は60で割って、秒は3600で割ればいいのではないでしょうか?

  2. Backyさんどうもです。
    P3Dのデータ的にはそれだとダメだったんですよ。あくまで10進数なんです。
    とはいっても。このデータいじること自体は仕様の検証で普段使ってはいないのですが

  3. 情報少なくてすみません。
    計算式を=B2+(C2/60)+(D2/3600)とすると正しい位置になります。

    V2.5になって、海ドボンの回避ができないです。flightフォルダーが無くなってます。デフォルトのフライトはユーザーのlocalフォルダーの中にあるPrepar3Dフォルダーに移動してますが、これの緯度経度を書き換えても海に落ちます。でも、ここを書き換えて、Prepar3D.cfgの[USERINTERFACE]
    SHOW_SCENARIO_WINDOW=1
    を設定してやると、フライトの選択画面から始まります。エラーも起きないですが、デフォルトフライトを変更すると、エラーが起きます。デフォルトを変更すると、デフォルトに設定したフライトファイルを修正しないとだめなようです。FSXがマルチバイト文字仕様なのでそのまま残されているのでしょうね。

    あと、計算式でプラスマイナスの方位は
    [INTERNATIONAL]
    ASLAT=2
    ASLON=2
    としないとだめです。

  4. backyさんありがとうございます!

    当初は私もファイルいじる方だったのですが、結局のところアドオンの中にはたとえFSXであったとしても英語モードでないと不具合があるもの(特に別プロセスとして動くexe.xmlに書くもの)があるので、てっとりばやい英語モードにしてしまいました。
    その代わり、AppLocaleでiTunes、Canon DPP等英語で不具合が出るものを日本語環境で動かすようにしています。不具合が出るソフトの使用頻度よりP3Dの利用頻度が高いことと、Windowsのメニューの表記自体は日本語で表示できますので。

    それと各アドオン機体にチュートリアルのフライトデータが付属することがありますが、将来、P3D形式が付属する場合、それの互換性が無く毎回書き換えることになるだろうというのもあります。インストールやアップデートのたびに上書きされてしまったりするのも管理が面倒だなっと思っています。

コメントは停止中です。