Soundscriptについて



・「ハーフライフ 脱腸」の検索結果102件
Soundscriptはゲーム中で使用する音声を定義します。もちろん、わざわざSoundscriptへ定義せずとも、武器スクリプトや amient_genericエンティティでファイル名を直接指定することは可能ですが、 「キチンとしたMODやマップ作り」を目指すならゲーム中の音声は全てSoundscriptに定義すべきだと思います。

なーんつって、amient_genericにmp3だろうがなんだろうがバリバリに直書きしちゃってましたよ〜♪
どおりでHL2本編みたいにBGMが鳴らないわけです、ウッシッシ。

・どうやって読み込まれてんのか?
ゲームフォルダ下のscriptsフォルダの下には game_sounds_*.txtというファイルがたくさんあります。

game_sounds_manifest.txtに列挙されたSoundscriptファイルが読み込まれて定義 が反映されるところまではSoundscape同様ですが、既存のgame_sounds_manifest.txtに記述された内容を見る限り scripts/game_sounds_[マップ名].txtという名前のファイルを自動で読んでくれる機能 は無いようです。

・Soundscriptの定義
書き方は先頭に定義名を書いて、その下の中括弧で囲った中へ各種設定を記述します。

あとは武器スクリプトやambient_genericの音声指定にこの定義名を書けばよいのです。
"[定義名]"
channel 音声再生時に使用するチャンネルを指定します。

CHAN_AUTO
チャネル自動選択

CHAN_WEAPON
武器音声用チャンネル

CHAN_VOICE
会話音声用チャンネル

CHAN_ITEM
アイテムの音声用チャンネル

CHAN_BODY
エンティティ本体から音を発する場合等に使用するチャンネル

CHAN_STREAM
ストリーミング再生に使用するチャンネル、ただ、会話音声等はCHAN_VOICEを通して 音声の属性をストリーミング再生に指定して現在使用されているようなので、このチャンネルは 未使用の可能性がある

CHAN_BODY
静的エリアに配置される音声用チャンネル

volume 原音に対する音量のスケールを指定、0.0で無音、1.0で原音そのままのレベルを意味する。

値は1個、または2個をカンマ区切りで指定。
2個指定時には再生毎に両者の範囲でvolumeの値がランダムに変化する。

こんな指定もできます
VOL_NORM (== 1.0)
pitch 0〜255の範囲で原音に対する音程の変化量を指定、100でピッチ変更無しのニュートラル。

値は1個、または2個をカンマ区切りで指定。
2個指定時には再生毎に両者の範囲でpitchの値がランダムに変化する。

こんな指定もできます
PITCH_LOW (== 95)
PITCH_NORM (== 100)
PITCH_HIGH (== 120)
soundlevel 音声出力レベル(dB)。大きく指定するほど音圧が上がって音声の減衰率が下がる
右側に書いてあるのはどれぐらいの音に相当するかの目安です

SNDLVL_NONE (== 0dB)
SNDLVL_20dB (== 20dB) カサカサ音
SNDLVL_25dB (== 25dB) ささやき声
SNDLVL_30dB (== 30dB) 図書館
SNDLVL_35dB (== 35dB)
SNDLVL_40dB (== 40dB)
SNDLVL_45dB (== 45dB) 冷蔵庫
SNDLVL_50dB (== 50dB) 家の中
SNDLVL_55dB (== 55dB)
SNDLVL_IDLE (== 60dB)
SNDLVL_60dB (== 60dB) 普通の会話
SNDLVL_65dB (== 65dB) 洗濯機、食器洗い機
SNDLVL_STATIC (== 66dB)
SNDLVL_70dB (== 70dB) 自動車、掃除機、ミキサー、電動ミシン
SNDLVL_NORM (== 75dB)
SNDLVL_75dB (== 75dB) 交通渋滞
SNDLVL_80dB (== 80dB) ミニバイク、目覚まし時計、騒がしいレストラン
SNDLVL_TALKING (== 80dB)
SNDLVL_85dB (== 85dB) 工場、髭剃り機
SNDLVL_90dB (== 90dB) 赤ちゃんの鳴き声、バイクの通過、オープンカー
SNDLVL_95dB (== 95dB)
SNDLVL_100dB (== 100dB) 地下鉄、ディーゼルトラック、製材所, ボイラー
SNDLVL_105dB (== 105dB) ヘリコプター、芝刈り機
SNDLVL_110dB (== 110dB) スノーモービル、モーターボートに乗ってる時、砂吹き機
SNDLVL_120dB (== 120dB) 自動車のホーン、プロペラ機
SNDLVL_130dB (== 130dB) 空襲警報
SNDLVL_GUNFIRE (== 140dB) 発砲音、ジェットエンジン
SNDLVL_140dB (== 140dB)
SNDLVL_150dB (== 150dB)
SNDLVL_180dB (== 180dB) ロケット打ち上げ
wave

または

rndwave
音声ファイルの指定を行います。ファイル名はsoundフォルダからの相対パス記述 で拡張子も含めた形で使用(指定できるのはWAV(*.wav)とMP3(*.mp3)形式のファイル)。
ファイル指定の記述には以下の2種類があり、どちらかの形で記述します。

音声ファイルを単一指定する場合

記述例:
"wave" "weapons/ar2/ar2_reload.wav"

ランダム再生用に音声ファイルを複数指定する場合
"rndwave"に続けて中括弧で囲った中へファイル名を記述 この指定方法では再生毎に音声ファイルがランダムに選択されます

記述例:
"rndwave"
{
	"wave" "weapons/shotgun/shotgun_reload1.wav"
	"wave" "weapons/shotgun/shotgun_reload2.wav"
	"wave" "weapons/shotgun/shotgun_reload3.wav"
}


ファイル名を記述際にはその先頭に「サウンドキャラクタ」を2文字まで指定でき、 このサウンドキャラクタを指定することによって各音声に色々な属性を付加することができます
* 音声のストリーミング再生を指定、会話音声のような長いデータをまともに再生させると メモリが爆発してしまうので必ず指定します。
特に"vo"フォルダ下の音声再生時にこれを指定しないと、DLL側からチェックが入って弾かれるようです。
? ユーザボイス?VOIPに関係あるのかと思い、試しに使ってみたらHL2が落っこちやがったよバロー。
! scripted_sentenceエンティティで使用するためなのかどうなのかいまいち不明です。
どの道マルチプレイでイラネーヨ
# 音声をバイパス出力。各種エフェクトをくぐらせずに出力したい類の音声(BGM等)に指定する。
> ドップラー効果を表現するための音声に対して指定する。
あらかじめ以下の構成を持つステレオ形式の音声データを用意する必要あり。

LEFT:接近してくる際の高周波音声
RIGHT:遠ざかっていく際の低周波音声


データの1例(弾が側をかすめていく時の音声)、上側のLEFTには「ヒュン」、 下側のRIGHTには「ヒュン」という音が入ってます。って文章でかいても違いわかんないじゃーん。
< 聞こえてくる方向によって音声を変化させる効果を表現するための音声に対して指定する。
あらかじめ以下の構成を持つステレオ形式の音声データを用意する必要あり。

LEFT:真正面から聞こえた際の音声
RIGHT:真後から聞こえた際の音声
^ 距離によって音声を変化させる効果を表現するための音声に対して指定する。
あらかじめ以下の構成を持つステレオ形式の音声データを用意する必要あり。

LEFT:近距離で聞いた際の音声
RIGHT:遠距離で聞いた際の音声


データの1例(爆発音)、上側のLEFTには「バン〜!」、 下側のRIGHTには「ズン〜!」という音が入ってます。って文章でかいても違いわかんないっつってんじゃーん。
@ 指定すると聞こえる方向によって音場が変化せずに元のファイルを聞いた時と同じ状態で聞こえる。
) 空間ステレオ効果で音に広がりを持たせる。
} 単純にPCMデータを間引いたり、ダブらせることによってピッチを変化させる方法を使う。

例えばBGMに使用するmp3ファイルを指定したいよ〜♪な場合にはこのようなサウンドキャラクタ指定を行います(バイパス出力、ストリーミング再生)。
"wave" "*#music/hanamogera.mp3"


他に、ファイル名のパス記述中に"$gender"を書いておくと、音声再生元のエンティティが人間のモデル を使用していたら自動的に"$gender"を"male"、"female"に置換してくれる仕組みもあるとかないとか。


(´・ω・`)つもどる