SSブログ

プッシュバックシーンのリアル化 その③(SIOC) [FSX&FS9 Tools]

キャビンアナウンスはFS Keeperを購入しようと思ってましたが、先日fuji3さんから「piyochanさんが作ったのがあるじゃない!!」と、ご助言をいただきまして、SIOCで実現する方向で勉強しはじめました。

SIOCプログラムを提供してくださったpiyochanさん、気づきを与えてくださったfuji3さんありがとうございます。

早速、piyochanさん作成のプログラムを確認しますが、全然わからなーい!(^^;

ので、基礎からじっくり勉強することに。
以下のURLとpiyochanさんのプログラムを見ながらまずは、シンプルなプログラムを組んでみました。
http://www.lekseecon.nl/howto.html#sound


■プログラムの流れ
1.FSUIPCからプッシュバックステータス(オフセット$31F0)を取得する。
2.プッシュバック中だった場合、指定したwavファイルを再生する。

流れとしては非常にシンプルなので、これをプログラミングしてみます。


■プログラム
Var 9000, name SoundPlay, Link SOUND
 ⇒sioc.iniのサウンドモジュールを呼び出す。(Soundモジュールを呼び出し、SoundPlayに入っている数字の番号に設定されている音源を再生する)

Var 9001, name StatusPushback, Link FSUIPC_IN, Offset $31F0, Length 4
 ⇒FSUIPCのオフセット$31F0の値をStatusPushbackに入れる。
{
IF &StatusPushback <> 3
 ⇒もしStatusPushbackが3でなかったら、(プッシュバック中だったら)
{
&SoundPlay = 1
   ⇒SoundPlay変数に1を入れる。
}
}


■SIOC.ini
SIOCのinitialファイルでは、音源番号と音源ファイル名を宣言しておきます。

[************** SOUND MODULE ***************]
Sound_disable=No
Volume=100
[ #1 ]
Sound=03_aisatsu2.wav,-1,-1,-1
⇒音源番号1が呼び出されたら、このwavファイルを再生する。


という、非常にシンプルなプログラムを実行すると以下のような感じになりました。



piyochanさんのプログラムを拝見する限り、恐らくその他にも状況を判断するためのパラメーターを組む必要がある(再生中は他のを鳴らすなとか、飛んでる最中はダメとか)と思うのですが、おおよそ組み方はわかりました。

せっかくなので、勉強がてらその他状況ごとの音声再生についても自分で組んでみようと思います。



nice!(0)  コメント(7)  トラックバック(0) 

nice! 0

コメント 7

Piyochan

けいすけさん、

あのスクリプトは随分前にSIOCの勉強のために作ったもので、構築中のためしばらく使ってないので自分でも詳しい処理を忘れてます。
ご指摘通り、次の音声を追い越して再生しないようにとか、フライト中に順番を戻したりできるようにいろいろ追加してあったと思います。
けいすけさんのスクリプト楽しみです。

by Piyochan (2017-01-15 09:13) 

けいすけ

piyochanさん、こんにちは。
忘れますよねー。極力、後で自分でわかるようにブログに書いたりevernoteにメモしてますが、それでも後で見ると「?」ということがあります(笑)
自分の場合、シートベルト、スモークサインがFSUIPCから連携されないので、他のパラメーターでの実装を考えてます!
P3Dだとこのパラメーターには値が入らないとかあるんですかねー。
by けいすけ (2017-01-18 08:43) 

Piyochan

けいすけさん、

シートベルトとノースモーキングのサインはProsimのGateがあるので、そちらにIOCPのVarの番号を指定するよいですよ。SISMOのOHのそれらのスイッチがProsimと連動していることが前提ですけれど。
Overheadで使えるスイッチはあまりない上、実機でもシートベルトサインのスイッチはCAへの合図に使っているようなので。
by Piyochan (2017-01-18 15:29) 

けいすけ

piyochanさん
なるほど!Gateですか!
SISMO→Prosim→SIOCという流れですね。
さすがです。

やってみたところ、offからautoにすると一瞬valueに「1」が入りますがすぐ「0」に戻ります。
逆にonからautoにするとvalueは「0」のままです。
シートベルトもスモークも一緒でした。
これが正常な動きなのでしょうか。

すみません、こんなところで質問して(^^;
by けいすけ (2017-01-18 21:24) 

Piyochan

多分、SISMOのOHのこれらのスイッチはON-ON-ONのスイッチで真ん中のONだけが結線されているんでしょうね。OFFとAUTOの位置のものは結線されていないので、ONか、ONでないかの状態しかわからない可能性があります。これは他のベンダーのものでも同じ事が多いと思われます。MasterカードとかFDSのSYSカードなどに繋いでいるなら自分で接続を追加するとかできるのですがSISMOのってどうなんでしょう。

結線を変更できないとするとスクリプトで工夫できるかどうかですね。
OFFからAUTO, AUTOからOFFで一瞬ONを通過するので、ONのステータスはSIOCでキャッチされるけれどどちらの方向かはわからないですね。
2つのスイッチを組み合わせて2x2の4通りのステータスをうまく使って対応するとか考えられそうです。

ちなみにP3DでもP3DのOH計器画面上でスイッチをマウスで操作すればFSUIPCのOFFSETに反映されるのではと思います。
FSXもそうです。PROSIMとは連動していないのは同じだと思います。
by Piyochan (2017-01-19 09:26) 

Piyochan

補足です。SISMOの2つのスイッチが3極のタイプなら、ONとAUTOの+か-の端子を繋いでしまえばONとAUTOの両方がONとして扱われるようになるので話は簡単です。+か-かはSISMOのカードがどちらをコモンにしているかによります。コモンでない方を繋ぎます。
by Piyochan (2017-01-19 09:48) 

けいすけ

なるほどー
実はSISMOのオーバーヘッド開けたことないんです(笑)
降ろして開けるのもしんどいので、今のところは一瞬拾うデータで組むか、この2つのスイッチを使わないで組んでみようと思います。
SISMOのボードは多分オリジナル製で、しかもSC-PASCALというブラックボックスのプログラムでIOPCを飛ばしてるので、SIOCのようにいろいろいじれないってのはネックですねー。
いざ壊れたら開けてボードをopencockpitsに変えてSIOCで組み直すしかなさそうです(笑)
いろいろありがとうございます^_^
by けいすけ (2017-01-20 09:51) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0