ADX2 LE情報(facebook
ADX2ユーザー助け合い所からコピー)
■効果音を作りたい
http://www.slideshare.net/tatmos/adx2le-ggj13/33 |
■初期化手順
CRIメニューから |
■CriAtomSouceコンポーネントの追加
atomSourceSe =
gameObject.AddComponent<CriAtomSource> (); atomSourceSe.cueSheet = cueSheetName; //キューシート名指定 |
■再生/停止/ポーズ/ポーズ解除
atomSourceSe.Play(4); //
キューID指定再生 |
■Pitch/Volume変更
atomSourceSe.pitch = 100; //
cent(100で半音) atomSourceSe.volume = 1.0f; // 1.0で原音と同じ振幅レベル |
■AISAC変更
atomSourceSe.SetAisac(aisac_id,value);//AISACコントロールID指定 |
■カテゴリボリューム変更
CriAtom.SetCategoryVolume("BGM",bgmVolume);
|
■バスセンド(リバーブ量変化等)
float depth = 1.0f; |
■再生時刻の取得
GUILayout.Label(atomSourceBgm.time.ToString());
|
■再生状態の取得
CriAtomSource.Status status =
atomSourceBgm.status; if ((status == CriAtomSource.Status.Stop) || (status == CriAtomSource.Status.PlayEnd)) {//停止かエンドか this.playbackBGM = atomSourceBgm.Play(100); } |
■キュー情報一括取得
string cueSheetName = “Pinball”; |
■再生中のブロックインデックスの取得(ブロック再生)
CriAtomExPlayback playbackBGM; |
■再生中のブロックインデックスの指定(ブロック再生)
playbackBGM.SetNextBlockIndex(cur %
this.cueInfo.numBlocks); |
■再生開始前にブロックをセットして再生(ブロック再生)
atomSourceBgm.cueName =
"mainBgm"; |
■スクリプトでのacb解放の仕方
if(GUILayout.Button("Remove")){ CriAtom.RemoveCueSheet("PinballMain"); } if(GUILayout.Button("Add")){ CriAtom.AddCueSheet("PinballMain","PinballMain.acb",""); } |
■BGMのビートを取り出す(ビート同期する処理)
void Start () { void Update () { |
■XYでAISACを変更する(カオシレータ風)
// TapPos(new Vector2(x/Screen.width,y/Screen.height)); static public void TapPos(Vector2
tapPos) |
■振幅レベルをとりだす(ピークメータ、口パク等)
void Start () { |
■MIDIノートNoから音程を設定
static public void SetMidiNote(float
note) |
■MIDIベロシティから音量を設定
static public void VelocityToVoluem(float
velocity) |
■周波数からピッチ(MIDIノート)の変換
static public float Ftom(float
freq) |
■ピッチ(MIDIノート)から周波数の変換
static public float Mtof(float
note) { return (440f * Mathf.Exp(.057762265f * (note - 69f))); } |
■ピッチから再生速度へ変換
static public float PitchToSpeed(float
pitch) { return Mathf.Pow(2,pitch/12.0f); } |
■iOSなどバックグラウンドになった時にBGMを一時停止/復帰する
void OnApplicationPause(bool
pause) |
■キューブをクリックすると再生/停止をする
-
CubeにCriAtomSourceをつけて、cri/unity/samples/criatom/script/Unity3Project/ScriptSample01_ClickToPlay/Assets/Scripts/PlayAndStopSoundOnClick.csを使う。
void Update () { if (Physics.Raycast(clkRay, out
rh, 20)) { // Play Cue |
■AtomSourceからCriAtomExPlayerを得る(CriAtomExPlayerを呼び出す改良)
Plugins/CriWare/CriWare/CriAtomSource.csに以下の行を追加
public CriAtomExPlayer Player { get { return player; } } |
【補足】CriAtomExPlayerはpitchの変更やtimeの設定など低レベルなリアルタイム処理を使用する場合に取得します。
atomSourceSe.Player.SetStartTime((long)settime); atomSourceSe.Stop(); atomSourceSe.Play(cueNo); |
【補足】CriAtomExPlayerのSetStartTimeを呼び出すため、CriAtomExPlayerを呼び出す改良を施しておいて下さい。SetStartTimeには開始msecを指定します。
■再生中の音をピッチベンドする
CriAtomExPlayback playback; void Playback(int cueNo) { playback = atomSourceSe.Play(cueNo); } void PitchBend(float pitch){ atomSourceSe.Player.SetPitch(pitch); atomSourceSe.Player.Update(playback); } |
【補足】CriAtomExPlayerのSetStartTimeを呼び出すため、CriAtomExPlayerを呼び出す改良を施しておいて下さい。SetPitchにはcent値(100で半音、1200で1オクターブ)を指定します。