アットウィキロゴ
ボイスパックの作り方


1:フォルダ構造

z_vipplus_v4b.pk3を解凍すると

custom
levelshots
sound
ui

上の4つのフォルダが出来る。

custom\default\voice

の中の

wm_specops_chat.voice
wm_terror_chat.voice

この二つにwavファイルの相対パスとチャットに表示するメッセージ、それを納めておく変数名を記述する。
それぞれファイル名通りテロ用とスペコ用に分けられる。


uiフォルダの中にある

wm_quickmessageAlt.menu

このファイルはゲーム中に表示するVCのメニューを定義するファイルらしい。

wm_quickmessage.menu

というメニューが最初入っていたが、このファイルはアルファベットでVCを操作するように設定している人用の定義ファイル。
しかしVCを大量に追加していくと容量制限があるらしく音が鳴らなくなることがある。
そこでアルファベット用の定義ファイルを削除したところ直ったので、大量に追加する場合はどちらか一つだけ定義した方がよいと思われる。
(削除するとアルファベットに設定してる人には通常のメニューしか出なくなり、その分空きが出て両方定義しているときの倍は入るはず)

soundフォルダには自分の編集したwavファイルを入れる。

チャットや使用するファイル名に2byte文字は一切使えない。




2:音声ファイルのフォーマット

WAVE形式
サンプリングレート:22050Hz
チャンネル:モノラル
量子化ビット数:8bit

以上の形式であれば使えるようだ。RiffWav等は使えなかったので、純粋なWAVEファイルでないと駄目だと思われ。
量子化ビット数は16bitでも音は出たが、8bitと比べて大して変わらないのでサイズを縮めるために8bitにすることをおすすめする。
wavファイルの名前にスペースが含まれていると音が鳴らないことがあるので、スペースをファイル名に使うのは避けた方がよい。




3-1:定義ファイルの書式 ~wm_xxx_chat.voiceの書式~

まず

wm_specops_chat.voice
wm_terror_chat.voice

このファイルのフォーマットについて説明する。(どちらのファイルも記述方法は同じ)


テキストエディタで開いてみると

PathCleared
{
sound/chat/allies/11a.wav	"Path cleared."
sound/chat/allies/11b.wav	"Path cleared."
}

このような感じで記述してある。


PathCleared←変数名(後でwm_quickmessageAlt.menu内で使う)
{←ファイルのパスと文字は必ず{}でくくる
sound/chat/allies/11a.wav	"Path cleared."←wavファイルの相対パス、
VCを使ったときに出る文字の順番で書く
(VCを使ったときに出る文字は必ず""でくくる)
sound/chat/allies/11b.wav	"Path cleared."←複数記述することによって、
同じVCを使っても記述された中からランダムで違う音声が流れる
}←ファイルのパスと文字は必ず{}でくくる


チャットに文字を表示したくない場合、 "Path cleared." の部分を "^0" などに変えれば文字は出なくなる。
チャットに表示する文字は "" だけのように何も書かないと音が鳴らなってしまうので上のように書いた方がよさそう。
以上のような書式だが、さっきも書いたようにwavファイルの名前にスペースが含まれていると音が鳴らないことがあるので、
スペースをファイル名に使うのは避けた方がよい。変数名にもスペースは入れない方がいいと思われ。





3-2:定義ファイルの書式 ~wm_quickmessageAlt.menuの書式~

次に

wm_quickmessageAlt.menu

このファイルのフォーマットについて説明する。
テキストエディタで開くと、

QM_MENU_START( "wm_quickmessageAlt" )

QM_MENU_ITEM("1.Statements",close wm_quickmessageAlt; open wm_quickstatements_alt,"1",0)
QM_MENU_ITEM("2.Requests",close wm_quickmessageAlt;open wm_quickrequests_alt,"2",1)
QM_MENU_ITEM("3.Commands",close wm_quickmessageAlt;open wm_quickcommand_alt,"3",2)
QM_MENU_ITEM("4.GDM",close wm_quickmessageAlt;open wm_quickgdm_alt,"4",3)
QM_MENU_ITEM("5.Global",close wm_quickmessageAlt;open wm_quickglobal_alt,"5",4)
QM_MENU_ITEM("6.MGS Snake",close wm_quickmessageAlt;open wm_quicksnake_alt,"6",5)
QM_MENU_ITEM("7.MGS etc",	close wm_quickmessageAlt;open wm_quicksnakeT_alt,"7",6)
QM_MENU_ITEM("8.MGS MAD",close wm_quickmessageAlt;open wm_quickmgsmad_alt, "8",7)
QM_MENU_ITEM("9.Laputa musuka", close wm_quickextmenu_alt;open wm_quicklaputa_alt,"9",8)

QM_MENU_END

このように書いてある。これがひとかたまりで、キーを押すと他のメニューを開いていくような定義。
QM_MENU_STARTで始まり、QM_MENU_ENDで終わる。


QM_MENU_START( "wm_quickmessageAlt" )
↑の wm_quickmessageAlt はこの固まりの名前で、他のメニューから呼び出したりするときに必要。
もちろん既に書かれている名前と重複してはいけない。書き換えるのは quickmessage の部分だけで、wm_とAltはそのまま。


↓の一行を例にとって説明すると
QM_MENU_ITEM("1. Statements",close wm_quickmessageAlt;open wm_quickstatements_alt, "1", 0 )

一番後ろの 0 はこの行にかかれている定義を収めておく入れ物の番号。0~9まであり、一つのメニューに10個までVCを入れることが出来る。

次の "1", というのはこの行の定義を実行するためのキー。
つまり 1 が押されるとこの定義を実行する。これも0~9まであるが、1から始まり0で終わるように書くのが自然だ。

open wm_quickstatements_alt, これはwm_quickstatements_altという名前のメニューを開くという命令。

close wm_quickmessageAlt; これはwm_quickmessageAltを閉じるという命令。

"1. Statements" これはメニューに表示する文字



まとめると
1, 0という入れ物にこの行を納める
2, 反応するキーは1にする
3, もしキーが押されたらwm_quickstatements_altという名前の付いたメニューを開くように定義する
4, 3の処理が実行されたら続いて、wm_quickmessageAlt(今開いているメニュー)を閉じるように定義する
5, メニューには 1. Statements と表示しておく

というようになっている。(はずw

上記の説明は、vキーを押した直後のメニューの定義なので他のメニューを呼び出す処理が書いてある。
この書式で書いていけば階層構造にすることも簡単で、前のメニューに戻るような定義を書くことも出来る。
wm_quickglobal2_altの中の
QM_MENU_ITEM( "7. ^2Return", close wm_quickglobal2_alt; open wm_quickglobal_alt, "7", 6 )
これが前のメニューに戻る定義。
wm_quickglobal_altを開いた後、wm_quickglobal2_altを閉じるという定義である。



次に肝心のVCをならすための定義を説明する。

QM_MENU_START( "wm_quickmgsmadmore_alt" )

QM_MENU_ITEM("1. Kora-! uso wo tuke",exec "VoiceChat Uso","1", 0 )
QM_MENU_ITEM("2. Bokuno osiri tukattekure",exec "VoiceChat siri","2", 1 )
QM_MENU_ITEM("3. Kono otokono tamatama wo butinukunda!",exec "VoiceChat butinuku","3", 2 )
QM_MENU_ITEM("4. U-n Muketeinai youdana",exec "VoiceChat mukete","4", 3 )
QM_MENU_ITEM("5. Snake watasinimo sitekure",exec "VoiceChat watasinimo","5", 4 )
QM_MENU_ITEM("6. Seisiga fukidasite kita",exec "VoiceChat fukidasi","6", 5 )
QM_MENU_ITEM("7. Kanojoto SEX sasero!",exec "VoiceChat sex","7", 6 )
QM_MENU_ITEM("8. Naniwositeru! Ute! Hirumuna!",exec "VoiceChat ute","8", 7 )
QM_MENU_ITEM("9. Mukidasino kokkuwo utikondekure",exec "VoiceChat mukidasi","9", 8 )
QM_MENU_ITEM("0. ^2Return",close wm_quickmgsmadmore_alt;open wm_quickmgsmad_alt,"0", 9 )

QM_MENU_END

↑がVCをならすための定義を書いたメニュー。
先ほどのメニューと同じように、QM_MENU_STARTで始まりQM_MENU_ENDで終わる。

QM_MENU_START( "wm_quickmessageAlt" )
↑も先ほどと同じで、 wm_quickmessageAlt はこの固まりの名前。
他のメニューから呼び出したりするときに必要。もちろん既に書かれている名前と重複してはいけない。
書き換えるのは quickmessage の部分だけで、wm_とAltはそのまま。


↓の一行を例にとって説明すると、
QM_MENU_ITEM( "1. Kora-! uso wo tuke",exec "VoiceChat Uso","1", 0 )

一番後ろの 0 はさっきと同じように、この行にかかれている定義を収めておく入れ物の番号。

次の "1", もさっきと同じでこの行の定義を実行するためのキー。

exec "VoiceChat Uso", これは、""内にかかれた変数を実行する命令。

wm_specops_chat.voice
wm_terror_chat.voice

最初の方で↑の二つのファイルに変数やパスを記述したよね?
その変数を""のくくりの中に書く。

すなわち、
exec "VoiceChat 定義しておいた変数名",
ということ。VoiceChat っていう文字は書かないと駄目、VoiceChatと変数の間にはちゃんと半角スペースを入れる。

"1. Kora-! uso wo tuke", これはさっきと同じで、メニューに表示する文字



まとめると
1, 0という入れ物にこの行を納める
2, 反応するキーは1にする
3, もしキーが押されたらVoiceChatの後にかかれた変数を実行する(音が鳴る)ように定義する
4, メニューには 1. Kora-! uso wo tuke と表示しておく




3-2:定義ファイルの書式 ~チームチャットとグローバルチャット~

チームチャットとグローバルチャットの定義方法だが、下の行を例にとって説明すると、
QM_MENU_ITEM_TEAM("1.Path Cleared.",exec"VoiceTeamChat 
PathCleared";close wm_quickstatements_alt,"1",0)(注:改行しないで)

QM_MENU_ITEM_TEAM と exec "VoiceTeamChat PathCleared"; の二つがチームとグローバルを分ける定義だと思われる。

ここを QM_MENU_ITEM と exec "VoiceChat PathCleared"; にすればグローバルチャットになるはず。

QM_MENU_ITEM_TEAM 等とかかれていたら QM_MENU_ITEM に直した上で、 VoiceChat にすれば良いと思われ。
最終更新:2005年12月04日 23:00