F-14BのCockpit View以外でHUDが表示できない
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
inoue
居住地: 東京
投稿数: 41
F-14BのCockpit View以外でHUDを表示させようとしていますが、うまく
いきません。
環境は、次のとおりです。
・OS: Windows XP SP3
・FlightGear Version: 2.0.0
それで、/data/Aircraft/f-14b/Models/Cockpit/hud.xmlの次の部分、
----------------------------------------------------------------------
<animation>
<type>select</type>
<object-name>hud</object-name>
<condition>
<equals>
<property>sim/current-view/name</property>
<value>Cockpit View</value>
</equals>
<property>sim/hud/visibility[1]</property>
</condition>
</animation>
----------------------------------------------------------------------
を、丸ごと削除しても、あるいは書き足して次のようにしても、
----------------------------------------------------------------------
<animation>
<type>select</type>
<object-name>hud</object-name>
<condition>
<or>
<equals>
<property>sim/current-view/name</property>
<value>Cockpit View</value>
</equals>
<equals>
<property>sim/current-view/name</property>
<value>Helicopter View</value>
</equals>
</or>
<property>sim/hud/visibility[1]</property>
</condition>
</animation>
----------------------------------------------------------------------
いずれにしてもCockpit View以外の、(Helicopter Viewを含めて)どのViewでも
HUDは表示されません。
メニューのFileからBrowse Internal Propertiesのコマンドを選択して、
/sim/hud/visibility[1]や/sim/hud/visibilityを操作しても、
Cockpit View以外では表示されません。
また、/data/Aircraft/f-14b/Nasal/hud.nasに次の記述を見つけて、
----------------------------------------------------------------------
# This generic func is deactivated cause we don't need it and we have a better
# use for "h" keyboard shortcut.
aircraft.HUD.cycle_color = func {}
var pilot_g_alpha = props.globals.getNode("sim/rendering/redout/alpha", 1);
var hud_intens_control = props.globals.getNode("sim/model/f-14b/controls/hud/intens");
...
...
...
----------------------------------------------------------------------
あっ! これは手掛かりなのでは? と思い、どこかで、この「generic func」を
「deactivated」にしているのだろうと考えて、さんざん捜してみたのですが、
どうにも見つかりませんでした。
FlightGearと出会って一ヶ月弱、ずっとCessna 172PでHelicopter View、
HUDに頼りつつ楽しんできました。今回、初めてF-14Bに挑戦してみて
戸惑っています。
*やっぱり戦闘機って速いですね、ものすごく・・・。
どなたかご存知の方、ご教授くだされば幸いです。
いきません。
環境は、次のとおりです。
・OS: Windows XP SP3
・FlightGear Version: 2.0.0
それで、/data/Aircraft/f-14b/Models/Cockpit/hud.xmlの次の部分、
----------------------------------------------------------------------
<animation>
<type>select</type>
<object-name>hud</object-name>
<condition>
<equals>
<property>sim/current-view/name</property>
<value>Cockpit View</value>
</equals>
<property>sim/hud/visibility[1]</property>
</condition>
</animation>
----------------------------------------------------------------------
を、丸ごと削除しても、あるいは書き足して次のようにしても、
----------------------------------------------------------------------
<animation>
<type>select</type>
<object-name>hud</object-name>
<condition>
<or>
<equals>
<property>sim/current-view/name</property>
<value>Cockpit View</value>
</equals>
<equals>
<property>sim/current-view/name</property>
<value>Helicopter View</value>
</equals>
</or>
<property>sim/hud/visibility[1]</property>
</condition>
</animation>
----------------------------------------------------------------------
いずれにしてもCockpit View以外の、(Helicopter Viewを含めて)どのViewでも
HUDは表示されません。
メニューのFileからBrowse Internal Propertiesのコマンドを選択して、
/sim/hud/visibility[1]や/sim/hud/visibilityを操作しても、
Cockpit View以外では表示されません。
また、/data/Aircraft/f-14b/Nasal/hud.nasに次の記述を見つけて、
----------------------------------------------------------------------
# This generic func is deactivated cause we don't need it and we have a better
# use for "h" keyboard shortcut.
aircraft.HUD.cycle_color = func {}
var pilot_g_alpha = props.globals.getNode("sim/rendering/redout/alpha", 1);
var hud_intens_control = props.globals.getNode("sim/model/f-14b/controls/hud/intens");
...
...
...
----------------------------------------------------------------------
あっ! これは手掛かりなのでは? と思い、どこかで、この「generic func」を
「deactivated」にしているのだろうと考えて、さんざん捜してみたのですが、
どうにも見つかりませんでした。
FlightGearと出会って一ヶ月弱、ずっとCessna 172PでHelicopter View、
HUDに頼りつつ楽しんできました。今回、初めてF-14Bに挑戦してみて
戸惑っています。
*やっぱり戦闘機って速いですね、ものすごく・・・。
どなたかご存知の方、ご教授くだされば幸いです。
投票数:7
平均点:4.29
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.1
sambar
居住地: 岡山
投稿数: 484
inoueさん、こんばんは。
先ほどf-14b/Nasal/hud.nasを読んでみたのですが、どうやら
hud.nas内の var update_hud関数では以下のようにしてるようです。
・視点がコックピット視点かどうか判定する
・視点がコックピット視点なら、いろいろな処理をする。
・視点がコックピット視点でないなら、「hudを透明にする」
具体的には以下のこの部分です。
というわけで、「強制的にif文を成立させる」か、「この条件判定をしない」ように変更してやればどの視点でもf-14専用HUDが表示されるようになります。
具体的には、
・if文の前の「var v + view.getValue();」→「var v = "Cockpit View" ;」に変更する
・if文の行を 「 if (v == "Cockpit View") {」→「if (v==v) { 」と変更する、
・if文その物を消してしまって、else{ }の部分も削除する (括弧の数に注意)
等の方法があります。
先ほどf-14b/Nasal/hud.nasを読んでみたのですが、どうやら
hud.nas内の var update_hud関数では以下のようにしてるようです。
・視点がコックピット視点かどうか判定する
・視点がコックピット視点なら、いろいろな処理をする。
・視点がコックピット視点でないなら、「hudを透明にする」
具体的には以下のこの部分です。
var update_hud = func {
var v = view.getValue();
if (v == "Cockpit View") {
var h_intens = hud_intens_control.getValue();
var h_alpha = hud_alpha.getValue();
var g_alpha = pilot_g_alpha.getValue();
hud_alpha.setDoubleValue(h_intens - g_alpha);
} else {
hud_alpha.setDoubleValue(0);
}
}
というわけで、「強制的にif文を成立させる」か、「この条件判定をしない」ように変更してやればどの視点でもf-14専用HUDが表示されるようになります。
具体的には、
・if文の前の「var v + view.getValue();」→「var v = "Cockpit View" ;」に変更する
・if文の行を 「 if (v == "Cockpit View") {」→「if (v==v) { 」と変更する、
・if文その物を消してしまって、else{ }の部分も削除する (括弧の数に注意)
等の方法があります。
投票数:12
平均点:4.17
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.1.1
inoue
居住地: 東京
投稿数: 41
sambarさん、バッチリです!
やりたかったとおりのことが実現しました。
ご教授くださった中で二番目の手順にしました。後でカスタマイズする時のことを
考えて、
var v = view.getValue();
の部分は残しておき、続く行を、
if (v == v) {
と書き換えました。
またsambarさんに助けていただきました。ありがとうございます。
こうやって、このサイトに情報が蓄積されていくのは素晴らしいことですね。
やりたかったとおりのことが実現しました。
ご教授くださった中で二番目の手順にしました。後でカスタマイズする時のことを
考えて、
var v = view.getValue();
の部分は残しておき、続く行を、
if (v == v) {
と書き換えました。
またsambarさんに助けていただきました。ありがとうございます。
こうやって、このサイトに情報が蓄積されていくのは素晴らしいことですね。
投票数:8
平均点:5.00
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.2
takehiro
居住地: Kawasaki
投稿数: 101
遅レスですが、nasalには詳しくないのですがreturnつかえましたか?
使えれば即効でreturnすればいいのでは。
使えれば即効でreturnすればいいのでは。
投票数:11
平均点:3.64
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.2.1
inoue
居住地: 東京
投稿数: 41
takehiroさん、初めまして。ご助言、ありがとうございます。
実は、「return」の意味が分からないのですが、returnのキーを押せば
何とかなるかも、ということなのでしょうか。
そうでしたら、以前の、Cockpit View以外でHUDが表示できなくて
悩んでいた頃の状態に戻した上で、幾つかの場面でreturnのキーを
押してみたのですが、何も変化がありませんでした。
本来は、どういう結果が期待できるものなのでしょうか?
実は、「return」の意味が分からないのですが、returnのキーを押せば
何とかなるかも、ということなのでしょうか。
そうでしたら、以前の、Cockpit View以外でHUDが表示できなくて
悩んでいた頃の状態に戻した上で、幾つかの場面でreturnのキーを
押してみたのですが、何も変化がありませんでした。
本来は、どういう結果が期待できるものなのでしょうか?
投票数:7
平均点:2.86
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.3
takehiro
居住地: Kawasaki
投稿数: 101
inoueさん、失礼いたしました。
if文の条件式を強制的に真にしなければならないのでした。
sambarさんが書かれている内容で間違いはありませんので・・・
ちなみにreturnというのは、プログラムの関数(この場合はインライン関数になるんでしょうか)が、呼び出し元に結果を返す命令のことです。
結果を返すということは、関数の中の処理をそこで終了することを意味します。
ここでいう関数はプログラムの処理の塊のようなもののことです。
if文の条件式を強制的に真にしなければならないのでした。
sambarさんが書かれている内容で間違いはありませんので・・・
ちなみにreturnというのは、プログラムの関数(この場合はインライン関数になるんでしょうか)が、呼び出し元に結果を返す命令のことです。
結果を返すということは、関数の中の処理をそこで終了することを意味します。
ここでいう関数はプログラムの処理の塊のようなもののことです。
投票数:14
平均点:5.00
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.3.1
inoue
居住地: 東京
投稿数: 41
takehiroさん、合点がいきました。
returnというのは構文の中で使うもののことですね。
キーボードのreturnと取り違えていました。
ご教授、ありがとうございました。
returnというのは構文の中で使うもののことですね。
キーボードのreturnと取り違えていました。
ご教授、ありがとうございました。
投票数:8
平均点:6.25
Re: F-14BのCockpit View以外でHUDが表示できない
msg# 1.4
Tat
投稿数: 375
別スレッド で、F-14B を使っている時に FlightGear のデフォルト HUD を表示させる事ができないかという話が出てきました。
そこでその方法とファイルを公開しておきます。
1. 変更方法
対象となるのは以下の2つのファイルです
1) data/Aircraft/f-14b/f-14b-set.xml
2) data/Aircraft/f-14b/Nasal/hud.nas
2. 変更概要
f-14b-set.xml では F-14B 専用の HUD 記述と、HUD表示切替キーの記述を無効にして、デフォルトのHUDを利用できるようにします。具体的には、202行からの <hud> タグと 1165行目からの <key n="104"> のタグをコメントアウトします。
hud.nas では デフォルトの HUD操作を無効にする部分や色設定を無効にします。具体的には以下のコードとなります。
「これ」で示された部分がデフォルトHUD に関する制御部分です。最初の部分は、data/Nasal/aircraft.nas に記述された HUD.cycle_color() というメソッドを上書きして何も処理をしないようにしています。2番目はHUDの色の初期値を透明にしています。
これらを全て無効にすれば、デフォルトのHUDが利用できるようになります。
3. 変更ファイル
上記変更を反映した2つのファイルを以下のURL に置きました。
ダウンロードして、f-14b のフォルダで展開してください。
http://macflightgear.sourceforge.net/wp-content/uploads/temp/f-14b-default-hud.tar.gz
そこでその方法とファイルを公開しておきます。
1. 変更方法
対象となるのは以下の2つのファイルです
1) data/Aircraft/f-14b/f-14b-set.xml
2) data/Aircraft/f-14b/Nasal/hud.nas
2. 変更概要
f-14b-set.xml では F-14B 専用の HUD 記述と、HUD表示切替キーの記述を無効にして、デフォルトのHUDを利用できるようにします。具体的には、202行からの <hud> タグと 1165行目からの <key n="104"> のタグをコメントアウトします。
hud.nas では デフォルトの HUD操作を無効にする部分や色設定を無効にします。具体的には以下のコードとなります。
# Commented out by TAT for enabling FlightGear's default HUD
# aircraft.HUD.cycle_color = func {} <-- これ
var pilot_g_alpha = props.globals.getNode("sim/rendering/redout/alpha", 1);
var hud_intens_control = props.globals.getNode("sim/model/f-14b/controls/hud/intens");
var hud_alpha = props.globals.getNode("sim[0]/hud/color/alpha", 1);
var view = props.globals.getNode("sim/current-view/name");
var OurRoll = props.globals.getNode("orientation/roll-deg");
var eye_hud_m = 0.6686;
var hud_radius_m = 0.105;
aircraft.data.add("sim/model/f-14b/controls/hud/intens", "sim/hud/current-color");
# Commented out by TAT for enabling FlightGear's default HUD
# hud_alpha.setDoubleValue(0); <--- これ
「これ」で示された部分がデフォルトHUD に関する制御部分です。最初の部分は、data/Nasal/aircraft.nas に記述された HUD.cycle_color() というメソッドを上書きして何も処理をしないようにしています。2番目はHUDの色の初期値を透明にしています。
これらを全て無効にすれば、デフォルトのHUDが利用できるようになります。
3. 変更ファイル
上記変更を反映した2つのファイルを以下のURL に置きました。
ダウンロードして、f-14b のフォルダで展開してください。
http://macflightgear.sourceforge.net/wp-content/uploads/temp/f-14b-default-hud.tar.gz
投票数:5
平均点:2.00