HWA(英語版R252ベータ)とXluaでサンプルを作成。あらかじめビルドした実行ファイルも付きます。サンプルのソースもすべて見れますがLuaスクリプトやXLuaを使わない人をまったく考慮してない内容。もともとJavaアプレットでビルドしようとか考えてなかったので徹底した不親切仕様ですがMMF2の機能だけでもタイマベース動作はもちろん作れます。サンプルは変数を惜しみなくどんがどんが使っているのでXLua使った方が作業的に都合が良かったのです。日本語版にはまだHWAが実装されていないので記事のカテゴリは「できるかな」の方にしました。もちろんHWAが実装されていない日本語版ユーザーでもタイマベースのサンプルとしてご利用いただけます。HWAが動かない環境の方はMFAファイルの方から設定を弄って描画モードをスタンダードにしてください。
ファイル構成が普通のサンプルよりちょっと多いのでその辺りから説明を。スクリプトに改変加えたりファイル構成弄ると速攻エラー吐いてアプリケーションが動かなくなるのでその点注意してください。→ダウンロード★
tb.txt | XLuaスクリプト本体です。無理な改変するとアプリケーションがまったく動かなくなります。 | |
array.dll | XLua用の拡張dllです。これを使うのは主に筆者の趣味です、でも時々便利でもあります。 | |
setting.txt | 設定ファイル。始点とか終点のXY位置を随時書き込んでます。アプリケーションの実行中は触らないで。 | |
timebase_test.mfa | MMFアプリケーション、MMF2で開くサンプルファイルです。XLua使ってるのでXLua分からないと何してるのかさっぱり分からないと思われます。 | |
timebase_test.exe | ビルド済み実行ファイル |
実行中の画面はこんな感じ。設定ファイルから設定すれば起動時にフルスクリーンで起動するか、ウィンドウモードで起動するかを選べます。このサンプルはタイマーベース動作を視覚的に分かりやすく伝えられないだろうかという意図で作られたサンプルです。だからサンプルのソースコード見て内容が理解できなくても実際のアプリケーション動作をよく観察すれば一応MMF2のタイムベースについては「こういうものかー」っていう理解の一助にはなるかも?
- FPSは固定ではなく変動を前提に作ってある(ランダムで決定)
- 始点から終点に至るまでの約一秒間のスプライトの軌跡をぜんぶ表示します
- クリックチームの標準動作がタイムベースオプション有効だと実際どう働くかを観察
この三つが主な内容、1から順に説明していきます。
1:可変FPS
サンプルではプリセットのFPSは10を最低の数値として上限が100まで用意して有ります。
アプリケーション起動時には毎回ランダムでFPSを決定してます。アプリケーションの再起動用ショートカットとしてキーボードの「Rキー」を割り当てして有りますので、気に入らないFPSが割り当てられた時にはアプリ再起動を行えば新しいFPSが割り当てられます。FPSを変更した直後はフレームレート動作的に安定しないので、アプリケーションの起動後1秒が経過したら「実測FPS」というところにFPSが表示されます。
この数値が表示がされた状態で実際の観察を行ってください。そうすると比較的安定した結果が得られます。ちなみにFPSが100を指定されても、環境によって実測は60になりそれ以上出ないと思われます。実行中画面左に出力されるのはデルタタイム(オフセット /時間間隔/時間差)です。出力されたデルタを見ても筆者の環境だとFPS100を指定してもFPS60を指定した時とほぼ同じ値になります。フルスクリーンモードとウィンドウモードだとやはりウィンドウモードは結果が安定しません。フルスクリーンモードの場合、設定でVsyncもオンにしてあるので比較的安定した結果が期待できています。
アプリケーション起動時には毎回ランダムでFPSを決定してます。アプリケーションの再起動用ショートカットとしてキーボードの「Rキー」を割り当てして有りますので、気に入らないFPSが割り当てられた時にはアプリ再起動を行えば新しいFPSが割り当てられます。FPSを変更した直後はフレームレート動作的に安定しないので、アプリケーションの起動後1秒が経過したら「実測FPS」というところにFPSが表示されます。
この数値が表示がされた状態で実際の観察を行ってください。そうすると比較的安定した結果が得られます。ちなみにFPSが100を指定されても、環境によって実測は60になりそれ以上出ないと思われます。実行中画面左に出力されるのはデルタタイム(オフセット /時間間隔/時間差)です。出力されたデルタを見ても筆者の環境だとFPS100を指定してもFPS60を指定した時とほぼ同じ値になります。フルスクリーンモードとウィンドウモードだとやはりウィンドウモードは結果が安定しません。フルスクリーンモードの場合、設定でVsyncもオンにしてあるので比較的安定した結果が期待できています。
タイマベースに関する解説>>2へ進む