MMF2の基礎概念9


オブジェクトについて # 2

多用するオブジェクトから仕様を学ぶ

アクティブと文字列

「アクティブ」と「文字列」はたぶん使わない人はいないと思います。

  1. 「アクティブ」は 2D スプライトの表示、アニメーションの管理を行う
  2. 「文字列」は文字表示、色や文字サイズも変更できます

今回はこの二つのオブジェクトをプロパティ画面から比較してみましょう。

string and active

左がアクティブ、右が文字列

表示オプションだと共通項が多いですが、文字列には「トラジション」の項目がありません。「トラジション」というのは画面(フレーム・幕間)切り替え時に繋ぎとして使う画面効果のことです。フェードインとフェードアウトはアクティブオブジェクトの場合このトラジションを設定すると、オブジェクトが作成された時点で「フェードイン」の開始、オブジェクトが破壊された時点から「フェードアウト」を開始します。しかしこれは「アプリケーションプロパティ」で表示オプションを「標準」以外にしている場合 = DirectX を選択している場合に少々バギーな振る舞いをします。描画処理が極端に遅くなるのですが、筆者は HWA 以外で DirectX 描画を選択する意味はあまり無いと考えています。関連としてアプリケーションの設定を説明する Tips でもあえて描画オプションには触れていません。

【関連:アプリケーションの設定

directx

DirectX?

「アクティブ」「文字列」のアンチエイリアス設定について

どちらのオブジェクトプロパティにもアンチエイリアスの設定項目があるのですが、これはさりげなく無意味です。本家のフォーラムでは昔「これってアンチエイリアスというよりガウスぼかしじゃね?」とか言われていましたが、結局なんなのか正体がよく分かりません。試しに PS (フォトショップ)で出力した文字列画像と比較したらフォントサイズが同じはずなのに出力された結果、文字の大きさが異なるのも気になります。同じ 12 pt でも MMF2 の方が大きいから PS は 14 point にしたけどまだ小さい。もしかしてフォントのサイズ指定の単位が pt(ポイント)じゃないのかもしれませんが PS の設定で単位を px (ピクセル)に変えてもサイズは一致しなかった、意表を突いて mm(ミリ)なんでしょうか。なんだかよく分からないけど美しくないことだけは分かります。アンチエイリアス設定に付いては「アンチエイリアスを使用しない前提で作らないと画質的に厳しい」という結論を得たので、筆者は文字列で、あるいは画像には MMF2 のアンチエイリアスオプションを適用しません。またサンプルを見ての通り、フォントは VLP ゴシックなどを使うと通常表示でも結構きれいです。

「これで??」と思うかもしれませんが文字サイズをもっと大きく設定すればたとえば「 MS ゴシック」よりだいぶマシな化粧をして出力できます。これは実際にいろんなフォントを試すと良いのですが、ここで注意すべき点として日本語フォントは権利的にフリーなものが数は限られています。著作権に気をつけるとゲームで使えるフォントはだいぶ限られてしまうので、あとは製作者の好みもあるでしょうから自力で納得のいくフォントを見つけてください。しかしあまりこだわりすぎるとゲーム自体が作れなくなります。MMF2 は開発元が海外なので、特に文字列のレンダリング結果などは異文化を感じさせます。日本語文字列の表示や配置の美しさにこだわる場合 MMF2 は選択肢に残らないと思います。こういう理由もあって、ビジュアルノベル( ADV )など日本では人気のゲームジャンルの製作に MMF2 は使用されていません。

今回用意したスクリーンショットは画像サイズがいつもより大きめなので必ず等倍でご覧ください。一枚目の画像は 200 % に拡大したものです。二枚目は 100 % でアプリケーションとして実行した画面を撮ったものを比較用に加工しました。画像を見て気がつくのは MMF2 のアンチエイリアスというのは確かにおかしいというか、普通アンチエイリアスというのは抽出された輪郭に対して均等にボケを作るものだと思うのだけど、MMF2 の場合縦横の直線に対してはアンチエイリアスが適用されず、曲線的なラインに対してだけアンチエイリアスが適用されます( 二枚目の拡大画像を参照してください)。

string_anti

文字列のレンダリング比較

string_anti2

アプリケーションで出力比較


基礎概念:リスト
12345678910
111213141516171819Last

前へ戻る 次へ進む