125
ADX2 LE ワークショップ GGJ2013向け 2013-01-25 田中孝 この資料は1/22~24に行われたワークショップの資料を元にしています。 1

ADX2LE GGJ13向けワークショップ

Embed Size (px)

DESCRIPTION

GlobalGameJam2013直前に行われたADX2LEワークショップの配布資料をまとめたものです。 ADX2LEの導入方法、Unityとの連携動作の詳細、エラーで困った場合や、インゲームプレビューで困った場合など、 何をするものなのかなどの一通りの解説となっています。 サイト→ http://www.adx2le.com/ ウィキ→ http://www53.atwiki.jp/soundtasukeai/pages/22.html

Citation preview

Page 1: ADX2LE GGJ13向けワークショップ

ADX2 LE ワークショップGGJ2013向け2013-01-25 田中孝

この資料は1/22~24に行われたワークショップの資料を元にしています。

1

Page 2: ADX2LE GGJ13向けワークショップ

このワークショップについて

•ADX2 LEをGGJで導入する紹介になります。•後半のアラカルトでADX2の機能を紹介します。資料に先に目を通しておいてください。

2

Page 3: ADX2LE GGJ13向けワークショップ

レジュメ• おいしいところ/落とし穴• ADX2 LEダウンロード/インストール(紹介のみ)• ツール紹介• Unityプラグイン紹介• 基本ワークフロー紹介• 自由課題(アラカルト)

3

Page 4: ADX2LE GGJ13向けワークショップ

ADX2 LEおいしいところ

4

Page 5: ADX2LE GGJ13向けワークショップ

何がおいしいのか?•圧縮波形でサイズ小さく起動も速く• BGMループが楽•効果音が多くなっても管理が楽•エフェクトで手軽に豪華に•他にも便利機能いろいろ

5

Page 6: ADX2LE GGJ13向けワークショップ

• Unity Webプレーヤで動かない→バウンス(波形出力)でWeb版、 本気はPCまたはMac版として

•Windowsのツールしかない→MacのUnityでランタイムライブラリは動く→Parallelsで問題ない

Macの人は仮想環境があると便利

落とし穴

6

Page 7: ADX2LE GGJ13向けワークショップ

ADX2 LEをダウンロード※本ワークショップでは既にインストール済なので紹介だけ

7

Page 8: ADX2LE GGJ13向けワークショップ

ADX2 LEのダウンロード

GGJ特設サイトのリンク先からダウンロード

CRI GGJ特設サイト

GGJ会場WEBサイト

8

Page 9: ADX2LE GGJ13向けワークショップ

ADX2 LEのインストール• zipファイルを展開し、展開したcriフォルダをC:/ADX2LE_Workshop/に置いてください。(windowsの場合パス名に日本語が含まれていると正しく動作しない場合があります。)

• Macの場合は、Unityのプラグインだけ使用しますので好きなところに展開して下さい。

9

Page 10: ADX2LE GGJ13向けワークショップ

ツールを紹介

10

Page 11: ADX2LE GGJ13向けワークショップ

ツール紹介• CRI Atom Craft は、波形を登録し音を管理する。• 音リクエスト(プログラムからのコール)をキューと呼ぶ• 複数キューをパッキングしたものをキューシートとよび、キューシートをACB出力する。

元波形波形エディタ

キューシートACB

CRI Atom Craft

11

Page 12: ADX2LE GGJ13向けワークショップ

ACBとは何か?

• CRI Atom Cuesheet BinaryAtomキューシートバイナリ

• 圧縮された波形(1/4~1/12)と設定(音の鳴らし方)をパッキングしたファイル

• これをメモリに読み込んで再生する

12

Page 13: ADX2LE GGJ13向けワークショップ

ツールを起動

13

Page 14: ADX2LE GGJ13向けワークショップ

起動• CRI Atom Craft アイコンをダブルクリックで起動。

※本ワークショップではデスクトップにショートカットがあります

14

Page 15: ADX2LE GGJ13向けワークショップ

Undoできます•ツール操作のUndo

15

Page 16: ADX2LE GGJ13向けワークショップ

プロジェクトを作成し波形を登録

16

Page 17: ADX2LE GGJ13向けワークショップ

プロジェクト作成

17

Page 18: ADX2LE GGJ13向けワークショップ

プロジェクト名をつける

18

Page 19: ADX2LE GGJ13向けワークショップ

プロジェクトをとりあえず保存

19

Page 20: ADX2LE GGJ13向けワークショップ

登録する波形をダウンロード※本ワークショップでは既にダウンロード済なので紹介だけ

20

Page 21: ADX2LE GGJ13向けワークショップ

デモプロジェクトのあるサイトへアクセス

21

Page 22: ADX2LE GGJ13向けワークショップ

フリー波形素材をダウンロード

22

Page 23: ADX2LE GGJ13向けワークショップ

任意のフォルダに展開

※本ワークショップではデスクトップにショートカットがありますそこからアクセスして下さい。

23

Page 24: ADX2LE GGJ13向けワークショップ

SoundIcons参考:他に素材を手に入れたい場合

http://www.brainstorm-inc.jp/24

Page 25: ADX2LE GGJ13向けワークショップ

波形を登録して、ACBビルド(単純に圧縮のみ)

25

Page 26: ADX2LE GGJ13向けワークショップ

波形をキューシートへドロップ

なお、Windows7などセキュリティレベルの関係でデスクトップからのD&Dがうまくいかない場合は適宜変更して下さい。

26

Page 27: ADX2LE GGJ13向けワークショップ

キューシートを選択しビルドダイアログを開く

27

Page 28: ADX2LE GGJ13向けワークショップ

チェックを確認し、ビルド

28

Page 29: ADX2LE GGJ13向けワークショップ

ACB出力した音を確認(圧縮音声の品質確認)

29

Page 30: ADX2LE GGJ13向けワークショップ

初回再生時に警告がでたら

• セキュリティ関連のダイアログが出た時は「ブロックを解除する」を選択してください。

プレビューでアプリケーション間の通信処理を行うため、ブロックを解除する必要があります。

30

Page 31: ADX2LE GGJ13向けワークショップ

キューをプレビュー(再生)

F5キーで再生、F6キーで停止31

Page 32: ADX2LE GGJ13向けワークショップ

圧縮率を変えてみる

32

Page 33: ADX2LE GGJ13向けワークショップ

効果音作成の基本

•爆発音•レーザー音•サイレン音

33

Page 34: ADX2LE GGJ13向けワークショップ

爆発音を作る• ノイズにトラックオートメーションでボリュームの変化を表現

• ボイスビヘイビアでボイス停止(ボリューム0時)と設定する。

34

Page 35: ADX2LE GGJ13向けワークショップ

レーザー音を作る• sqにトラックオートメーションでピッチの変化を表現

• 右クリックでイベントの追加でシーケンスエンドを追加

35

Page 36: ADX2LE GGJ13向けワークショップ

サイレン音を作る• TranceにAISACオートモジュレーションでピッチの周期的変化

②③ ④

• AISAC:キューやトラックに対して条件による音の変化を設定できる

36

Page 37: ADX2LE GGJ13向けワークショップ

キューをバウンス(波形出力)してみるwav形式で保存する

37

Page 38: ADX2LE GGJ13向けワークショップ

キューをバウンス(波形出力)

自動で再生され記録開始されます。

F6で音を停止して

バウンスを停止します

38

Page 39: ADX2LE GGJ13向けワークショップ

バウンスしたファイルの確認

キュー名でwavが作成されます。

出力先が開き

bounceフォルダ内に39

Page 40: ADX2LE GGJ13向けワークショップ

バウンスしたファイルはリネームすると良い

同じ名前のファイルで内容が異なるものがあると混乱しがちなので、なるべく名前を変更しておき

ましょう。

40

Page 41: ADX2LE GGJ13向けワークショップ

キューをバウンス直後にすぐ編集

バウンスを停止してエディタを開きます

波形エディタを登録しておくと便利

41

Page 42: ADX2LE GGJ13向けワークショップ

Audacityフリー波形編集ソフト

モノラル化、レート変更、トリミングなど

42

Page 43: ADX2LE GGJ13向けワークショップ

ツールはとりあえずここまで

43

Page 44: ADX2LE GGJ13向けワークショップ

Unityプラグイン紹介

44

Page 45: ADX2LE GGJ13向けワークショップ

Unityプラグインとは何か?

• ランタイムライブラリ(実行時にゲームに組み込まれて動作するプログラム)

• エディタ拡張(Unityエディタ上で動作)• 最小限のスクリプトが含まれています。

45

Page 46: ADX2LE GGJ13向けワークショップ

Unityプロジェクトの準備

46

Page 47: ADX2LE GGJ13向けワークショップ

Unityプロジェクトの作成

• Unityを起動し、空のプロジェクトを作成

デスクトップにショートカットがあります。

47

Page 48: ADX2LE GGJ13向けワークショップ

レイアウトは2 by 3で

48

Page 49: ADX2LE GGJ13向けワークショップ

シーン作成•とりあえず保存 名前はtestで。

49

Page 50: ADX2LE GGJ13向けワークショップ

•はじめにUnityプロジェクトにCRIWARE Unity Pluginをインストールする

50

Page 51: ADX2LE GGJ13向けワークショップ

• UnityプラグインのパッケージはC:/ADX2LE_Workshop/cri/unity/pluginにあります。

51

Page 52: ADX2LE GGJ13向けワークショップ

パッケージのインポート

52

Page 53: ADX2LE GGJ13向けワークショップ

• 3つフォルダがインストールされます。

Assetsフォルダの確認

53

Page 54: ADX2LE GGJ13向けワークショップ

•メニューにCRIが追加されます。

Unityプロジェクトの準備

初回出てこないときはメニューのどこかをクリックするとでてきます。

54

Page 55: ADX2LE GGJ13向けワークショップ

ADX2で作ったACBファイルをUnityのAssetsへ書き込む

55

Page 56: ADX2LE GGJ13向けワークショップ

CRIメニューからOpen CRI Atom Window ...

を選択

56

Page 57: ADX2LE GGJ13向けワークショップ

CRI Atom Windowを使ってUnityのAssetsに書き込む

ACB出力先のAssetsフォルダを指定

実行

57

Page 58: ADX2LE GGJ13向けワークショップ

実行後のCRI Atom Window

更新されない場合は、一度デスクトップを表示した後に再表示する

58

Page 59: ADX2LE GGJ13向けワークショップ

StreamingAssetsフォルダが作成される

他にもACFファイル(NewProject.acf)とCriAtomProjInfo_Unity.csが追加されている。

ACB

59

Page 60: ADX2LE GGJ13向けワークショップ

ACFとは何か?

• CRI Atom Config FileAtomコンフィグファイル

• ACBに含まれない、再生をするために必要な情報が書き込まれたファイル(DSPエフェクト設定、カテゴリなどの全体設定情報)

60

Page 61: ADX2LE GGJ13向けワークショップ

CriAtomProjInfo_Unity.csとは何か?

• Unityエディタ用のC#スクリプト• ADX2で作成した音をUnityが認識するための情報。

61

Page 62: ADX2LE GGJ13向けワークショップ

手動でLE側のAssetsフォルダをUnityのAssetsへ書き込む

参考情報

62

Page 63: ADX2LE GGJ13向けワークショップ

CRI Atom Craftツールに戻りACBをエクスプローラで開く

キューシートを右クリック

63

Page 64: ADX2LE GGJ13向けワークショップ

プロジェクト直下のPublic/inGamePreview/Assets

をUnityのAssetsへ上書きコピー

Assetsのある余白のところへドロップ

コピーしてペーストでも可64

Page 65: ADX2LE GGJ13向けワークショップ

すべて上書きをする

Macの場合、置き換えになってしまう場合があるので、Windows側で行うと間違いない

65

Page 66: ADX2LE GGJ13向けワークショップ

Unityのシーン上で音を確認

とりあえずUnity上で音を再生する

66

Page 67: ADX2LE GGJ13向けワークショップ

Initializerを追加

ADX2の初期化処理を行うためのオブジェクトをシーンに追加します。

67

Page 68: ADX2LE GGJ13向けワークショップ

CRIメニューからCreate CRIWARE Library Initializer ...

を選択

68

Page 69: ADX2LE GGJ13向けワークショップ

CriWareLibraryInitializerが作られる

ランタイムライブラリの設定で発音数、インゲームプレビュー設定、サーバー周期(FPS)など設定できます。

69

Page 70: ADX2LE GGJ13向けワークショップ

CriAtomSourceを追加

ADX2の音を鳴らすためのオブジェクトをシーンに追加します。

70

Page 71: ADX2LE GGJ13向けワークショップ

CriAtomSourceの追加

Atom Windowを開き余白をクリックして選択を解除し

Create GameObjectを押す

④2つオブジェクトが追加される

orchehitを選択②

71

Page 72: ADX2LE GGJ13向けワークショップ

Play On Startをチェック

orchehit(CriAtomSource)のPlay On Startをチェック

72

Page 73: ADX2LE GGJ13向けワークショップ

Unityのシーンを再生すると音が鳴る

73

Page 74: ADX2LE GGJ13向けワークショップ

さらにボタンを押すと音が鳴るようにする

SoundManagerを使う

74

Page 75: ADX2LE GGJ13向けワークショップ

スクリプトを追加して音をならす/samplecode/SoundManager.cs

Unityで空のゲームオブジェクトを作る

UnityのAssetsにSoundManager.csをドロップして追加

AssetsのSoundManager(C#)をGameObjectへドロップ

75

Page 76: ADX2LE GGJ13向けワークショップ

Unityのシーンを再生し

ボタンを押すと任意の音が鳴らせます

76

Page 77: ADX2LE GGJ13向けワークショップ

基本的なワークフロー

77

Page 78: ADX2LE GGJ13向けワークショップ

元波形 CriAtomSourceUnity波形エディタ

キューシートACB

CRI Atom Craft

波形を用意、CRI Atom Craftでキューにして音を調整、アレンジしACBをビルドし、UnityのAssetsへ上書き

スクリプト

最低1つ個別コントロールしたい場合は複数持てる

最低1つACB分割したい場合

複数持てる

1つで複数音鳴らせます

音を調整、アレンジ

ACB

78

Page 79: ADX2LE GGJ13向けワークショップ

音の調整とアレンジ

79

Page 80: ADX2LE GGJ13向けワークショップ

ボリューム変更、ピッチ変更

タイムラインでタイミング変更

いろいろできます

80

Page 81: ADX2LE GGJ13向けワークショップ

知ってると得する情報

81

Page 82: ADX2LE GGJ13向けワークショップ

アラカルト

SoundManagerAISAC基本

ブロック再生基本効果音作成基本ランダム基本

コンボシーケンシャルエフェクトの基本音数制限の基本REACTの基本インゲームで調整

おすすめ

おすすめ

※本ワークショップでは時間の都合で2つ紹介

オリジナル音作りたい(ツール紹介でやった内容)

手軽ににぎやかに

スクリプトサンプル解説

82

Page 83: ADX2LE GGJ13向けワークショップ

SoundManager

•スクリプトで鳴らす方法• CriAtomSource管理•キュー名取得•再生

83

Page 84: ADX2LE GGJ13向けワークショップ

サウンドマネージャとは?using UnityEngine;using System.Collections;using System.Collections.Generic; // 配列用

public class SoundManager : MonoBehaviour {

}

サウンドを管理するゲーム独自のクラスで、再生や停止、リソース管理などを行う。

ゲームに応じたギミックを埋め込む目的で用意。

サウンドマネージャを作っておくと後で拡張したり、デバッグしやすくなるので便利です。

84

Page 85: ADX2LE GGJ13向けワークショップ

SoundManagerよりも先に、CriWareInitializerが動作するように

UnityのオブジェクトでAwake()内でCriの関数を呼び出す場合などUnityのオブジェクトの初期化順番をコントロールする ExecutionOrderを変更しておくと良いです。

85

Page 86: ADX2LE GGJ13向けワークショップ

CriAtomSource� private string cueSheetName = "CueSheet_0";��// キューシート名 �����������CriAtomSource atomSourceSe;� CriAtomSource atomSourceBgm;� void Awake ()� {

��// CriAtomSourceコンポーネントを追加� � atomSourceSe = gameObject.AddComponent<CriAtomSource> ();� � atomSourceSe.cueSheet = cueSheetName;� �� � // CriAtomSourceコンポーネントを追加� � atomSourceBgm = gameObject.AddComponent<CriAtomSource> ();� � atomSourceBgm.cueSheet = cueSheetName;� }

ここでは、コントロール対象として、おおまかにSEとBGM用のCriAtomSourceを追加しています。

86

Page 87: ADX2LE GGJ13向けワークショップ

ACB情報取得� private string cueSheetName = "CueSheet_0";��// キューシート名� �� private List<string> cueNameList = new List<string> (); //キュー名リスト� void Awake ()� {

// ACBを取得しキュー情報を得る�� � CriAtomExAcb acb = CriAtom.GetAcb (cueSheetName);�� � CriAtomEx.CueInfo[] cueInfoList = acb.GetCueInfoList ();� � foreach (CriAtomEx.CueInfo cueInfo in cueInfoList) {� � � cueNameList.Add (cueInfo.name);�� � }�������}

デバッグなどでキュー名一覧が欲しい場合はこのように取り出せます。名前以外にも様々な情報が取り出せます。

87

Page 88: ADX2LE GGJ13向けワークショップ

DSPバス設定関連� void Start () {� �

��// DSPバス設定名を指定� � CriAtomEx.AttachDspBusSetting("DspBusSetting_0");� �� � CriAtom.SetBusAnalyzer(true); // レベルメータを有効化� }

DSPエフェクトを使用する場合にツールで作成したDspBusSetting_0をセットしておきます。

BusAnalyzerは振幅レベルの測定用です。これを有効にすると、インゲームプレビュー時にレベルがツール側に通知されます。

88

Page 89: ADX2LE GGJ13向けワークショップ

ラップの工夫�������// キューを再生する関数サンプル� public void PlaybackCue(int index)� {� � atomSourceSe.Play(index);� }

この例では、ゲームオーバーのイベントに対して、何をするかをこちらで決める事ができます。合わせて他の音止めたりといった拡張がこちらで可能です。

� // ゲームオーバー時の再生関数� public void PlayGameOver()� {� � atomSourceSe.Play(4);� }

ラップ方法も様々な方法がありますが、この例では単純にラップしただけ、(AtomSourceを隠す)呼び出し側の引数によって鳴る音が変化します。

89

Page 90: ADX2LE GGJ13向けワークショップ

再生状態の取得�� public void ResumeBGM()� {

�//�再生中かどうかの取得� � CriAtomSource.Status status = atomSourceBgm.status;

if ((status == CriAtomSource.Status.Stop) || ����(status == CriAtomSource.Status.PlayEnd)) {

� � � PlayBGM(); //止まっていた時に再生� � }� }

再生状態を取得して、止まっていたら再生するという例です。

インゲーム等で音が停止された場合に、BGMを復帰する用にUpdate()内で呼び続ける事で復帰します。

90

Page 91: ADX2LE GGJ13向けワークショップ

ポーズ、レジューム� public void Pause()� {� � atomSourceBgm.Pause(true);� }� public void Resume()� {� � atomSourceBgm.Pause(false);� }

ゲームのポーズ時などで、atomSourceで再生中の音をポーズします。

91

Page 92: ADX2LE GGJ13向けワークショップ

簡易ビューワー� private string cueSheetName = "CueSheet_0";

������CriAtomEx.CueInfo[] cueInfoList;�� void Start ()� {� � CriAtomExAcb acb = CriAtom.GetAcb (cueSheetName);�� �� � cueInfoList = acb.GetCueInfoList ();� }������public bool soundDebug = true;� void OnGUI()� {� � if(soundDebug){� � � foreach (CriAtomEx.CueInfo cueInfo in cueInfoList) {� � � � if(GUILayout.Button(cueInfo.name)){� � � � � atomSourceSe.Stop();� � � � � atomSourceSe.Play(cueInfo.name);� � � �� � � � }� � � }� � }� }

キューの数だけボタンを生成して音が鳴らせます。

92

Page 93: ADX2LE GGJ13向けワークショップ

AISAC基本

•距離減衰カーブ•ヘリコプターの回転数変化音•エンジン音的なもの

93

Page 94: ADX2LE GGJ13向けワークショップ

AISACとは何か?• Advanced Interactive Sound and Active Controllerキューやトラックに対して条件による音の変化を設定できる

コントロールタイプ:AISAC動作の仕方•オフ(手動)…  プログラムの関数SetAisac(コントロールID、コントロール値);から トラックオートメーション、3Dポジションの距離減衰やパン角度から•オートモジュレーション(自動)… 再生トリガ同期モジュレーション、 LFOとして、REACTトリガキー同期などで自動化(アニメーション)•ランダム(半自動) … 完全ランダム、またはプログラムから中心値指定プログラムやタイムライン、再生状態等から操作する目的で、音色変化を任意の値で抽象化します。直接パラメータ弄らせないことで、デザインの幅が広がります。

94

Page 95: ADX2LE GGJ13向けワークショップ

AISACのスクリプト例� float lastPlaybackBallTime = 0;�������// AISACの例� public void PlaybackBall(int index,float velocity)� {� � if(lastPlaybackBallTime+0.25 < Time.timeSinceLevelLoad){� � � velocity = Mathf.Min(velocity,1.0f);� � � atomSourceBall.SetAisac(0,velocity);� � � atomSourceBall.Play(index);� � � lastPlaybackBallTime = Time.timeSinceLevelLoad;� � }� }

atomSource.SetAisac(0,velocity);

AISACコントロールIDAISACコントロール値(0.0~1.0)

AISACを設定しつつ音を鳴らす関数の例です。

95

Page 96: ADX2LE GGJ13向けワークショップ

ブロック再生基本•インタラクティブミュージックとは?•ブロックのループ設定•ブロックの分割設定•遷移する時のみ再生するトラック•遷移初回時のみ再生するトラック

96

Page 97: ADX2LE GGJ13向けワークショップ

ブロック再生キューにする

• キューの右クリックからブロックの作成を選択する

97

Page 98: ADX2LE GGJ13向けワークショップ

ブロック再生とは何か?

• ブロックに分けて連続再生させる仕組み

ブロックのループ回数を-1にすると無限ループ。ブロック分割数を指定すると、途中で切り替わるポイントが増える。遷移タイプを「指定分割で」にする。

※「CRI ブロック再生」で検索すると、Youtube動画があります。

①②

98

Page 99: ADX2LE GGJ13向けワークショップ

ブロック再生をプログラムから指定する� private CriAtomExPlayback playbackBGM;� CriAtomEx.CueInfo cueInfo;� public void PlayBGM()� {� � bool startFlag = false;� � CriAtomSource.Status status = atomSourceBgm.status;� � if ((status == CriAtomSource.Status.Stop) || (status == CriAtomSource.Status.PlayEnd)) {� � � this.playbackBGM = atomSourceBgm.Play(100);� � � startFlag = true;� � }� �� � if(startFlag == false){� � � int cur = this.playbackBGM.GetCurrentBlockIndex();�// 現在のブロックインデックスを得る� � � CriAtomExAcb acb = CriAtom.GetAcb("PinballMain");� � � if(acb != null){� � � � acb.GetCueInfo("BGM",out this.cueInfo);�// キュー情報� � � � cur++;� � � � if(this.cueInfo.numBlocks > 0){ //�ブロックがあれば

// ブロックをセットする� � � � � this.playbackBGM.SetNextBlockIndex(cur % this.cueInfo.numBlocks);� � � � }� � � }� � }� }

未再生なら再生、再生中ならブロックを次のブロックにすすめる99

Page 100: ADX2LE GGJ13向けワークショップ

ランダムの基本

•ピッチ•トラック•再生確率

100

Page 101: ADX2LE GGJ13向けワークショップ

ピッチのランダムとは何か?• ピッチが再生リクエストのたびに変化する。

スライダにくぼみがあるものは縦にドラッグすると緑の幅が指定できる。この範囲の中からランダムに設定されて再生される。

プロパティリストから直接値を入力もできます。

101

Page 102: ADX2LE GGJ13向けワークショップ

トラックのランダムとは何か?• ランダムに音が変わる

キューのシンセタイプをランダムに

012

0 1 2 1 2 キューのシンセタイプをランダムノーリピートにすると、同じ番号が連続しない1

0 1 2 1 2 2

0 1 2 0 1 2 キューのシンセタイプをシーケンシャルにすると、順番に切り替わる

102

Page 103: ADX2LE GGJ13向けワークショップ

再生確率とは何か?• 音が鳴ったり、鳴らなかったりする

100%で確実に再生されるが、50%だと 2回に1回しか鳴らない。

103

Page 104: ADX2LE GGJ13向けワークショップ

コンボシーケンシャル

•連続ヒット音について•コンボ間隔設定•コンボ戻り設定

おすすめ

104

Page 105: ADX2LE GGJ13向けワークショップ

コンボシーケンシャルとは何か?• 連続ヒット音

トラックで段々オケもピッチが上がるように設定

キューのシンセタイプをコンボシーケンシャルにコンボ間隔 … コンボの決まる間隔コンボ戻り … 最後までいった後どのトラックに戻るか

012

0 1 2 2 2 0 500msec未満の時のみ次のトラックが再生される。500msec以上再生間隔が空くと0にリセットされる。

500msec以上

105

Page 106: ADX2LE GGJ13向けワークショップ

エフェクトの基本

•リバーブ•エコーの追加•バスの仕組み

106

Page 107: ADX2LE GGJ13向けワークショップ

エフェクトとは何か?• DSPバスエフェクトで音を豪華に

バスにエフェクトを追加し、センドでバス0に戻すようにする。 トラックのバスセンドを上げる

とエコーがかかる。

③107

Page 108: ADX2LE GGJ13向けワークショップ

音数制限の基本

•キューリミット•カテゴリによるリミット•ボイスリミットとの関係

108

Page 109: ADX2LE GGJ13向けワークショップ

音数制限とは何か?• 適切な発音数制御をする3つの方法キュー … その音そのものの発音数カテゴリ … おおまかな発音数ボイス … より低レベルでリアルタイムのリソース管理を目的とする

キュー キュー単位で発音数制御 リリース有効

カテゴリカテゴリで発音数制御。キュー単位。 リリース有効

ボイス ボイスリソース単位リリース無効。(即時で解放)

②109

Page 110: ADX2LE GGJ13向けワークショップ

REACTの基本

•ダッキング効果について•カテゴリ間の音量作用•自動レベル管理

おすすめ

110

Page 111: ADX2LE GGJ13向けワークショップ

REACTとは何か?• REACT = 反応する• カテゴリの発音状態による他のカテゴリ音の変化の自動化

声(Serif)が鳴ったらBGMを下げる。 といった事を設定する。

どれくらいの時間かけて(200msec)どのくらいの値に(0.2)どれくらい時間かけて戻る(1000msec)

・音量制御を自動化します。・変化パラメータにAISACを指定する事で、他のパラメータもコントロールできます。(ピッチとか)

111

Page 112: ADX2LE GGJ13向けワークショップ

カテゴリはこんな感じで

112

Page 113: ADX2LE GGJ13向けワークショップ

REACTの確認

BGM再生 声を再生

113

Page 114: ADX2LE GGJ13向けワークショップ

インゲームでさらに調整

114

Page 115: ADX2LE GGJ13向けワークショップ

CriWareLibraryInitializerのUses In Game Previewにチェックを入れる。

115

Page 116: ADX2LE GGJ13向けワークショップ

Unityエディタを実行状態にすると

インゲーム用のポート(2002)が開きます。

デバッグ用の備考 IP ポートの確認方法WinXP: netstat -anMac: lsof -i -P

116

Page 117: ADX2LE GGJ13向けワークショップ

Unityエディタを実行状態にして、

CRI Atom Craftで【F10キー】でインゲーム接続します。

117

Page 118: ADX2LE GGJ13向けワークショップ

Macの場合は、ツール/プロパティからリモートターゲットIPアドレスをMacのIPにすることで、Unityエディタに接続できます。

118

Page 119: ADX2LE GGJ13向けワークショップ

エラー対応

119

Page 120: ADX2LE GGJ13向けワークショップ

よくあるエラー例①

ACFよりACBが先にロードされて問題→だいたいExecution Orderの設定で直る※ACFはCriWareInitializerで設定される。

120

Page 121: ADX2LE GGJ13向けワークショップ

CRIWARE Error Handlerを追加すると何かトラブルがあった時、

Consoleでエラーメッセージが確認できます

121

Page 122: ADX2LE GGJ13向けワークショップ

よくあるエラー例②音が鳴らない場合や、Nullアクセスが発生する場合

ExecutionOrderが正しく反映していない場合があるようです。CRI Atom ウィンドウを一度閉じてから

再設定すると直ったりします。

CRI Atom ウィンドウを閉じる

122

Page 123: ADX2LE GGJ13向けワークショップ

Atom Windowの閉じ方ACBの差し替え時や

シーンを実行時にエラーが起った場合など開いたままでもし問題が起る場合は閉じておいて下さい。

タブ化している場合はClose Tabウィンドウ化している場合は

Closeボタン

123

Page 124: ADX2LE GGJ13向けワークショップ

エラーは他にもいろいろ起きますバグの可能性もあります

ゲームジャム期間中で何か分からない事や困った事があれば

twitterで@tatmos宛につぶやいて下さい。

多いものから対処法をまとめたページとか用意するかも…

124

Page 125: ADX2LE GGJ13向けワークショップ

ADX2 LEをよろしくお願いします。

http://www.facebook.com/groups/adx2userj/

ADX2ユーザー助け合い所 @facebook

125