2007/2/28
● VRM入道的ネットVRM界隈今月のピックアップ
・うどん屋 別館[VRM]
関連:タグ取り合戦にちょっと機能追加してみた
何と言っても今月の要注目はネットVRM界隈期待のニューカマー、うどん屋店主氏。本職はうどん屋ではない、と書いておられたように思いますが、んじゃ、なんで“うどん屋”なんですかね?
・更にウダウダ(VRMサウンド駄論其の3)@ 日向車両mini
・簡易緩解音 @ such a cool
サウンド関係の話題の中でも(少なくともボク的には)スクロール化への流れを決定付けたエントリをピックアップ。具体的なアイデアをわかりやすい成果物を添えて連発してくれている両氏に表敬。
・I.MAGiC VRM News Vol.75(アップデータ4.0.5.4リリース)
関連:
水平楕円軌道フライスルーカメラ
まさに!フライスルーカメラ
擬似3Dフライスルーカメラ
先月のVRM Newsで予告されていたフライスルーカメラのスクリプトによる制御が実装され、従来のVRMビュワーでは不可能だった複雑かつ精緻なカメラワークが可能に。3月のVRMoviesでは、さらにこのカメラワークを活用した事例を紹介していきますんで、乞うご期待。
・I.MAGiC VRM News Vol.77
関連:餘部、再び @ kNRニュース
第6号収録予定のVRM4初の蒸気機関車“C57”と、大型ストラクチャ“餘部鉄橋”の詳報。「詳細な資料をご提供いただいた方」って誰だろう、と思っていたら、どうやら啓明氏らしいです(他にもおられるのかも知れませんが)。
・数値を伴わないグラフは大抵少ない母数を誤魔化す衒学だから気をつけろ
・Hagu-R氏のスクリーンショットはもっと評価されてもいいと思っている件
・ポータブル編成とTatsuo翁の知られざる関係
・VRM入道の読者はもう少し減ってもいいんじゃないかと思っている件
・マクロ派とミクロ/ナノ派の非対称性について

2007/2/27
・音声リソース切替時の巻き戻し対策
たとえばリソースIDの3番が低速走行音として再生されている最中に、SetWaveLow 3(低速走行音をリソースIDの3番へ変更せよ)が実行されると、この瞬間、走行音の再生がリソースID3番の音声リソースの先頭に巻き戻る。たとえば、この音声リソースが「がったんごっとん」みたいな音がするとして、途中で巻き戻りが起こると「がったんごっとん、がった、がったんごっとん・・・」になる、ということ。
これを回避する方法をα2版をリリースしてから思いついたので、次回のリリースで実装する。っつーか、回避するのは簡単なんだけども、ボク以外の人がm4g規格車両スクロールを書くときにも使えるロジックにする方法が、α2開発の時点で浮かばなかった。これはガイド込みで後日公開の予定。
α2には、現時点では(少なくともスクロールレベルでは)動作しない準備工事的なロジックが含まれている。これは、外部のセンサー部品から任意のパラメーターをm4g規格編成に引渡し、パラメーターに対応する音声リソースを警笛に設定して一回吹鳴させる、という機能で、たとえば車内アナウンスなどの組み込みをイメージしたものだ。基本的な考え方は【何か】シリーズと同じなので、興味のある人はご参照あれかし。
で、これを実現するために、自分で“回避した方がいい”と書いた編成名の参照をやっている。センサーからパラメーターを渡せるのは編成オブジェクトに所属するグローバル変数である一方、警笛音を変更できるのは車両スクリプトである。したがって、車両スクリプトから編成のグローバル変数を参照しなければならないが、この際、編成名に依存した絶対参照をすることになる。
この結果どうなるかと言うと、一旦【m4g】サウンドギミックエンジンを組み込んだ後に編成名を変更すると、エラーになって(未定義のオブジェクト参照)ビュワーが起動できなくなる、というお話。これは、特にポータブル編成的な配布を前提とする場合、非常に具合が悪い。名前の変更が出来ない(出来るけど動かなくなる)のがナンセンスなのは当然として、同じ編成を2つレイアウト上に読み込むことも出来なくなる(同上)のもけしからん。
なので、この機能は後日削除するか、或いは別途アドオンとして提供する、つまり、この機能(車内アナウンス等の組み込み)を使いたい人だけが、デメリットを覚悟の上で使う、という性格のモノにすべきか、と思っている。が、現時点では未決断。ご意見のある方は遠慮なくどうぞ。
ちなみに、VRM4の車両スクリプトに、たとえば GetParentTrain <編成オブジェクト変数>みたいな命令が実装されて、動的に車両自身が所属する編成への参照を取得できるようになればこの問題は解決するのだが・・・まぁ、期待せずに書き残しておこう。
moko氏が超高速に対応してくれたm4g規格サウンドギミックスクロールの組み込み例サンプルには、拙作スクロール由来のスクリプトに加えて、独自のロジックが組み込まれていた。これは、FocusInイベントに連動して、車両のコンプレッサー音(停車中にランダムに発生する音)を再設定するというもの。
本稿時点で実はボク自身が確認できていないんだけれども、前述の“音声リソース巻き戻し問題”がここでは良い方に出ていて、おそらくSetWaveCompressor命令を実行すると、その瞬間に一度コンプレッサー音が鳴るんだと思われる。つまり、アクティブな編成を切り替えた瞬間に、その編成が停車中であればとりあえずコンプレッサー音がなる、という具合。気合の入ったコンプレッサー音は非常に印象的な効果があるので、やや過剰演出気味な気もしつつも、このギミックはスクロールに取り込んでしまおう、と思ってます。
βリリースに際しては、少なくともポータブル編成ギミック一発組み込み並みの詳細な利用ガイドを書こうと思ってるんですが、これが難しい。何が難しいかというと「この音声にはこんな音を割り当てるんですよ」と説明する際の「こんな音」をどう字面で説明するのか、が難しい。本エントリ冒頭にもそれが現れていて「がったんごっとん、がった、がったんごっとん・・・」で、ボクの伝えたいことがすべての読者に伝えるとは到底思えない。そういうこと。
たとえば、m4g規格サウンドギミックでは、通常一種類の低速走行音を、任意の電圧以下で走行する場合に出発時(加速中)と停車時(惰行/制動中)にそれぞれ任意の音声リソースを割り当てることが出来る。作った本人としては、ここには短いループ音ではなく、1分くらいの長さの音声リソースを用意して「ふぃ〜ん、ふぃ〜ん」と重なって音程が上がっていく発車時の走行音であるとか、「ぎぎぃぃぃ・・・」みたいなブレーキ音を入れると良いと思っているのだが、これをどう説明したらいいかが難しいし、あまり詳しく説明し過ぎると、利用者の自由な発想を奪いそうで嫌だ。

2007/2/26
[Download] 【m4g/1.0】サウンドギミックスクロール(α2)
※現時点でこのスクロールは評価中です。完成したサービスをご希望の方は、後日詳細な解説ドキュメント付きでリリースされるであろうβ版を待ってください。
