フレームの設定


  • フレーム設定に隠された二つの地雷

関連記事「アプリケーションの設定」からの続きとしてお読みください。

frame_timer_base

タイマーベース動作をオフに

タイマーベース動作について

この記事を書く前に手持ちの英語版ヘルプファイルを読んでいました。

以前から不思議だったのですが、日本語版 MMF2 Wiki の「仕様等雑多情報」にある「タイマーベース動作」に付いての説明には、どっかに出典があるはずなんですがそれがヘルプで見つからない。

見つからない見つからない見つからない、本家のフォーラムにもそれらしき記事は無い………と思ったら手持ちのヘルプファイルが英語版体験版から抜き出したものだったため、体験版からのヘルプにはその部分の説明がごっそり抜けていやがりました。グギギギギギ。

参考/ Multimedia Fusion 2 Wikiの「仕様等雑多情報」から「タイマーベース動作

原文
Timer-based movements
When this option is selected, the movement and animation speed of the objects in this frame is based on the exact time difference, making it independent from the machine speed. Note: for compatibility reasons, this option is not selected by default in frames of old applications. If this option is not selected, the speed is based on a frame count, less precise.

アプリケーションの設定では「フレームレート」の変更に言及をしました。

このタイマーベース動作に関する設定はオブジェクト動作とアニメーションにも影響があります

この奇妙な仕様は動作設定をオフにすればフレームレートの設定に従うようになるので、フレームレートをデフォルトから変更した場合には意図しない動作を避けるためにも、あるいはフレームレートの値とアニメーション動作を一致させるためにも、設定はオフにする必要があります

タイマーベース動作に付いては最近新しい考察が追加されました。

タイマーベースは基本的にフレームレートに依存しない、一定の速度(タイミング)で動作するゲームを作成するためのオプションだと思ってください。しかしこれをオンにしてもすぐタイマーベースで作れるのではなく、そこから MMF2 の「タイマー」を使って自分でタイミング制御を作らないといけないのです。

タイミング制御を上手に行った場合、理想的にはフレームレートが 10 ~ 100 といったバラバラの動作環境でもほぼ同じような動作をさせることができます。

新しい考察」で本家フォーラムから動作サンプル等が出ていますので参考にしてみてください。

従来の作り方は FPS 固定(フレームベース)で説明されている

なので、もともとタイマーベースを考慮してないから「カウンター」や「変数」を使ってタイミングを制御する方法を当たり前で使ってそれをチュートリアルでも教えていたし、基本的にその作り方を推奨もしていました。

しかしタイマーベース動作で作るとなった場合、この手法(フレームベース用動作)は単純に使えなくなります。なぜならばタイミング制御の手法が根本的に異なってくるからです。

MMF2 の場合、タイマーベースでの作成は PC 用ビルドがメインターゲットとなります。エクスポータを使って外部出力を試みる場合、エクスポータごとに色々仕様とか制限があって、必ずしも PC 用で確立したタイミング制御手法が安全に使える保証はありません。

開発初心者はオフにするべきかも

このオプションは、現在デフォルトでオンになっている理由が分からないのですが、「タイマーベース」でゲームを作りたいという希望がある方はオンにして使ってください。ただしエクステンションを使って開発をする場合、このタイマベース動作設定は未知の動作トラブルを生む可能性があります。

例えばオフにしておかないと「サブアプリケーションで実行しているフレームはタイマーベース動作を無効に
こういう罠もあるようで、タイマベースで作るのは一筋縄ではいかない可能性があります。

余計なトラブルを避ける意味でも初心者さんは、最初は FPS(フレームレート) 固定で変数を使って数えタイミングを作るという従来から行われていた説明の通り作るほうが無難。「タイマーベース動作オプションはオフに」を推奨します

そして「タイマーベースで作りたいんだ!」という希望がある方はちゃんと意味が理解できてるなら「オン」のままにして開発してください。

二つ目の地雷機能/デモ録画

製作中のゲームが破損する可能性について言及されています。

frame_demo

あまり期待しない方が良さそうなデモ録画機能