retouch共通サポート < ムービー表示でエラーになる >
  retouch.info トップページへ
  sketch/ExHIBITトップページへ
  unplugged トップページへ
  新規項目(NEW!)
   
  インストール時
  インストールにもの凄く長い時間がかかる
  Setup.exeが異常終了する(InstallShield)
  インストールできない(courier)
   
  起動時
  起動してもウィンドウが表示されない
  ウィンドウがおかしなサイズで表示される
  ExHIBITが異常終了する
  ExHIBITでリソースマネージャがエラー
  sc00.dllがロードできないと言われる
  hogeがロードできないと言われる
  フルスクリーンで開始する方法は?
   
  プレイ中
  マウスカーソルが勝手に動く
  フルスクリーンにすると画面がちらつく
  何の演出もない場所で落ちる
  ExHIBITの「ウィンドウの設定」が開かない
   
  ムービー再生時
  ムービー表示でエラーが出る
  ActiveMovieの再生ウィンドウが消えない
   
  アンインストール時
  アンインストールしてもファイルが消えない
  retouch.tteが使用中で削除できない
  手作業でのアンインストール方法(courier)
   
  その他
  ExHIBITのフルスクリーン動作について
   
  資料
  IE&MediaPlayerのバージョン一覧
  ExHIBIT.iniのoptionセクション解説
   
   
 
[ 症状 ]
ムービーを合成表示(ムービーを表示しながらメッセージを表示したり、そのほかのエフェクトをかけたりする事)使用としている場所でエラーが発生し、ゲームが強制終了したり、固まってしまう。
 
[ 原因 ]
利用されている環境に、多くのコーデックやフィルタをインストールした結果、mpeg-1の再生に利用されるフィルタが、OS標準のもの(またはそれに準拠したもの)ではなくなってしまっています。
 
[ 対策概要 ]
この問題は、コーデックをアンインストールして標準に戻せば解決しますが、複雑な環境をもつPCでは、単純に環境を初期化するわけには行かない場合があります。
本来このような特定の環境に対するサポートは、メーカーサポートでは細かい対応が難しく、大抵は標準のコーデックをご使用ください(初期化してください)と言われる事になるわけですが、ここはunofficialですし、非標準のコーデックを多数インストールしていらっしゃるような方は、ある程度PCの知識をお持ちだと思いますので、GSpotとDirectShowFilterTool という2つのツールを用いて、mpeg-1再生がOS標準のコーデックやフィルタを利用するように変更する方法を「対策2」として説明します。これらのツールは広く使われているものとはいえ、無保証です。利用者自身の責任でご使用ください。

また、ffdshowの新しい版をご利用いただいている場合、ffdshowを利用しないアプリケーションを設定することが出来ます。
これだけで解決する場合も多いので、「対策1」としてまとめておきます。
 

[ 対策 1 : ffdshow の新しい版を利用している場合 ]

この場合、指定した実行ファイルでのみ、ffdshowが利用されなくなります。
その結果その実行ファイルではOS標準のコーデックが(通常は)利用されるようになります。
この操作で正常に動作するようにならない場合は、「対策2」を行ってください。
1. ffdshow の「ビデオデコーダーの設定」を起動する
  スタートメニューから「ffdshow」-「ビデオデコーダーの設定」を実行してください。
2.
すると、左図のようなダイアログが開きますので、左のペインから「DirectShowのコントロール」を選択してください。
そして、右のペインの、「以下ではffdshowを使用しない」の部分に、ExHIBIT.exeを追加してください。
ファイル名の区切りは半角のセミコロン;です。
なおご利用になっているゲームの実行ファイル名は、ExHIBIT.exeだとは限りません。その場合、そのゲームの実行ファイル名を入力してください。
3. 通常、右のペインの、「未知のアプリケーションがffdshowをロードしようとした時ダイアログを表示する」にチェックが入っていれば、初めて実行するときffdshowのダイアログが表示されますから、そこで、ffdshowを利用しないを選んでもOKです。
 

[ 対策 2: GSpotとDirectShowFilterToolを利用する場合 ]

この場合、mpeg-1の再生は、すべてのDirectShowを利用するアプリケーションでOS標準のコーデックが利用されるようになります。
 
  GSpot (GraphEdit でも構いません)
  本家(英語):http://www.headbands.com/gspot/
日本語化パッチ&実行ファイル:http://www.h4.dion.ne.jp/~trooper/dl_link.htm
  再生に利用されているフィルタやコーデックをチェックするのに使用します。
  DirectShow Filter Tool
  http://hp.vector.co.jp/authors/VA032094/DFTool.html
  フィルタのメリット値(使用される順番を決める値だと思ってください)を変更することで、標準のフィルタやコーデックを優先的に使用するよう、OSに働きかけるのに使用します。
まず、GSpotで、使用されるフィルタを特定しましょう。
1. GSpotの起動
  GSpotを上記サイトからダウンロードして、解凍し、起動します。
GSpotが起動すると、下のようなウィンドウが表示されます。
 
  起動直後、システムにインストールされているコーデックを読み込みますので、 上図、右上(1)の部分が「xx種のビデオコーデックを取得済み」になるまで少し待ちます。
2. その後、対象となるゲームの mpg ファイル(大抵は、res\g\dlt\ にあります。2006年度以降のタイトルでは、res\g\ev\??\以下にあります。??はファイル名を100で割った値です。1023.mpg なら、res\g\ev\10\1023.mpg にあります)
拡張子が.mpg のものを利用してください。.dltのものはフォーマットが異なります)を、GSpotのウィンドウに、ドラッグ&ドロップしてください。上図(2)の位置に、そのファイルが表示されます。(ファイルをドロップした時の画像はこちら
3. 次に、(3)の位置にある、「実行」ボタンを左クリックしてください。すると、2でドロップしたファイルが実際にレンダリングされ、利用されているビデオパスとオーディオパスが表示されます。(レンダリングテスト後の画像はこちら
4. 3の処理を実行した後、(3)の位置にある、ビデオパスの項目を見てください。この項目が、
  「(S) --> MPEG-I Stream Splitter --> MPEG Video Decoder --> (R)」
 

となっていれば、mpeg-1の最終的な再生には、(たぶん)標準的なフィルタが使用されていて、通常は問題なく表示されるはずです。この状態になっていない、もしくはこの状態になっているにもかかわらず、動作がおかしい場合は、次に進んでください。

メリット値を変更することで、OS標準のフィルタを利用するように設定しましょう。
1. DirectShow Filter Tool の起動
  DirectShow Filter Tool を上記サイトからダウンロードして、解凍し、起動します。
DirectShow Filter Toolが起動すると、下のようなウィンドウが表示されます。
 
2. デコーダーの選択を行う
  ウィンドウ下部にある、「フィルタの選択」コンボボックスで、「MPEG-1 Video Decoder」を選択すると、MPEG-1の再生に使われるフィルタやコーデックが検出され、下図のようにウィンドウに表示されます。
 
  ここでは、例として、サイバーリンクのデコーダーがインストールされている環境を利用したため、標準の、quartz.dll 以外にサイバーリンクのデコーダーも表示されています。(画像をクリックすると拡大します)
モザイクがかかっている部分は環境によって異なりますが、大抵は、C:\WINNT\や、C:\WINDOWS\です。
  この例では、MPEG Video Decoder のメリット値が「0x40000001」で、サイバーリンクのVideo/SP Decoderのメリット値が「0x00600000」であるため、DirectShowによるMPEG-1の再生には、MPEG Video Decoder が優先的に使われます。つまり、何もしなくても構いません。
もし、MPEG Video Decoder に設定されているメリット値が、サイバーリンクのものよりも小さい場合は、サイバーリンクの 0x00600000 よりも大きな値(例えば、0x00700000等。0xは16進数の意味です。メリット値は、通常、16進数8桁で表現されます)を設定することで、優先的に使用させることが出来るようになります。
メリット値の変更方法については、下記の「スプリッタの選択を行う」で解説されます。
  解説:「メリット値」
同じ機能を持ったフィルタやコーデックが複数インストールされている環境で、DirectShowが自動的に使用フィルタを決定しなければならない際に参照するための値で、大きい値のものが優先的に使用されます。あくまでも大小関係を表現するための値であるため、値自体に特定の意味はありません。
3. スプリッタの選択を行う
  次に、使用されるスプリッタを確認します。デコーダーと同様、ウィンドウ下部にある、「フィルタの選択」コンボボックスで、「MPEG-1 Splitter」を選択することで、MPEG-1の再生に使われるスプリッタが検出され、下図のようにウィンドウに表示されます。
 
  ここでは、MPEG-1Stream Spritter のメリット値が0x00600000、サイバーリンクのスプリッタが 0x00805000で、サイバーリンクのスプリッタが優先的に使われています。これを、メリット値を変更して、MPEG-1 Stream Spritter を優先的に使用するよう変更してみましょう。
まずは、優先的に使用したい行を右クリックしてメニューを表示します。
 
  右クリックメニューから、メリット値の変更を選択します(上図)
すると、下図のようなダイアログが開きます。
 
  現在の、MPEG-1 Stream Splitter のメリット値は、0x00600000 です。CyberLink MPEG-1 Splitterのメリット値は、0x00805000ですから、これより大きな、例えば、0x00C00000 に変更して、OKを押します。
 
  すると、上図のように、MPEG-1 Strem Splitter のメリット値が変更されます。これで、MPEG-1 Stream Splitter が優先的に使用されるようになりました。ゲームを起動して、問題が解決されたかどうか確かめてみてください。
ffdshowなど、一部のアプリケーションは、いろいろなコーデックを置き換えます。よくわからないままに、不要なコーデックまでインストールしてしまうと、様々な問題が引き起こされますので、心当たりのある方はご注意ください。また、Elecard なども、問題が起こるバージョンがあるようです。最新のフィルタを導入したり、上記操作を行ってみたりして、正常に表示されるフィルタの組み合わせを見つけてください。

正式に動作保証されているものは、OS付属の、MPEG-1 Stream Splitter と、MPEG-1 Video Decoder の組み合わせのみです。