グラフィックと並んでゲームの表現力をぐっと広げてくれるのがサウンド機能だ。プチコンのサウンド命令は大きく3つに分けられる。
・効果音
効果音はBEEP命令で発生させることができる。プリセットの効果音はmkIIの70種から134種に増加。周波数はプチコンmkIIで1オクターブ4096段階で上下2オクターブに変更可能だったのに対し、プチコン3号では半音96段階で-32768〜32767の変更ができる(表現をプチコンmkIIに合わせると「1オクターブ1152段階で上下28.4オクターブに変更可能」ということにはなるが、もちろんこれは可聴音域を超えている)。
・音楽
プリセット曲やMMLを鳴らすBGMPLAYなど、BGMから始める一連の命令は特に大きな変更はない。ただし、MMLの内部変数の読み出し/書き込みを行うBGMGETV/BGMSETVは、ほかの内部変数を扱う命令と統一され、BGMVARで読み出し/書き込みを行うように変更された。MMLはプチコンmkIIの仕様ほぼそのままだが、同時再生チャネルが8から16に、最大テンポが240から512に増加したほか、モジュレーションにオートパン@MLが追加されている。
楽器を登録するBGMPRGはWAVSETに置き換えられた。書式はほぼ同じだが、波形文字列がmkIIの32/64バイトから、16/32/64/128/256/512バイトに拡張された。マイクからの入力を登録する場合には数値配列から登録できるWAVSETAが便利だ(サンプリングレート8180Hz固定、最大16384サンプルまで)。
・TALK
音声合成のTALKはプチコンmkIIから大幅に機能が削られた。プチコンmkIIのときにあったイントネーション変更やピッチ制御、発生速度、ボリューム、話者設定、感情設定などの@コマンド、アクセントやフレーズ制御、行末処理(疑問、驚き)などはすべて削除されている。
例えばプチコンmkIIのつもりで「アレ? ナニカアッタンデショーカ ワタシガチョット ミテキマショー タイヘンデス! タイヘンデス!」という文字列を渡すと「アレハテナ ナニカアッタンデショーカ ワタシガチョット ミテキマショー タイヘンデスビックリ タイヘンデスビックリ」と読み上げるので注意。
そのほか、サウンド全体に効果がある機能としてエフェクター(リバーブ)が追加された。EFCSETでエフェクターのプリセットを選択、EFCON/EFCOFFでエフェクターの有効/無効、EFCWETでエフェクトの強さを指定する。
説明
単純な警告音・効果音の発生
引数
効果音番号
鳴らす音の種類:プリセット音0〜133
※SMILEボタンを押してプリセット音一覧を確認可能です
周波数
周波数の変更値:-32768〜32767(96で半音)
音量
再生する音量:0〜127
パンポット
ステレオのパンポット指定:0(左)〜64(中央)〜127(右)
説明(1/2)
音楽演奏(1) 登録済みBGMを再生
・同時に8曲演奏可能(ただし同時発音数は全体で16音まで)
引数
トラック番号
再生するトラック番号:0〜7(省略時は0番)
曲番号
再生する曲番号:プリセット曲0〜42 ユーザー定義128〜255
※SMILEボタンを押してプリセット曲一覧を確認可能です
音量
再生する音量:0〜127
説明(2/2)
音楽演奏(2) 入力したMMLデータを再生
・MMLデータによる再生はトラック0で行われる
・ユーザー定義曲番号255がMMLによる曲に書き換えられる
引数
MML文字列
MMLコマンドを記入
説明(1/2)
MMLの内部変数への書き込み
引数
トラック番号
対象のMMLのトラック番号:0〜7
変数番号
値を書き込む内部変数:0〜7(MMLの$0〜$7)
値
変数に書き込む値
説明(2/2)
MMLの内部変数の読み込み
引数
トラック番号
対象のMMLのトラック番号:0〜7
変数番号
値を読み込む内部変数:0〜7(MMLの$0〜$7)
戻り
演奏中の指定された変数の内容(演奏停止中は-1)
説明
MMLのユーザー定義楽器音を定義
引数
定義番号
ユーザー定義楽器番号:224〜255
※MMLの@コマンドで指定する番号
A,D,S,R
エンベロープ定義パラメータ
A:アタック 0〜127
D:ディケイ 0〜127
S:サスティン 0〜127
R:リリース 0〜127
波形文字列
16進数文字列。2文字で1サンプルの値(8bit)を表す
〜(128)〜HFF(255)
16,32,64,128,256,512サンプルの指定が可能(文字数はサンプル数の2倍)
基準音程
省略時は69(O3A)
説明
MMLのユーザー定義楽器音を配列から定義
・MICSAVEで得た配列から定義するときに便利
・サンプリングレート8180Hz、8ビット固定
引数
定義番号
ユーザー定義楽器番号:224〜255
※MMLの@コマンドで指定する番号
A,D,S,R
エンベロープ定義パラメータ
A:アタック 0〜127
D:ディケイ 0〜127
S:サスティン 0〜127
R:リリース 0〜127
数値配列
MICSAVE命令で得た配列(最大16384サンプルまで)
基準音程
省略時は69(03A)
先頭添字
数値配列の読み込み開始要素の添字(省略時は0)
最終添字
数値配列の読み込み終了要素の添字(省略時は最終要素)
説明
音声合成による発生
引数
音声文字列
発音させたい文字列(文字をそのまま発音する)
説明
音楽のエフェクトをONにする
・エフェクトの種類はEFCSET命令で選択
説明
EFCONでONにした音楽のエフェクトをOFFにする
説明(1/2)
音楽のエフェクトの種類を選択する
引数
0:なし(EFCOFFと同じ)
1:リバーブ(風呂場)
2:リバーブ(洞窟)
3:リバーブ(宇宙)
説明(2/2)
上級者向けエフェクトパラメータの設定
引数
初期反射時間
0〜2000(msec)
残響音ディレイ時間
0〜2000(msec)
残響音減衰時間
1〜10000(msec)
残響音フィルタ係数1
0.0〜1.0
残響音フィルタ係数2
0.0〜1.0
初期反射音ゲイン
0.0〜1.0
残響音ゲイン
0.0〜1.0
説明
BEEP、BGM、TALKそれぞれのエフェクト量を設定する
引数
BEEP効果値
BEEPに対するエフェクトの大きさ(0〜127)
BGM効果値
BGMに対するエフェクトの大きさ(0〜127)
TALK効果値
TALKに対するエフェクトの設定(64未満:OFF、64以上:ON)
※TALKに対してはON/OFFおみで、量は変化しない
次回はSPRITEの扱い方の変更点について紹介する。
「日刊!プチコン3号」で取り上げて欲しいネタや疑問、質問、感想は、ハッシュタグ「#nikkan_petitcom3」をつけてツイート! ライターの瓜生氏がたぶん(連載の中で)答えてくれるぞ。
Copyright © ITmedia, Inc. All Rights Reserved.