モニター

最終更新:

30pin

- view
管理者のみ編集可
'09/05/18 '09/05/31追記

┼ モニター

概要

  • 自作オブジェクトに動画を表示させてみました。


こんな感じになりました。



◇ 目次



◇ このモニターのトピック

  • 動画再生が可能。
    ⇒ オブジェクトと動画テクスチャを自作し、フローグラフで制御しています。

  • 動画 OFF 時に動画像が消える。
    ⇒ InteractiveEntity のマテリアル切り替え機能を使用しました。

  • ブラウン管面の破壊が可能。
    ⇒ 管面の膨らみを表現しつつ、procedural 2D breaking を機能させました。
           また、InteractiveEntity の、破壊時のエフェクト機能も使用しています。

  • 音声再生が可能。
    ⇒ ファイル変換ソフトだけで作成した音声ファイルを使用しています。

  • モニターが移動すると、音源も移動する。
    ⇒ 上記の自作音声で、距離による減衰をさせました。

各メディアファイルの作り方などは 関連項目 へ。





◇ 作成方法

■ 表示させるオブジェクト ( モニター ) の準備
既存のオブジェクトでも実現可能と思われますが、折角なので今回は新たにオブジェクトを自作してみました。テレビみたいですが、ただのモニターです。

動画テクスチャの作り方は 「動画テクスチャ SFD」 をご参照ください。

XSI Mod Tool で映像を表示させたいオブジェクトを作成しますが、その際、表示部 ( ここではブラウン管 ) は本体とは別のテクスチャを1枚丸ごと前面から平行投影させます。

Sandbox2 の Material Editor より、ブラウン管のテクスチャパスを設定し、TexType を Auto 2D-Map に設定します。

さらに、ブラウン管を破壊できる様に、Surface Type に mat_glass を設定し、Glow Amount を少し加えてそれらしくしました。

今回は昔のブラウン管の特徴である膨らみを表現しましたが、変形が大きいと破壊できなくなりますので注意が必要です。



■ 複数マテリアルの準備
今回は InteractiveEntity のマテリアル切り替え機能を使用して、モニターを使用している時と使用していない時でマテリアルを切り替える事にしました。

上記で作成したマテリアルは動画テクスチャが表示されるように設定したので " 使用している時 " のマテリアルです。もう一つ " 使用していない時 " のマテリアルも作成する必要があります。

一度 Sandbox2 を終了後、上記で作成したマテリアルファイル ( .mtl ) をコピーし、" 使用している時 " が判り易い様にファイル名に _OnUse などと付け足して下さい。
再度 Sandbox2 を起ち上げ、Material Editor でブラウン管のテクスチャパスを空白にし、TexType も 2D に戻します。
Diffuse Color 等を調整して、ブラウン管らしい色にします。




■ モニターを Archetype Entity として呼び出す
今回は、トピックに記載の機能を実現する為に、オブジェクトを Archetype Entity として使用する事にしました。 Entity クラス は InteractiveEntity を使用しています。

Archetype Entity の作成方法に関しましては 「 オブジェクトに機能を付けたい ( Archetype Entity ) 」 をご参照ください。

パラメータを以下の様に設定しています。



■ 音源の準備
InteractiveEntity を使用すれば、それ単体で音を鳴らす事が出来ますが、今回は 「 ファイル変換ソフトだけで作成した音声ファイル 」 を使用して 「 距離による音の減衰 」 を実現する為、外付けする事にしました。

音声ファイルの作り方は 「動画テクスチャ SFD > 音声ファイル [ .mp2 ] の作り方」 をご参照ください。

次の画像の様に、SoundEventSpot をモニターに Attach させます。

これでモニターと音源が一体になりました。
モニターが移動すると音源もちゃんと移動し、距離によって音が減衰します。

SoundEventSpot の設定は、音声ファイルの指定以外、デフォルトのままです。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
SoundEventSpot は、距離による音の減衰はするのですが、パラメータの設定箇所が見当たりません。
SoundSpot では設定が可能ですが、以下の点に注意が必要です。

  • 音の方向性が無くなってしまいます。( どの方向から鳴っているのか判らない )
  • パラメータで Loop を False にしてはいけない。
    False にすると、なぜか減衰しなくなってしまいます。
  • Done が機能しない為、終了時の停止処理は手入力のタイマーで行います。
    ( 後述 )

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛



■ フローグラフの設定
動画ファイルと音声ファイルの再生・停止処理を行っているだけです。


モニター本体を Use する度に Counter と FromBoolean によって各メディアの On/Off を繰り返す様にしています。
音声が終了すると SoundEventSpot の Done からモニター本体の Use に出力され、自動停止します。
ただし、音声終了後少し時間が経ってから ( 1秒程度 ) 停止されます。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
下図は SoundSpot を使用した場合のフローグラフで、Done が機能しなかった為、終了時の処理は Delay による手入力のタイマー処理を行っています。
SoundEventSpot を使用した時でも、時間ピッタリに終了させたい場合はこの方法が使えます。

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛





◇ ファイルのダウンロード

!! ご注意 !!
今回のモデルダウンロードは試験段階であります。
  • このセットと動画・音声を組み合わせればオブジェクトに動画を表示させる事が出来ますが、元々動画は非常に重い処理の様子で、Config Spec を高くしている場合は動画が動かない可能性があります。
  • この配布方法で他の環境で正常に動作するかは未確認です。
その点を留意の上、ご利用の場合は自己責任で宜しくお願い申し上げます。

'09/05/31追記―――――――――――――――――
※ブラウン管の位置がずれていたので、モデルデータを修正しました。

初めてご利用される方
  • 以下の手順をそのままご利用して頂けます。

既に使用されている方
  • ダウンロードリンクを最新ファイルへのリンクに更新しています。( tv_old_090523.zip )
  • ファイルをダウンロードし、解凍したらそのまま古いフォルダに上書きして下さい。
  • マテリアル等を変更されている方は、.cgf ファイルのみを上書きしてください。
追記終―――――――――――――――――――――

─ ダウンロード ─

  • モニターモデルセット ダウンロード
    ( ファイル名 : tv_old )
    【 内容 】
        完成 CGF ファイル
        マテリアルファイル2個 ( 使用中、未使用中 )
        テクスチャファイル3個 ( テクスチャ、ノーマルマップ、スペキュラマップ )



  • 動画・音声ファイルはお許し下さい。
    デフォルトで \Game\Localized\VideoPS_Tutorial.sfd を参照しています。
    これは、音声付ファイルですので、音声を作成していなくても音が聞こえますが、距離による減衰が発生しません。


─ インストール ─

  • モニターモデルセット
    ( ファイル名 : tv_old )
  1. ダウンロードしたzipファイルを解凍する。
  2. ゲームの入っているフォルダの下の \Game\Objects フォルダに入れる。
    Objects フォルダが無い場合は、新規に作成して、そこに入れて下さい。

※動画と音声をご自身で作成された場合
両ファイルとも、とりあえずは上記の tv_old フォルダに入れてしまいましょう。
音声ファイルは SoundEventSpot の Name のパラメータを設定する箇所から簡単に探せると思います。
動画ファイルに関しましては、.mtl ファイルをテキストエディタで開き、パスとファイル名を直接指定する事が簡単だと思われます。

  1. tv_old_OnUse.mtl ファイルをテキストエディタで開きます。
  2. Localized/Video/PS_Tutorial.sfd
    という文字列を
    Objects/tv_old/ファイル名
    に置換します。

これで再生されるはずです。

  • Flow Graph XML ファイル
    ( ファイル名 : Video_Player.xml )
  1. ダウンロードした xml ファイルを、適用したいマップのあるフォルダに入れる。
  2. エディターを起動し、フローグラフのウインドウから開く。
  3. 各 Entity の再アサインを行ってください。

  • Archetype Entity XML ファイル
    ( ファイル名 : My_Item.xml )
  1. ゲームの入っているフォルダの下の \Game\Libs\EntityArchetypes フォルダに入れる。


不具合など有りましたら、こちらへご報告をお願い申し上げます。
コメントページ





◇ 最後に

記事作成を進める中で、進路変更と説明の追加追加追加分裂が続き、最初に予想していた目的地と分量を遥かに超えてここに至りました。更新チェックに通って下さった方々の姿を妄想しながら、勝手にプレッシャーを感じていた次第です。

いえ、本当に通って下さった方、ありがとうございました。 m(_ _)m

今回は .sfd という形式の動画ファイルを使用しましたが、これは 「 やむを得ず 」 と言わざるを得ません。なんとか他の方法はないものでしょうか。




◇ 関連項目

■ モデリングについて

■ 動画・音声ファイルの作成について

■ 動画ファイルの制御について

■ Archetype Entity について



◇ 参考資料

■ ガラスについて

■ その他
今回、資料作成のために作成した動画の元です。






┼ ┼ 











記事メニュー
目安箱バナー