Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[9646] SDKの定期的に呼ばれる処理について。 / たあし
Done [Question,SDK] Response
いつも使わせて頂いております。
SDKを使ってアニメーション関係のプラグインを作りたいと考えています。現在コマンドプラグインのサンプルを参考にしています。

それで質問なのですが、アニメーションの再生のような、操作していない間も定期的に呼ばれる関数はありますか?標準のボーンプラグインがポーズの再生をしているので、何か方法があると思っていますがわかりません。
MQCommandPluginクラスのOnDraw関数は、視点が移動した時や何か操作した時など、画面を再描画する時のみ呼ばれるようですね。OnDrawの終端でRedrawAllSceneを呼んでも、必ず再描画されるわけではないのでしょうか?

プラグインSDKの仕組みについてよくわかっていなければ、それも教えていただけると嬉しいです。
2023-01-03 14:53
[9647] Re: SDKの定期的に呼ばれる処理について。 / Administrator
OnDraw内でRedrawAllSceneは呼ばないでください。

定期的なイベントを発生させるためにAddTimerEventが用意されています。
指定した時間後にイベントが一度発生しますが、イベント関数内でさらにAddTimerEventを呼び出すことで定期的にイベントを発生させることができます。

ただし、タイマーや再描画は必要なときのみ使用してください。不必要な呼出しは全体パフォーマンスを低下させ、無駄な電力消費にもなってしまいます。
2023-01-04 16:58
[9648] Re: SDKの定期的に呼ばれる処理について。 / たあし
>定期的なイベントを発生させるためにAddTimerEventが用意されています。
>指定した時間後にイベントが一度発生しますが、イベント関数内でさらにAddTimerEventを呼び出すことで定期的にイベントを発生させることができます。

ありがとうございます!
なるほど、ウィジェットはメニューやダイアログのためにあると思っていましたが、処理もウィジェット本体に持たせることができるのですね。勉強になりました。
2023-01-05 19:02