About

ゲーム作成用のオーサリングツール:MMF2とその機能などを紹介していたサイトです。2013年12月以降は新製品である Clickteam Fusion 2.5が発売されたため、ブログも含めCF2.5へ移行しました。MMF2関連ブログとして主要な記事は残りますが、MMF2と関連性のある新規記事追加は無くなります。開設以来多くのアクセス、誠にありがとうございました。

ControlIME(ベータ)

PC 用エクステンション:ベータ版


主な機能:アプリケーションの IME ( InputMethodEditor :いわゆる日本語入力)機能を無効にします。ゲーム操作にキーボードを割り当てている場合、プレイヤーの操作ミスで IME がオンになってしまう場合があるのでこれを回避するために作成されました。Visual C++ 2010 Express を利用しており、MMF2 の PC 用ビルド専用のエクステンションとなります。詳細な使い方はサンプルファイルをご覧ください。

謝辞

本エクステンションを作成するにあたり、EDif SDK ( Anders Riggelsen – MMF2 Tools より提供されている Extension development SDK )を利用させて頂きました。すばらしい SDK をありがとうございます。実際の開発にあたりクリックチーム本家のブログから「 A Beginner’s Guide To Coding C++ Extensions 」という一連のブログポストを参考にさせて頂きました。Arigato,Nice blog post>>Phi
エクステンションの初期動作確認にご協力いただいた ASD さん、ありがとうございました。

単機能なので使い方は簡単です。IME は主に極東でキーボード入力から特定言語へ変換が必要な場合に利用されています。日本以外だと中国、韓国などではおそらく機能しますがその他の言語地域ではこのエクステンションから発行されたアクションは一部機能しません。

本エクステンションは安定動作を確認するためのベータ版です。IME のコントロール機能について今後拡張する予定ですが、製作者が技術的に未熟なので拡張機能の実装はいつになるやら定かではありませぬ。

( IME 関連)
アクション

  • DisableIME

( IME 以外、その他のおまけ機能)
おまけ機能は特殊なものが多いので注意して使ってください
アクション

  1. CreateMutex
  2. Release&CloseMutex
  3. Release&Close&ApplicationExit
  4. SaveDesktopIconPositions
  5. LoadAndRepositionDesktopIcons
  6. ToggleAero
  7. BeginMultimediaTimer
  8. End MulitimediaTimer

コンディション

  • CheckOS

 

簡易説明

免責とか:本エクステンションを利用した場合の損害について作者は一切の責任を負いません。

メール・連絡先:アーカイブファイル内部のドキュメントに記載、本ブログポストのコメント欄もご利用いただけます。

ダウンロードControlIMEReleasedBeta1


6 comments to ControlIME(ベータ)

  • ASD

    バグ報告です。
    サブアプリケーションを置いているフレームにControlIMEを置いて、実行すると、フレームをリスタートしたり、別のフレームからこのフレームへ戻ってきたりするとクラッシュします。

    http://prester.org/mmf2/cgi/w2box/data/ControlIME_and_Sub-App_crash.mfa

    • Prester

      バグ報告ありがとうございます。あらゆる問題を回避したエクステンションを開発しました。

      http://prester.org/mmf2/wp-content/uploads/2012/10/neet_object.zip

      使い方:MMF2のフレームエディタに登録します。ただし何もアクションが無く一切働きもしません。

      (問題自体は本家にレポートして相談してみます、独力では解決できませんでした)

  • ASD

    ありがとうございます!お陰様でエラーはなくなりました!機能もなくなったけど・・・。

  • Prester

    テスト結果をまとめておきます(今回は真面目な話)。開発環境とデバッグはOSがWindows7 SP1 64bitです。

    まずVC2010とVC2008の両方でEDifを使って、EDifに付属する「テンプレート」というサンプルエクステンションをビルドしてこれらをテストしました。この結果EDifのサンプルでもサブアプリを同一フレーム内に配置してイベントでフレームリスタートをすると、ControlIME(以下CIMEと略)と同じ現象になります。つまりやはりCIMEのバグとは言い難く、これはエクステンション作成のためにベースとして使わせてもらっているEDifのバグだと思います。

    本家が配布しているrSDKから付属サンプルのエクステンションや、Anders Riggelsenが公開してくれているオープンソースのエクステンション「Easing」などもビルドを試しましたがこれらはサブアプリとの相性的な不具合は確認できませんでした。こういう一連のテストを経て、EDifのバグとしてEDifの開発者に連絡を取ろうと思います…が簡単に治るかどうかは分かりません。

    あとエディタ上での動作とMMF2でビルドしたアプリでそれぞれ動作や振る舞いが微妙に異なるなど、確認が難しい面もあります。例えばサブアプリは配置しただけでは問題が起こらずプロパティからフレームをアプリとして指定する場合にのみフレームリスタートをかけるとエラーが発生します。そこで解決策が思いついたので実際にやってみたらエディタ上ではこの解決策が役に立ったのですが、実際にスタンドアローンアプリとしてビルドするとリスタート一回目はエラーが出ない、リスタート二回目はエラーが出るなどエディタと実際のビルドで動作が異なります。暫定的な回避策はこれになります

    内部的にはクラスを登録する順番が問題なのかなと思われたので、EDif製のエクステンションをフレームが開始時に自動で作るというオプションをオフにします。次にイベントエディタから「フレームが開始」時にエクステンションを手動で作成するという指示を出します。こうすると少なくともエディタ上からプレビューを実行する限りではエラーは回避できています。しかし実際にビルドするとこれがリスタート二回目以降にエラーが出る。

    …というわけで本家ではなくまずEDifの開発元に問い合わせをしてみる予定ですが、EDifを使わないでエクステンションを作るという選択肢もまだ一応残されています。慣れてないから少し時間かかるかもしれないけど、rSDKのサンプルを元にEDif無しでも自分で作れるかもしれません。

  • ASD

    実装されてないだけなのかもしれませんが、ControlIMEのNumber of objectsとFixed valueを取得しようとしてもSyntax errorとなって数式を確定できませんでした。

    • Prester

      報告ありがとうございます、その部分は機能として実装されていません(以前試して同じことになりました)。

      ベータ版はベースとなっているEDifを使いあらかじめ用意されていたテンプレートに対して機能を追加してく形で作られています。運良く機能は比較的順調に付けることがなぜかできたんですが、MMF2のエクステとしての仕様がさっぱり分かってないままなので今はEDifを使ったエクステの開発は一旦停めて、標準のrSDK付属のサンプルを眺めています。現時点だとC++でコードを書くことができたけど、MMF2のエクステとしての動作仕様がさっぱりわかんねぇやって感じみたいです。

      今後はたぶんEDifからは一旦離れてrSDKのサンプルを元に新しく作れるようになりたい、という方向性で考えてます。この公開されているベータ版以降は機能などを選びながら新しく作り直すので、新しいものとベータは互換性が無くなる予定です。(デスクトップアイコン位置保存とかマルチメディアタイマー関連が消える)