版本
menu_open

查询 Wwise 工程

Wwise Authoring API 提供了综合查询系统,可用于获取 Wwise 工程最关键方面的信息。更具体地说,它用于获取工程中任何对象的信息。

该查询系统内置于 ak.wwise.core.object.get 功能里。请参阅它的参考文档了解更多详情。

查询的结构包括两个部分:

  • from:指定查询的起点。这是获取数据的来源。
  • transform:指定应用于对象的一系列转换。可以按次序添加转换。

此外,查询可以用选项指定:

  • return:指定从对象返回的内容。如果没有指定,则默认值为 ['id', 'name']。
  • platform:指定使用查询的平台。如果没有指定,则默认为当前平台

from

from 语句为查询开始提供了几个起点:

  • id:指定: 指定一列对象 ID(GUID)。当您已经有对象 ID 时,可用于查找该对象。
  • search:指定在 Wwise 对象和备注中要搜索的文本。这与 Wwise 中的搜索功能所用的搜索引擎是一样的。该功能在运行 使用命令行 “WwiseCLI”时不可用。
  • path:指定要查找的一系列路径。路径必须是绝对路径,并且必须以类别名称开头,就相当于物理文件夹名称。例如:\Actor-Mixer Hierarchy\Default Work Unit\MySound。
  • ofType:指定一系列 Wwise 对象类型。用于获取某个对象类型的所有对象。例:获取所有 Game Parameters。请参阅 Wwise Objects Reference 了解可用类型。

transform

transform 语句提供了几个转换功能,可以用于转换已选择的对象。第一个转换是应用于 from 语句所选择的对象的。另一个 transformation 应用于之前转换的结果。

可以按次序添加多个转换。

  • select parent:为每个对象选择父级对象。
  • select children:为每个对象选择子级对象列表。
  • select descendants:为每个对象递归选择所有子级对象。
  • select ancestors:为每个对象递归选择父级对象。
  • where:用于过滤之前迭代器的结果。可能的标准是:
    • name:contains:对对象名称中文本的搜索,不区分大小写
    • name:matches:对对象名称的正则表达式搜索,不区分大小写

return(在选项中)

return 语句会在所有转换结尾执行一次。如果没有指定转换,会直接从from 语句执行。 return 语句会指定返回 Wwise 对象的何种要素。可以返回任意数量的要素。

当带有‘@’前缀时,返回表达式可包含属性和引用。比如,它可能包含‘@Volume’或‘@OutputBus’。当有‘@@’前缀时,返回会使用"Override"("不沿用"属性)的来源,它由层级中‘Override Parent’(不沿用父级)的具体数值决定。

如果返回表达式中的一个条目不兼容或不在返回对象中,则结果将不含该条目。

示例

请参照 to 工程代码 了解初始化。

返回一列对象的 ID、名称和音量:

var query = {
    from: { id: [
        '{A076AA65-B71A-45BB-8841-5A20C52CE727}',
        '{2028C899-8300-4667-ADD0-ED10467BD91E}',
        '{24979032-B170-43E3-A2E4-469E0193E2C3}'
    ] }
};
var options = {
    return: ['id', 'name', '@Volume']
};

session.call('ak.wwise.core.object.get', [], query, options).then(
    function (res) {
        // 打印名称和音量
        var objects = res.kwargs.return;
        for(let i = 0; i < objects.length;++i ){
            console.log(`${objects[i].name}: ${objects[i]['@Volume']}`);
        }
    },
    function (error) {
        console.log(`error: ${error}`);
    }        
);

返回 Actor-Mixer Hierarchy 中以‘My’开头所有对象的 ID 和名称,并使用以下的正则表达式返回:

var query = {
    from:{path:['\\Actor-Mixer Hierarchy']},
    transform:[
        {select:['descendants']},
        {where:['name:matches','^My']}
    ]
};

var options = {
    return: ['id', 'name']
};

session.call('ak.wwise.core.object.get', [], query, options).then(
    function (res) {
        // 打印名称
        var objects = res.kwargs.return;
        for(let i = 0; i < objects.length;++i ){
            console.log(`${objects[i].name}`);
        }
    },
    function (error) {
        console.log(`error: ${error}`);
    }        
);

此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅