月別: 2018年1月

マテリアルCSVインポートの利用方法

マテリアルCSVインポートは、マテリアル情報をCSV出力/入力することができます。

主な用途は、新規にファイルを追加した時に、設定情報をCSVで用意することで、自動化などの応用や、外部テキストツールによる設定の一括置換などができます。

マテリアルルートフォルダは特殊

マテリアルルートフォルダをエクスポートしても
「インポート先がマテリアルルートフォルダ」になり、元のフォルダ「MaterialRootFolder」が展開されるので、
少し混乱するかと思います。

運用例

CSVとしては、マテリアルルートフォルダいかに目的別のフォルダをまず用意

例:BGMフォルダ

このBGMフォルダを出力して、インポートすることで正しく読み込めます。

マテリアルを管理するフォルダを作る

運用としては、マテリアルルートフォルダ直下にファイルを追加するのではなく、

フォルダを作成し、エクスポート/インポートするとうまくいきます。

Unity情報ファイルについて

2015年10月よりも前のADX2及びUnityプラグインのバージョンで

CriAtomProjInfo_Unity.csを利用したワークフローがありましたが、現在では廃止されています。

CriAtomProjInfo_Unity.csを使用しないように修正

 AtomWindowのキューの一覧などの情報表示処理が変わります。

 Assets\Plugins\Criware\CriAtomProjInfo\CriAtomProjInfo_Unity.cs廃止。

 ・主な変更理由

  • シンプルな構成(1つのフォルダで出力)では問題ないが、CRI Atom Craft Ver.2以降追加されたワークユニットなど多人数開発や、フォルダ階層の対応ができない。
  • マルチターゲット(iOS/Androidで別acf/acb/awbなど)対応ができない。

    →AtomWindowで表示するキューリストの情報取得するための任意フォルダが指定できるように変更されます。

    →「AtomCraftのACFビルド時のInfo.csからの情報取得」から「実行時に情報取得」に変更されます。

 補足:上記のような複雑な構成の場合は、通常、アプリ側でacf,acb,awbを管理しLoadもスクリプトで行われます。
シンプルなケースではAtomWindowは初回ユーザーや導入の流れでは今まで通りAtomWindowは使用することができます。

  • ツールバージョンとの依存性を下げることができ、Plugin側での拡張が容易になる。(ツールと合わせてしか内容が更新ができないためメンテナンスが煩雑になるため)

    →SDK2.17のツールより、C#ファイルの情報がCのヘッダーファイルと同様の情報が取得できるようになります。これにより、実行時でなくともビルド時のキュー名の取得が容易になります。

【旧仕様】

CRI Atom Windowを開いた時に
CRI Atom CraftでUnityを有効にしてビルドした時のAssets/Plugin/CriWare/CriAtom/CriAtomProjInfo_Unity.csを利用しキューリストの表示を行っていた。

【新仕様】 

【キューリスト取得方法】

CriWareLibraryInitializerの含まれるシーンを実行中AtomWindowの「Reload Info」ボタンを押すことで情報を取得します。

【フォルダを指定して表示する】

AtomWindowのユーザー任意のフォルダ(SearchPath)内にあるacf,acbファイルから情報を取得して表示します。
初期状態では今まで同様Assets.streamingAssetsを参照しています。

リミット処理のかかる順番と音が聞こえない条件

キューのリミット

キューを再生した時、そのキューがリミットされて再生されない条件はデータ側にあります。
このデータの設定は以下の順番で行われます。

  1. 多重再生禁止時間
  2. キューリミット
  3. カテゴリキューリミット

ボイスのリミット

ボイスが再生される時、そのボイスがリミットされて再生されない条件はデータ側にあります。

このデータの設定は以下の順番で行われます。

  1. ボイスリミットグループ設定のリミット
  2. ボイスプール数リミット

自動停止する機能

データ側でのリミット制御

  • 多重再生禁止時間でのリミット
  • キューのリミット
  • カテゴリキューのリミット、プライリティの優先度
  • ボイスリミットグループでのリミット

プログラム側でのリミット

  • ボイスプール数
  • ストリーム最大数

他に特殊なケースでデータ側設定で停止する例

  • トラックのMonoモード
  • ブロックの遷移時停止(ブロックを遷移させたタイミング)
  • ボイスビヘイビアのVol0時ボイス停止(ボリュームを0にした、AISACで0になった、ボリュームランダムで0になったなど)
  • セレクタによるトラック遷移の遷移時の停止(セレクタを切り替えたタイミング)
  • アクションによる停止(プレーヤー間、サウンドオブジェクトスコープ間)
  • オートメーションのボリューム0
  • キュー、トラック、ウェーブフォームリージョンのボリュームが0

再生される/されないが状況で変わる例

  • トラックに設定されたセレクタによる分岐(ポリフォニック、スイッチ)
  • トラックに設定された言語設定による分岐(ビルド時に含まれる/含まれないが決まる)
  • シーケンスタイプがランダム(トラックがランダムに選ばれる、空のトラックが含まれるなど)
  • キュー、トラック、ボイスの再生確率設定が100以下
  • ランダムの重み付けが100以下
  • スイッチでのゲーム変数が範囲外での再生
  • スイッチでのセレクタの設定が未設定での再生
  • トラックやウェーブフォームリージョンでのフィルター設定(フィルターがかかって聞こえない)
  • シーケンススタートマーカーを複数設定した時のランダムスタート(開始位置が再生時間よりうしろだと再生されない)
  • 外部キューリンクで、リンク先のキューが見つからない(外部キューリンク先のACBがロードされている/いない)
  • ブロックのタイミングで再度リピートするタイミングによるブロック切り替え(ぎりぎりのタイミングだと次の遷移機会に流れる)
  • ブロック再生による遷移先がランダム設定
  • AISACのランダムでボリュームが0など(鳴っているが聞こえない)
  • 距離減衰設定の最大距離が0
  • 距離減衰AISAC/角度AISACによるボリュームが0
  • 3Dポジショニング設定で最大距離より離れたソース
  • バスセンド先指定でバスが無いDSPバス設定に切り替えた
  • バスセンド先指定でマスターのセンド量が0(AISACやオートメーションも)
  • バスセンド先のエフェクトの設定でゲインが下げられている(フィルター要因など)
  • REACTでダッキングされた状態
  • ランタイムのエラー発生後に継続できない場合(ファイルシステムやリソース不足など警告やエラーが発生後など)

ランタイム側の処理で停止する(再生されない)例

  • ボイスプールが1つしか無いものの再生時(ボイスプール数によるリミット、リモコンや特殊デバイスなど)
  • フェーダーのアタッチされたプレーヤーで再生(前回再生音が停止)
  • 再生中のACBを解放した
  • 存在しないキューを再生した(キューが見つからない)
  • オーディオデバイスが切り替わった(ヘッドフォンをさした、HDMIポートのオーディオ出力に切り替わった)
  • BGMカテゴリの再生で、カテゴリ設定が鳴らなくなる(BGMカテゴリはランタイムでの設定)
  • ASRラックの指定(配信不可能サウンドなど)
  • DSPバス設定切り替え、スナップショット切り替え(停止はしないがエフェクトの種類によってはノイズになる可能性あり、ディレイ系など)
  • ボイスプールが用意されていない(再生時に警告あり)

停止しない機能

他のシステムなどでは1音のみ再生だったりするものもあるので補足

  • 初期状態でのプレーヤーによるキューの再生(ボイスプールがある限り、リミット処理がかからない限り多重再生)

フェーダーをつけたりしない限り、一つのプレーヤーで複数の音を再生可能です。

停止要因の確認について

プロファイラーを使うことで、直前に再生されたキューなどから、ある程度の要因がつかめます。

 

エラーもなく音が鳴らない5つの要因

HCAの再生時間を知りたい

エンコード済みのHCAを単体再生させるなどの用途にて、HCAの再生時刻を知りたい時があります。

CriAtomEncoder.exeに読み込むことで内容を確認できます。

音声ファイルリストを出力すると、CSV形式(テキスト)で情報を取得できます。

距離減衰の最大、最小の最適な値は?

3Dポジショニングで再生する

ボイスのパンタイプが「3Dポジションニング」または「オート」にして、キューの距離減衰設定を設定することで、リスナー位置と向き(通常はカメラ位置にプログラムでセットする)から自動で、減衰と音源方向が設定されます。

なお、
プログラムで3Dソースをプレーヤーにアタッチして、毎フレーム更新するといった操作が必要です。

ゲームエンジンの場合は、3Dのフラグをインスペクタで指定すると内部で自動で座標更新などが行われます。

音量の場合

  • 距離減衰の最小= 設定の音量でなる距離
  • 距離減衰の最大= 音量が0になる距離

3Dポジションのソースの位置から、どれくらい遠いかでボリュームの減衰が決まります。

距離減衰ASIACの場合

  • 距離減衰の最小= AISACコントロール値0.000の設定
  • 距離減衰の最大= AISACコントロール値1.000の設定

3Dポジションのソースの位置から、どれくらい遠いかでAISACの効果が決まります。

距離によって好きなカーブがかけるため、近くの音が小さいとかもできます。
AISACなので、音量だけでなく、遠くだけBusセンドレベルをあげて、リバーブをかけるなどもできます。

AISAC範囲 0.00~1.00, 減衰距離最小(開始距離)~ 減衰距離最大(無音になる距離)

距離減衰の最大、最小の最適な値は?

一概に決められない。ゲームによってさまざまです。

ゲームのスケール感に合わせるのが都合が良いです。

例えば、ゲーム内でみわたした時、見えているのに音がしないと不自然な場合があります。

適当に最小距離を1(メートル)、最大距離を30(メートル)といった設定から初めて、

ゲームで動かしつつ調整する。

実際(リアル)の距離減衰は?

何もない空間で、距離が離れると音が小さくなります。

これは、物理的なカーブが想定できます。

実際には、床や壁など反射するものが多くあります。聞いている人の体や耳の形でも反射します。耳をむけた方向によって音も変化します。

ものが多くある部屋などでは減衰を感じとれない場合があります。

また、よくある比較ですが「蚊の飛ぶ音」と「ジェット機のエンジンの音」など、距離が離れていても聞こえ続ける音か、そうでないかは、元の音の音量に依存するのですが、デジタルの表現ではダイナミックレンジに限界があります。

現状では、ゲームの状況に応じて手心でパラメータを調整するのが良いでしょう。

距離減衰開始距離

通常は

  • 音源のパンの明瞭度(インテリアパン)が1.0=距離減衰開始距離

になるのですが、

  • インテリア距離よりも近くから減衰を開始させたり
  • インテリア距離よりも遠くから減衰を開始させたり

といった調整が可能です。

(なお、現状ではプログラムだけでの設定になります。)

向きに応じて音を変化させる

距離と同様に向きによっても音が変化します。

前からなる音、真横、真上、真後ろなど変化。

これは

  • リスナー基準角度=リスナーからみて音源がどの角度にあるかによる音の変化
  • 音源基準角度=リスナーに対して音源が向いている方向による音の変化

を組み合わせて設定します。

リスナー基準角度AISAC

これは、例えば、後ろ側に音がまわったら音量を下げたり、フィルターでこもらせたり、真横なら明瞭度をあげる、

カメラの画角よりはなれたらこもらせるなど演出的なものなど、さまざまな設定が可能です。

AISAC範囲 0.00~1.00,角度-180~180

音源基準角度AISAC

音源(ソース)が向いている方向が大きく、後ろ向きなら小さくといった設定が可能です。

AISAC範囲 0.00~1.00, 角度0~180

キャラごとにアクションを発行したい

アクション機能

CRI Atom Craftでアクショントラックを作り、トラックへキューをドロップすることで、キューに対する操作(アクション)をタイムラインで実行する機能があります。

再生中のキューすべてにアクションがかかる

アクションは、再生中のキューに対して操作を行います。

基本的には、再生中のすべてのキューに対して同じ効果が発動します。

キャラクターごとにかけたい場合

アクショントラックで「スコープ」を「全体」にするか「サウンドオブジェクト」にするかを選べます。

サウンドオブジェクトは、プログラム上で「プレーヤー」を紐付けることができます。

プレーヤー

プレーヤーはキューをセットして再生するもので、キャラクターごとに作ると良い。

(他にBGM用プレーヤーとかあってもよい)

UE4でいうところの「アクター」やUnityでいうところの「GameObject」的なもの。

サウンドオブジェクト

サウンドオブジェクトで関連付けられたプレーヤー同士でアクションを反映させることができます。

サウンドオブジェクトとキャラクター用プレーヤーを1対1で用意します。

これで、キャラクターで再生するアクションのスコープが「サウンドオブジェクト」となっていれば
他のキャラクターに影響せずにすることができます。

他のキャラクターに影響するとまずい例

例えば武器のギミックで、チェーンソーみたいな音をアクション経由で操作する場合、

  • チェーンソー再生
  • チェーンソー停止&停止サウンド再生

といったアクションを持つキューがあった場合、

2人以上のチェーンソーを持った人が現れた場合などに、取り合いになる。

まとめ

サウンドオブジェクトとプレーヤーをキャラクターごとにもたせて、キューを再生すると
そのサウンドオブジェクトのスコープでキューのアクションが有効になります。

エラー出力がたくさんでてきたら、先頭のエラーをまず確認しよう

エラーやワーニングが何行も連続してログにでている

エラーメッセージがいくつも連続して出力される場合があります。

このような時は、最初におこったエラーから芋づる式にエラーが発生している可能性があります。

たとえば、

  • 最初のエラーでファイルアクセスに失敗したりして、その後のセットアップでのエラーが続出したり、
  • ファイルのフォーマットが異なるものを読み込み、失敗したりして、

といった感じで、実は後段のエラーを解決しても意味がない場合があります。

まず、時系列で最初に起こったエラーの解決をすることが重要です。

波形をドロップする先で配置場所がいろいろ変わる

CRI Atom Craftのドラッグ&ドロップ操作

マテリアルとは?

マテリアルツリーに登録されている波形のことをマテリアルと呼んでいます。

このマテリアルのドロップ場所によっていろいろ動作が違います。

マテリアルをキューシートへドロップするとキューが作成できます。

ツリーのキューシートへドロップするとマテリアル名でキューが生成される。

マテリアルをトラックへドロップすると先頭に配置されます。

トラックの先頭にウェーブフォームリージョンが配置される。

波形の出だしに登録することはよくあるので、この操作はおすすめ。

マテリアルをタイムラインへドロップすると、ドロップしたタイミングの位置へ配置されます。

タイムラインの任意の時刻へ配置される。

タイムラインの拡大率や、タイム設定などに依存してスナップします。
Ctr+ドラッグで、スナップなしで配置もできます。

キューへドロップすると、トラックとウェーブフォームリージョンが追加されます。

トラックがなかったら追加します。

ブロックのあるキューへドロップすると波形の長さでブロックが作成されます。

ブロックが1つでもあるキューの場合、動作が少し違います。

DSPバス(ミキサー)は一つを切り替え

DSPバス設定は何に使うのか?

DSPバス設定は、いわゆるミキサーになります。

DSP=DigitalSignalProcess

デジタル信号処理を行うバス(ミックス先)になります。

このバスが複数あって、連結されたものをミキサーと呼びます。

デジタル信号処理=エフェクト

デジタル信号を変化させることで様々な音響エフェクトをかけることができます。

リバーブなどで、空間の広がり感を加えたり、コンプレッサーで音を潰して迫力を増したり、様々なことが可能です。

DSPバス設定(ミキサー)は一つ

DSPバス設定(ミキサー)はADX2実行時通常は一つのみ存在し、切り替えが可能です。

DSPバス設定を切り替えると、音のルーティングががらっと変わります。

キューからはゆるくつながっている

キューはどのバスへどれだけセンドするか?といった設定だけ持っています。

どのDSPバス設定で鳴らすかという情報は持っていません。

例えるなら、キューとミキサーは、ギターとギターアンプのようなもので、ギターアンプの設定を変化させるのがエフェクトの変化のような形です。

ギター側を変化させるのはキューの設定やフィルターをいじっている状態。

スナップショット

ミキサーの設定は各バスの信号の流れや、それぞれのバスの音量、エフェクトのパラメータなどさまざまな設定を持っています。

これらのすべての設定値をスナップショットという形で記録して呼び出すことがよくあります。

スナップショットはなめらかに変化する

スナップショットによる切り替えは、ルーティングは変化しない変わりに、エフェクトのパラメータやボリューム変化を時間をかけてなめらかに変化させることができます。これによる不適切なノイズなどを軽減させることができます。

DSPバス設定を切り替える行為はノイズになりやすい

スナップショットではなくDSPバス設定を変更すると、音のルーティングが変わります。ただし、音が鳴っている状態で、

ギターアンプを違うものに瞬時に置き換えたら、大抵は不適切なノイズが発生します。

なるべく発音中ではないタイミングで切り替えるか、スナップショットでパラメータだけでなんとかするようにします。

実はDSPバス設定を複数使うこともできる

特殊な用途ですが、ASRラックという機能を使うことで複数もたせることもできます。

ASRラック=AtomSoundRendererラック

ラックとは、ミキサーを設置しておく入れ物のようなものです。

ASRはAtom AtomはADX2のモジュール名です。

どんな時に使いますか?

例えば、ゲーム配信用バス、3Dオーディオデバイスバス、パッドスピーカー、複数サウンドボードで個別になど
物理的に別な経路で信号を処理する場合に、別ラックがあります。

ラックの指定方法は?

パラメータパレットでラックを指定することができます。

例えば、パットスピーカーなら、別のDSPバス設定を通してエフェクトをかけて鳴らすといったことができます。

Androidの低遅延再生も「サウンドレンダラー」指定

Androidの低遅延再生は「サウンドレンダラー」でNaitive指定ですが、

ある意味DSPバスを持っていないラックのようなものです。
低遅延優先のため、エフェクトすらかからない、直接ハードのサウンドを叩く。

例えるなら、ラックにぽつんと音源モジュールが落ちていて、そこへ繋いだ感じになります。

 

パラメータパレットって何?

特殊パラメータの拡張設定用途で使うものです。

上記のような、特殊なデバイス指定などに使います。

他にもプレーヤーフェーダーをつけたりといったことができます。

プレーヤーフェーダーを設定するとどうなる?

プレーヤーフェーダーはビート同期で切り替える時にフェーダー処理をかけるといった用途に使います。

もし、プログラムでフェーダーをつけてなかった場合に、データドリブンでフェーダーをつけてくれます。

プレーヤーフェーダーって何?

プレーヤーフェーダーは、本来プログラムで設定する項目で、プレーヤーに対してフェーダーをアタッチすることで、キューを再生するとクロスフェード効果を発生させるものです。クロスフェードのパラメータをプログラムから細かく設定できます。

古いSDKにピンポイントで対応できます!

SDKのバージョン?

SDK = SoftwareDevelopmentKitの略

ゲームエンジン、プラットフォームの組み合わせは多数あります。

これらは、何らかのバージョンがあり、これらが正しくないと動作しません。

また、新しいものは機能が増える傾向があり、古いものにはバグが潜んでいる場合があります。

古いSDKでバージョンを固定する場合がある

よくある話で、開発開始時にこれらのバージョンを固定して開発をすることがよくあります。

これは、新しいものが必ずしもプロジェクトが求めているものではないことがあったり、
すでに運用中のものは無用にバージョンをあげることを避ける傾向があります。

SDKの新しいものを使うのが良いのですが・・・

基本的には新しいものを使うのが良いのですが、そうはいかない場合もあります。

そんな時は気軽にお問い合わせください。

たとえば、古いSDKであったり、古いプラットフォームバージョンであったとしても、対応可能な場合や、対処方や回避策などがある場合があります。

初めてミドルウェアや、ゲームエンジンを使うなど

初めて使うゲームエンジンであったり、新しいプラットフォーム、前例のないシステムでサウンドの扱いをどうすべきかなど、
この端末ではどうなのか?このミドルウェアと組み合わせるとどうなるかなどといった
何か困ったことや調査が必要あればCRIが可能限りサポートします。

何か、使い方がよくわからない、独自のシステムで問い合わせるべきか悩むようであれば、とりあえずご一報ください。

みなさまと一緒に、開発の一員と思ってミドルウェアを活用していただければ幸いです。

問い合わせ先

https://www.criware.jp/support/index.htm

ボリューム0のボイス消費を減らしつつ復帰させる

AISACでボリュームを0にしても発音している?

AISACなどでボリュームを0にした時など、音が聞こえなくなる状態になった場合でも、内部的には無音で再生が行われ続けています。

デコード処理

音声圧縮する=エンコード

音声を展開する=デコード

エンコードはツールでデータを作る時に行っていて、デコードはゲーム上で再生時にリアルタイムに行われます。

ボリューム0でもデコードやボイスの監視処理はし続ける

圧縮波形のデコード処理やボイスの消費は行われ続ける意味になります。

音量が0で聞こえない音が鳴っている

デコードした結果に対してボリューム0が掛け合わされて音が聞こえていないという状態です。(いつでもすぐにボリュームが上がったら鳴らせる準備をし続けています。毎オーディオ処理)

音は聞こえていないのに、デコードをし続けているのはCPUの負荷がかかって勿体無いと感じる時があるかと思います。

ボイス処理も行われている

聞こえていない音であっても、ボイスリソースを確保しているので、ボイス数やボイスリミット(プライオリティの低い音は消える)などは維持し続けています。

仮想ボイスで回避する

そんな時は、ボイスビヘイビアから「仮想ボイス」を選択することで、ボイスの処理負荷を軽減することができます。

とくにボリューム0になるような演出が多い時に設定しておくと良いでしょう。

20150311VirtualVoice

通常モードは、何もしない

何もしないということは、ボリューム0でも音がなり続けます。

ボイス数も使い続けます。

ボイス停止

ボリュームが0になったらボイス停止をしてボイスリソースを解放してくれます。

  • オートメーションのボリュームで音が小さくなって消えたり。
  • 距離減衰で音が小さくなって、ある距離で止める。

停止してしまうので、復帰はできません。

遠ざかって、音が聞こえなくなって消えてしまって構わないような音に使います。

仮想ボイス

ボリュームが0になると音が止まり、その後にボリュームが上がると時間経過したところから再生復帰します。

仮想ボイス時はボイスリソースを解放してくれます。

厳密に同期ではなくなる

注意点として、復帰する時に再度再生する形(眠りから目覚める形)となるのでタイミングが若干ずれてしまう場合があります。

これは、シークして再生をするのですが、再生には若干のずれが発生する場合があります。

  • 厳密に音楽などが同期がとれていないと不自然なもの
  • 口パクなどずれていると微妙なもの

には使えません。厳密同期したい場合は「通常モード」で、音量0で鳴らし続けて、音量をあげる方が良いです。

仮想ボイスリトリガー

ボリュームが0になったらボイス停止をして、その後にボリュームがあがると、頭から再生しなおします。

  • 距離減衰などで0で止まるけど、もういちど近くにきたら鳴ってほしいけど、また頭から再生しても問題ない音

などにつかいます。

オーサリングツールを使わないコンバート(コマンドラインからビルドする)

CIツールやJenkins、バッチ処理など、コマンドラインから起動してビルドができます。

Windows Ver.2の場合

  • CriAtomCraft.exeに引数を指定する。 (ログの文字コードがUTF-8)
  • CriAtomCraftC.exeに引数を指定する。 (ログの文字コードがShift-Jis)

マニュアル(要アカウント)

Mac Ver.3の場合

  • CriAtomCraft.app/Contents/MacOS/CriAtomCraftに引数を指定する。

コンバートのための設定

あらかじめプロジェクトを用意する必要があります。

  • 全体設定(ACFに書かれる設定、DSPバスルーティング、カテゴリやAISACコントロールなど)
  • 波形ファイル(ACBの参照する波形ファイル、マテリアルのフォルダ下に用意する)
  • ワークユニット(最低でも一つ必要。通常は生成されている。)

すでにGUI(通常起動版)上で生成されていれば、CUI(コンソール、コマンドライン)からでもビルドが可能です。

 

以下の情報はテキストから生成可能です

  • キューシートCSV(ワークユニットへ追加可能。カテゴリ設定やキューの設定など。省略は不可。)
  • マテリアル情報CSV(マテリアル情報を追加可能。マテリアル情報は圧縮設定など。省略は不可。)

これらの設定情報と、マテリアルの参照する波形を用意することで、ある程度自動的にデータを追加することが可能です。

あらかじめGUI上でキューシートやマテリアルを作成していない場合でも、上の情報と波形ファイルを用意できれば、
GUIを起動せずにコンバートが可能になります。

 

ADX,HCAを直接再生もできます

キューシートやキューなどのパッケージ化をせずに、昔ながらの直接データ再生も可能です。
(一長一短ですが)

すべての管理をプログラムで行った場合の方がスマートな場合など、直接再生するのも手です。

adxやhcaのまま再生する

Androidでターゲットプレビューする

Android版のSDKでは、CRI Atom Craftでの実機プレビューのためのプレビューアプリを、以下の場所にapkファイルとして収録しています。

  • \cri\tools\criatomex\TargetViewer\android\AtomPreviewer_ANDROID.apk <- このフォルダはターゲット別のSDKに含まれています。

プレビュー手順

  1. AtomPreviewer_ANDROID.apk を対象の端末にインストールして「AtomPreviewer」を実行してください。
  2. CRI Atom Craftを開きます。
  3. プロジェクトを読み込むか、新規作成します。
  4. 「ツール」メニューの「プロパティ」から、Androidのプレビュー設定に適切なIPアドレスを設定します。
  5. GUI画面右上の「プレビューターゲット」を「Android」に変更します。
  6. プレビュー再生を実行すると、Android開発機上で音が再生されます。

iOSでターゲットプレビューする

iOS版のSDKでは、CRI Atom Craftでの実機プレビューのためのプレビューアプリを、以下のディレクトリにXcodeプロジェクト(AtomPreviewer.xcodeproj )として収録しています。
(プレビュワーアプリは以下のディレクトリのみでビルドできるようになっています。)

  • cri/tools/criatomex/TargetViewer/ios <- このフォルダはターゲット別のSDKに含まれています。

プレビュー手順

  1. プレビューアプリのXcodeプロジェクト(AtomPreviewer.xcodeproj )を開いて、通常のアプリ開発と同様の方法でプレビューアプリ起動してください。
  2. CRI Atom Craftを開きます。
  3. プロジェクトを読み込むか、新規作成します。
  4. 「ツール」メニューの「プロパティ」から、iPhoneのプレビュー設定に適切なIPアドレスを設定します。
    (プレビュワーアプリに表示されているIPアドレスを参考にしてください。)
  5. GUI画面右上の「プレビューターゲット」を「iPhone」に変更します。
  6. プレビュー再生を実行すると、iOS開発機上で音が再生されます。

プレービュー時のIPアドレス設定について

プレビューは同じネットワークであればWindowsでもつながります。

Xcodeでのビルドについて

XcodeでiOSビルドし端末にインストールするところはいろいろ大変なので、プログラマさんにお願いすると良いです。