バージョン

menu_open
Wwise SDK 2022.1.18
Wwise Authoring Query Language (WAQL) リファレンス

概要

Wwise Authoring Query Language (WAQL) は、Wwiseプロジェクトとそのオブジェクトのクエリを行うために使います。WAQLの様々な概念については、 Wwise Authoring Query Language (WAQL) を使用する を参照してください。 クエリのフォームは、以下のどれかです。

Synopsis 概要

$ SOURCE
$ SOURCE TRANSFORM
$ SOURCE TRANSFORM, TRANSFORM, ...
$ TRANSFORM

SOURCE はオブジェクトジェネレータのことで、オブジェクトのシーケンスをアウトプットします。どのようなソースがあるのかについては、下表を参照してください。

TRANSFORM はシーケンストランスフォームを表します。トランスフォームは、インプットシーケンスを受け取り、別のシーケンスをアウトプットします。

: ソースを指定しないと、プロジェクトで定義された全オブジェクトを、暗黙にソースとみなします。

リファレンス

SOURCE Query Source IntegrationDemoプロジェクトで実行するWAQLクエリ

from object OBJECT_SPECIFIER
from object OBJECT_SPECIFIER, OBJECT_SPECIFIER, ...
OBJECT_SPECIFIER
OBJECT_SPECIFIER, OBJECT_SPECIFIER

指定されたオブジェクトから、オブジェクトのシーケンスを生成します。

OBJECT_SPECIFIER は以下のフォームのどれかを指します:

  • Path: バックスラッシュで始まり、最上位の物理フォルダを含むオブジェクトの絶対パスを、ダブルクォーテーションで囲む。
  • Guid: 波括弧で囲まれた128-bitのGUIDを、ダブルクォーテーションで囲む。
  • Qualified unique name: オブジェクトタイプのプレフィックスで始まるオブジェクト名を、ダブルクォーテーションで囲む。プロジェクト全体にわたり固有の名前を通すオブジェクトタイプに限定: Event、Bus、Effect、GameParameterなど。
  • Qualified unique ID: オブジェクトタイプのプレフィックスで始まるオブジェクトID(32-bitのショートID)を、ダブルクォーテーションで囲む。プロジェクト全体にわたり固有の名前を通すオブジェクトタイプに限定: Event、Bus、Effect、GameParameterなど。

$ from object "\Actor-Mixer Hierarchy\Default Work Unit\Hello"
$ from object "\Master-Mixer Hierarchy\Default Work Unit\Master Audio Bus"
$ from object "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"
$ from object "Event:Play_Hello"
$ from object "Event:2952797154"
$ from object "Event:Play_Hello", "Bus:Master Audio Bus"
$ "Event:Play_Hello", "Bus:Master Audio Bus"
$ "\Actor-Mixer Hierarchy"

from type OBJECT_TYPE
from type OBJECT_TYPE, OBJECT_TYPE, ...

指定されたタイプから、オブジェクトのシーケンスを生成します。1つまたは複数のオブジェクトタイプを指定できます。

OBJECT_TYPE はWwiseオブジェクトタイプを表します。全てのオブジェクトタイプのリストを見るには、 Wwiseオブジェクトリファレンス を参照してください。タイプは、大文字小文字の区別がありません。


$ from type Event
$ from type sound
$ from type Sound
$ from type randomSequenceContainer, switchContainer, blendContainer
$ from type bus

from query QUERY_SPECIFIER

Query Editorで定義したWwise Queryを実行した結果として、オブジェクトのシーケンスを生成します。

QUERY_SPECIFIER は以下のフォームのどれかを指します。

  • Path: バックスラッシュで始まり、最上位の物理フォルダを含むオブジェクトの絶対パスを、ダブルクォーテーションで囲む。
  • Guid: 波括弧で囲まれた128-bitのGUIDを、ダブルクォーテーションで囲む。

: このジェネレータには、生成されるシーケンスサイズに等しいメモリアロケーションが必要です。

$ from query "\Queries\Factory Queries\Audio Source\Audio Source - Format = Vorbis"
$ from query "{4D1B2AA5-19D8-44D3-AAE5-94024469CE7C}"

from search TEXT

プロジェクト全体のテキストサーチの結果として、オブジェクトのシーケンスを生成します。

TEXT はダブルクォーテーションで囲まれたテキストの文字列です。サーチのテキストで指定した全ての単語を、プロジェクトのオブジェクト内の単語と比較します。

: Wwiseツールバーのサーチと同じ結果になります。

$ from search "gun"
$ from search "foot walk"

from project プロジェクトの全オブジェクトを含む、オブジェクトのシーケンスを生成します。 $ from project

TRANSFORM チェイン(chain)可能なトランスフォーム
where BOOLEAN_EXPRESSION

指定した式と一致しないオブジェクトを拒否することで、インプットシーケンスのオブジェクトにフィルタを適用します

BOOLEAN_EXPRESSION はtrueまたはfalseを返す式を表します。インプットシーケンスの各オブジェクトに対してこの式を実行し、falseを返した式のあるオブジェクトを拒否します。

詳細は、expressionsのセクションを参照してください。

$ from type Sound where @Volume < 0
$ from type Sound where -1 = @Volume
$ from type Sound where @OutputBus="Bus:Master Audio Bus"
$ from type Sound where @UserAuxSend0="AuxBus:Hangar_Env"
$ from type Event select children where @Target.path : "hello"
$ from type RandomSequenceContainer where childrenCount > 2 and childrenCount <= 4
$ from type Sound where notes : "All"
$ from type Sound where notes : "*audiokinetic*"
$ from type Sound where @UserAuxSend0 != null

skip COUNT

インプットシーケンスのオブジェクトを指定した個数だけ飛ばしてから、残りのオブジェクトを返します。

COUNT は、スキップするエレメント数を表します。

$ from type Sound skip 10
take COUNT

インプットシーケンスの頭から、指定した個数の連続するオブジェクトを返します。

COUNT は、取るエレメントの数を表します。

$ from type Sound take 10
select OBJECT_EXPRESSION

インプットシーケンスの各オブジェクトを、新しいフォームで表現します。

OBJECT_EXPRESSION は多くのオブジェクトにゼロを返す式です。インプットシーケンスの各オブジェクトに対してこの式を実行し、式の結果を、新しいシーケンスで表現します。

詳細は、expressionsのセクションを参照してください。

$ from object "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}" select parent
$ from object "Bus:Master Audio Bus" select children
$ from object "\Actor-Mixer Hierarchy\Default Work Unit" select descendants, this where @Volume < 0
$ from object "\Actor-Mixer Hierarchy\Default Work Unit\Hello" select @OutputBus
$ from object "{CBCD492C-982D-4EE4-AE75-0019CA6577EF}" select parent.@Attenuation

orderby VALUE_EXPRESSION

orderby VALUE_EXPRESSION reverse

インプットシーケンスのオブジェクト を、昇順でソートして返します。降順でソートするには、式のあとに reverse を追加します。

VALUE_EXPRESSION は、ソートアルゴリズムでオブジェクト同士を比較するために使う式を表します。このexpressionは、文字列、数値、ブール値など、比較可能な値を返す必要があります。

: このソートが実施されるには、orderbyに、インプットシーケンスのサイズに等しいメモリアロケーションが必要です。

$ from type Sound orderby name
$ from type Sound orderby name reverse
$ from type Bus orderby @BusVolume
$ from type Action orderby @Target.name

distinct

インプットシーケンス の、区別可能なオブジェクトだけを返します。重複するオブジェクト項目は、1つの項目に減らされ、その結果、シーケンスの各オブジェクトがそれぞれ固有のものになります。

注: distinctによってシーケンス内の順番が変わります。このため、distinct文のあとにorderby文を置くことが望まれます。

: この操作が実施されるには、distinctに、インプットシーケンスのサイズに等しいメモリアロケーションが必要です。

$ from object "\Actor-Mixer Hierarchy" select descendants select @OutputBus distinct

Object Expressions 多くのオブジェクトに、ゼロを返す式

OBJECT_EXPRESSION

OBJECT_EXPRESSION.OBJECT_EXPRESSION...

Wwiseオブジェクトを返すために、多くのオブジェクト式に、ゼロをチェイン(chain)します。式と式を、dotで分けます。 $ from object "Event:Play_Hello" select parent.parent
REFERENCE_NAME
@REFERENCE_NAME
@@REFERENCE_NAME

現在のオブジェクトが、あるリファレンス名のときに参照するオブジェクトを、返します。

@ を使うと、オブジェクトで直接定義したリファレンスを使います。

@ がないと、オーバーライド設定を使いリファレンス値を探します。これが、再生時に実際に使われる値です。同名のアクセサがあれば、それが優先されます。そのような稀な場合には、リファレンス名の前に @@ を使う必要があります。

REFERENCE_NAME は、現在のオブジェクトが参照するリファレンスの名前です。全てのオブジェクトタイプと、そのリファレンスのリストを見るには、 Wwiseオブジェクトリファレンス を参照してください。名前は、大文字小文字の区別がありません。

$ from type Sound select OutputBus
$ from type Sound select effect0, effect1, effect2, effect3
$ from type Sound select @@Effect0, @@Effect1, @@Effect2, @@Effect3
$ from type Sound where outputBus="Bus:Master Audio Bus"

children オブジェクトの直下の子を返します。 $ from object "\Actor-Mixer Hierarchy\Default Work Unit" select children

descendants

オブジェクトの全ての子孫を、1つのシーケンスで返します。子孫に、全ての子が再帰的に含まれます。

: 現在のオブジェクトは含まれません。現在のオブジェクトを含めるには、次を使います: select descendants, this

$ from object "\Actor-Mixer Hierarchy\Default Work Unit" select descendants
$ from object "\Actor-Mixer Hierarchy\Default Work Unit" select descendants, this

this 現在のオブジェクトを返します。 $ from object "\Master-Mixer Hierarchy\Default Work Unit\Master Audio Bus" select this, descendants
parent オブジェクトの直接の親を返します。オブジェクトに親がなければ、オブジェクトを返しません。

$ from type Sound select parent
$ from type Sound where parent.name : "*engine"

ancestors

オブジェクトの全ての祖先を、1つのシーケンスで返します。祖先に、全ての親が再帰的に含まれます。

: 現在のオブジェクトは含まれません。現在のオブジェクトを含めるには、次を使います: select ancestors, this

$ from object "Event:Play_Hello" select ancestors
$ from object "Event:Play_Hello" select ancestors, this
referencesTo 現在のオブジェクトへのリファレンスのある、全てのオブジェクトを返します。

$ from type Effect select referencesTo
$ "Event:Play_Hello" select referencesTo

owner

オブジェクトのオーナーを返します。オーナーは、ほかのオブジェクト内で定義された"Custom"オブジェクトのためだけに設定されます。

Sharesetオブジェクトには、オーナーがありません。親( parent )があり、それらを参照するオブジェクトがあります( referencesTo )。

例えば"Custom"エフェクトのオーナーは、このエフェクトをインサートとして含むオブジェクトです。

$ from type Effect select owner
$ from type Effect where owner.name :"*env"
workunit 現在のオブジェクトで継続するために使われている、Work Unitオブジェクトを返します。 $ from type Effect select workunit

musicTransitionRoot

現在のオブジェクトに関連する、Music Transitionルートオブジェクトを返します。

: これが機能するオブジェクトタイプは、MusicSegment、MusicTrack、MusicPlaylistContainer、MusicSwitchContainerだけです。

$ from project select musicTransitionRoot

musicPlaylistRoot

現在のオブジェクトに関連する、Music Playlistルートオブジェクトを返します。

: これが機能するオブジェクトタイプは、MusicPlaylistContainerだけです。

$ from project select musicPlaylistRoot

maxDurationSource

現在のオブジェクトの全ての子孫の、最大再生時間(秒単位)のあるAudio Sourceオブジェクトを返します。

: これが機能するのは、Actor-Mixer Hierarchyオブジェクト、Interactive-Music Hierarchyオブジェクト、そしてEventだけです。

$ from object "\Actor-Mixer Hierarchy" select maxDurationSource

maxRadiusAttenuation

現在のオブジェクトの全ての子孫の中で、最大距離の半径を有する減衰オブジェクトを返します。

: これが機能するのは、Actor-Mixer Hierarchyオブジェクト、Interactive-Music Hierarchyオブジェクト、そしてEventだけです。

$ from type Sound select maxRadiusAttenuation

audioSourceLanguage

現在のAudio Sourceに使われているランゲージオブジェクトを返します。

: これが機能するのは、Audio Sourceオブジェクトだけです。

$ from type AudioFileSource select audioSourceLanguage

switchContainerChildContext

現在のSwitch Containerオブジェクトに関連する、Switch Containerコンテキストオブジェクトを返します。Switch Containerコンテキストオブジェクトには、Switch Containerの関連付けの設定が入っています。

: これが機能するオブジェクトタイプは、SwitchContainerだけです。

$ from project select switchContainerChildContext
Value Expressions 数字、文字列、またはブール値を返す式

OBJECT_EXPRESSION.VALUE_EXPRESSION

OBJECT_EXPRESSION.OBJECT_EXPRESSION. VALUE_EXPRESSION

チェイン(chain)したオブジェクトの値を返すために、多くのオブジェクト式にゼロをチェインし、そのあとにvalue expressionをつけます。式と式を、dotで分けます。 $ where OutputBus.id = "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"
PROPERTY_NAME
@PROPERTY_NAME
@@PROPERTY_NAME

特定オブジェクト用に、プロパティ値を返します。

@ がないと、オーバーライド設定を使いリファレンス値を探します。これが、再生時に使われる実際の値です(つまり、有効値)。同名のアクセサがあれば、それが優先されます。そのような稀な場合には、リファレンス名の前に @@ を使う必要があります。

@ を使うと、オブジェクトで直接定義したプロパティを、それがオーバーライドされていなくても、使います。

@@ は、 @ がないのと同じです。

PROPERTY_NAME は、現在のオブジェクトのプロパティ名を表します。全てのオブジェクトタイプと、そのリファレンスのリストを見るには、 Wwiseオブジェクトリファレンス を参照してください。名前は、大文字小文字の区別がありません。

$ from type Sound select OutputBus
$ from type Sound select @OutputBus
$ from type Sound select effect0, effect1, effect2, effect3
$ from type Sound select @@Effect0, @@Effect1, @@Effect2, @@Effect3
$ from type Sound where outputBus="Bus:Master Audio Bus"

id

フォーム: "{0CB93450-E995-40E5-98A5-239F15B1F1D4}" の、128-bitのGUID文字列を返します。

これは、プロジェクトのオブジェクトのための、固有の識別子です。

$ where id = "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"
shortId

オブジェクトの32-bitのショートIDの数値を返します。これは、サウンドエンジンで使われるIDです。

: ショートIDが固有である範囲は、オブジェクトタイプによって異なります。バス、イベント、エフェクト、ゲームシンクなど、特定のオブジェクトタイプのIDは、同じタイプの全てのオブジェクトに渡り固有です。それ以外のサウンドやコンテナなどのIDは、プロジェクト全体に渡り固有です。

$ where shortId = 1588715066
name オブジェクト名を文字列として返します。 $ from type Event where name : "*hello*"
$ where name = "Play_Hello"
notes オブジェクトのnotes(コメントとも呼ばれる)を、文字列として返します。

$ where notes : "audiokinetic"

type

オブジェクトのタイプを、文字列として返します。

全てのオブジェクトタイプのリストを見るには、 Wwiseオブジェクトリファレンス を参照してください。

$ where type = "Sound"
classId

オブジェクトのclassIDを返します。classIDは、オブジェクトのタイプと、エフェクト、ソース、またはコンバージョンプラグインのタイプを表す数値です。

全てのclassIDのリストを見るには、 Wwiseオブジェクトリファレンス を参照してください。

$ where classId = 8847363
category

オブジェクトのカテゴリを返します。

プロジェクトのルート(root)フォルダ下の最上位フォルダ名が、カテゴリの候補です。

$ where category = "Actor-Mixer Hierarchy"
$ where category = "Interactive Music Hierarchy"
$ where category = "Master-Mixer Hierarchy"
$ where category = "Events"
filePath Work Unitまたはプロジェクトに関連付いているファイルパスを返します。これは、wwuまたはwprojファイルの絶対パスです。 $ where type = "WorkUnit" and filePath : "*wwu"
path Wwiseプロジェクトの中のプロジェクトのパスを返します。このパスには、カテゴリ、つまり最上位フォルダ名が含まれます。 $ where path : "microphone"
activeSource サウンドオブジェクトに関連付けられたアクティブソースを返します。 $ from type Sound select activeSource
isPlayable オブジェクトを、トランスポートの中、またはイベントの中で再生できれば、trueを返します。それ以外の場合は、falseを返します。 $ where isPlayable
$ where isPlayable = false
$ where !isPlayable
childrenCount 現在のオブジェクトの子の数を返します。 $ where childrenCount > 10
$ where type = "RandomSequenceContainer" and childrenCount > 5
pluginName

プラグインのベンダーが提供するプラグイン名を返します。

プラグイン名は、Effectsプラグイン、Sourceプラグイン、Audio Device、Metadataオブジェクトに提供されます。

なお、プラグイン名は、オブジェクト名と異なります。

$ where pluginName = ""

convertedFilePath

Returns the absolute path of the converted file associated with the current object.

: これが機能するオブジェクトタイプは、SoundとAudioSourceだけです。

$ from type Sound where convertedFilePath : "hello"

originalFilePath

Returns the absolute path of the original file associated with the current object.

: これが機能するオブジェクトタイプは、SoundとAudioSourceだけです。

$ from type Sound where originalFilePath : "hello"

soundbankBnkFilePath

現在のオブジェクトに関連付いている、BNKファイルの絶対パスを返します。

: これが機能するオブジェクトタイプは、SoundBankだけです。

$ where soundbankBnkFilePath : "car"

mediaId

Unique value given to file. Used by the sound engine to identify the file.

Note: This only works with objects of type AudioSource, MidiFileSource and PluginMediaSource.

$ where mediaId > 0

workunitIsDefault

Work Unitオブジェクトが、自分のカテゴリのデフォルトワークユニットであれば、trueを返します。

: これが機能するオブジェクトタイプは、WorkUnitだけです。

$ where workunitIsDefault
workunitType

現在のWork Unitオブジェクトのタイプを返します。以下のような値となります:

  • "folder": "\Actor-Mixer Hierarchy"など、Physicalフォルダオブジェクト用。
  • "rootFile": 中にあるWork Unitオブジェクト用
  • "nestedFile"

: これが機能するオブジェクトタイプは、WorkUnitだけです。

$ where workunitType = "folder"
$ where workunitType = "rootFile" and !workunitIsDefault

workunitIsDirty

Work Unitに、保存されていない変更があれば、trueを返します。

: これが機能するオブジェクトタイプは、WorkUnitだけです。

$ where workunitIsDirty

isExplicitMute

オブジェクトが明示的にミュートされていれば、trueを返します。

$ where isExplicitMute

isExplicitSolo

オブジェクトが明示的にソロにされていれば、trueを返します。

$ where isExplicitSolo

isImplicitMute

オブジェクトが暗黙的にミュートされていれば、trueを返します。

$ where isImplicitMute

isImplicitSolo

オブジェクトが暗黙的にソロにされていれば、trueを返します。

$ where isImplicitSolo

isIncluded

Returns true if the object is included. If one or more of the object's ancestors is excluded, the object is excluded as well.

$ where isIncluded

maxDurationSource.id

長さが最も長いオーディオソースオブジェクトの、ID (GUID) を返します。

$ where maxDurationSource.id = "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"

maxDurationSource.trimmedDuration

最も長いトリム済みソースの長さを、秒単位で返します。

$ where maxDurationSource.trimmedDuration >= 2

duration.min

再生時間として可能な、最小の長さを返します。

: これは、Audio Sourceオブジェクトをソースとして直接含むことができるオブジェクト、または子孫を通して間接的に含むことができるオブジェクト全てに、適用されます。

$ where duration.min = 3

duration.max

再生時間として可能な、最大の長さを返します。

: これは、Audio Sourceオブジェクトをソースとして直接含むことができるオブジェクト、または子孫を通して間接的に含むことができるオブジェクト全てに、適用されます。

$ where duration.max = 5

duration.type

Durationのタイプ、つまり"infinite"、"mixed"、"oneShot"、または "unknown" を返します。

$ where duration.type = "oneShot"

audioSourceTrimValues.trimBegin

トリムされたオーディオソースの範囲の、始まりの時間を返します。

$ where audioSourceTrimValues.trimBegin = 2

audioSourceTrimValues.trimEnd

トリムされたオーディオソースの範囲の、終わりの時間を返します。

$ where audioSourceTrimValues.trimEnd = 5

maxRadiusAttenuation.id

半径が最大である減衰オブジェクトの、ID (GUID) を返します。

: これが機能するのは、Actor-Mixer Hierarchyオブジェクト、Interactive-Music Hierarchyオブジェクト、そしてEventだけです。

$ where maxRadiusAttenuation.id = "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"

maxRadiusAttenuation.radius

半径が最大である減衰オブジェクトの、半径を返します。

: これが機能するのは、Actor-Mixer Hierarchyオブジェクト、Interactive-Music Hierarchyオブジェクト、そしてEventだけです。

$ where maxRadiusAttenuation.radius > 100

条件演算子、論理演算子 2つの式を比較してブール値を返します

=

文字列、または数値、またはブール値の、2つの値を比較します。

$ where name = "Hello"
$ from type sound where volume = -1
$ from type sound where inclusion = true

!= 文字列、または数値、またはブール値の、2つの値を比較します。

$ where name != "Hello"
$ from type sound where volume != -1
$ from type sound where inclusion != true

<
<=
>
>=

2つの数値を比較します。

$ from type sound where volume < 0
$ from type sound where volume > -3 and volume < 0

:

2つの文字列値を比較し、指定されたテキストで始まり、単語が部分的に一致すれば、trueを返します。

単語の最後を一致させるために、ワイルドカードを使うこともできます。

$ where name : "Hello"
$ where name : "Hel"
$ where name : "*ello"

= /REGEX/

指定した正規表現が、現在の文字列と一致すれば、trueを返します。

ECMAScript正規表現を使います。

$ where name = /Hello/
$ where name = /llo$/
$ where name = /[a-z][0-9]/
! Negates an expression.

$ where !(name = "Hello")
$ from type sound where !(volume < -3)

および 2つの式を結合してその接続詞にします。

$ from type sound where name = "Hello" and volume = 0
$ from type sound where volume > -3 and volume < 0

または 2つの式を結合してその選言にします。

$ where name = "Hello" or name = "Hi"
$ from type sound where volume = -3 or volume = 0

() 式に対する論理演算の順序を指定します。

$ from type sound where (volume = -3 or volume = 0) and (name = "Hello" or name = "Hi")


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう