2007/1/16

そんな餌にオレ様がクマー  VRMスクリプト禅問答
ghost氏にツッこんでもらいたいものです。

つっこめって・・・キミにか?

自滅願望でもあるのか?

みたいな冗談はさておき。
なんでこんなにも連結にこだわるかというと、かの有名な「碓氷峠」の動画をUPされたjunichiさんのこの記事に影響を受けてそう思うようになった

同上
実は、ボクも氏の動画を見ながら同じようことを思ってたんだな、コレが。ただ、どっちかと言うと第三閉塞氏の言うそれよりも、
こんなに受けるなら連結音を追加しとけば良かったかな!

junichi氏自身の方に賛同するんだけれども。連結に際して連結音を再生するスクロールみたいなのは、比較的簡単に書けると思うんだけども(オブジェクトの消滅を伴うので、ちょっと工夫が要るかな?)要りますかね。まぁ、週末まで待ってください。今、手元にVRM環境がないので。

これで終わってしまうと、自爆覚悟でボクちゃんをご指名くださった第三閉塞氏に悪いので・・・あぁ、これも冗談ですが・・・益体もないことを書いてみることにしましょう。

第三閉塞氏の主張は“VRM4自身に車両の連結に伴う揺動を再現して欲しい”というものですが、個人的には反対に一票です。いや、そういう演出はあってもいいと思うんだけれども、これをVRM4ビュワーに埋め込み実装してしまうと、今度は「もっと揺れが大きいほうがいい」とか「いや、オーバー過ぎ」みたいな話になるのがオチなんじゃないかと。

で。実はボクの本当の関心事は他にあるんですが、以前から主張していたことの1つとして、SetCouplePolicyみたいな命令が欲しい、というのがあるワケで。たとえば、ですが・・・

SetCouplePolicy 変数

2つの編成を接近させた場合の挙動を設定します。

0 = 連結無効、ぶつけても素通りする
1 = 連結無効、ぶつけると編成は停止する
2 = 連結有効、ぶつけられた側に吸収される(デフォルト)
3 = 連結有効、ぶつけた側に吸収される

といった感じ。第三閉塞氏の言うようなアクションをさせたい場合は、SetCouplePolicyの他にSetEventTrainApprochみたいなのも必要かな。

SetEventTrainApproch メソッド名 イベントIDを受け取るグローバル変数

編成が接近した場合にコールされるコールバックを設定します。

な感じで。感知距離をmmで設定できるとさらに応用が広がるけど(すれ違いに連動して警笛鳴らすとか)これはビュワーのパフォーマンスに悪影響があるかも。でも、コレ。下手こくと無限ループするな。Afterイベント同様に一発ものにしないと。

まぁ、ともかく。この2つの命令に相当するモノがあれば、SetCouplePolicy 0した編成にSetEventTrainApprochでイベントを仕掛けて、呼ばれたメソッドの中で自分好みの連結アクションが書けるよね。そのメソッドの中でSetCouplePolicy 2 or 3すりゃ、ホントに連結もされるだろうし。もちろん、ホントにそんな機能が実装されたら、他ならぬボクが、銘々の好みに応じたアクションを実現するスクロールは大盤振る舞いしますよ。

とまぁ、こんなモンで満足ですか、つっこみ?>第三閉塞殿

任意に移動する複数のオブジェクトの衝突判定は、一般論としては電脳的に負荷の高い処理に属するので、正直、あんまりこういう機能の実装には期待してないんですけども、因果関係はともかくSetEventFocusIn/Outが実装され、ビュワー起動時のFocusInイベント発動も実現したので、無駄にはならんかモナー、と書き飛ばしておきます。

あ、あと。
誰でもいいから週末までにいい具合の連結音、用意しといてー>音鉄な人
0


teacup.ブログ “AutoPage”
AutoPage最新お知らせ