« mixi Alertが紹介されました | メイン | 他の手 »

2005年04月18日

吉里吉里2/KAG3ムービー拡張日誌:: セグメントループのデグレード

    

セグメントループをキャンセルしたら、終端フレームで停止してしまうと言う不具合が報告された。
停止フレームを設定したら即座に反映されるわけではなく、次のシーク時に反映されるようだが、即座に反映されると思っていたせいで問題が発生した。

修正方法を考えて、すぐに思いつくのは…
1. 吉里吉里側で別にセグメントループ状態を管理するフラグなどを設け、ループ処理する時にセグメントループ状態を解除する。
2. 停止フレームの設定が即座に反映される方法を探す。

で、とりあえず即座に反映される方法を探してみるが、やはりシークを行わなければ反映されないようだ。
Pauseした後, Playしても反映はされなかった。
また、シークでいろいろとやっても無理だった。
現在の時間を得て、そこにシークすれば即座に反映されるが、若干ムービーがひきつる。
そもそも即座に反映されたとしても、終端フレーム付近でセグメントループがキャンセルされた場合、タイミングによっては今回と同じような問題が発生するな。
ただ、即座に反映されなければ、1回多くループすることになるので、即座に反映できるのならその方がいい。
でも、よく考えたら1.の方法でもタイミングの問題は発生し得る。
セグメントループをキャンセルして、次のループ終端の直前にセグメントループが設定され…って問題ないか。
でも、イベント処理とループキャンセル呼び出しが別スレッドの場合は、フラグ周りをクリティカルセクションで保護する必要がありそう。



投稿者 Takenori : 2005年04月18日 22:43




comments powered by Disqus
Total : Today : Yesterday : なかのひと