自定义属性用来在Wwise对象中存储额外信息。自定义属性可以用于项目管理,或存储游戏使用的元数据。想要获取游戏中的自定义属性数值,请查阅AK::SoundEngine::Query::GetCustomPropertyValue。
自定义属性可以在以下位置编辑:
直接从 Wwise Authoring 用户界面,通过菜单 Project > Project Settings > Custom Properties 来定义自定义属性也是可以的。但是,想要利用更多特性,也可以直接从位于工程文件夹(在这里 PROJECTNAME 和 WPROJ 文件的名称一样)里的 PROJECTNAME.wcustomproperties 文件来定义自定义属性。
|
Note: 每当 PROJECTNAME.wcustomproperties 文件被改动时,Wwise 工程需要重新载入,让属性更新。请注意,从命名自定义属性不会自动移动工程的内容。 |
XML 描述文件包含了添加到不同类型对象的自定义属性的信息:
以下是一个自定义属性 XML 描述文件的简单示例,该文件定义了声音对象的额外属性。
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (C) 2006 Audiokinetic Inc. --> <PluginModule> <WwiseObject Name="Sound" CompanyID="1" PluginID="1"> <Properties> <Property Name="Custom:Status" Type="int16" DisplayName="Status"> <DefaultValue>0</DefaultValue> <Restrictions> <ValueRestriction> <Enumeration Type="int16"> <Value DisplayName="To do">0</Value> <Value DisplayName="Done">1</Value> <Value DisplayName="Verified">2</Value> </Enumeration> </ValueRestriction> </Restrictions> </Property> <Property Name="Custom:IsReady" Type="bool" DisplayName="Is Ready"> <DefaultValue>false</DefaultValue> <AudioEnginePropertyID>2</AudioEnginePropertyID> </Property> <Property Name="Custom:Priority" Type="int32" DisplayName="Priority"> <DefaultValue>50</DefaultValue> <AudioEnginePropertyID>6</AudioEnginePropertyID> <Restrictions> <ValueRestriction> <Range Type="int32"> <Min>1</Min> <Max>100</Max> </Range> </ValueRestriction> </Restrictions> </Property> <Property Name="Custom:CoolDownDelay" Type="Real64" DisplayName="Cool Down Delay"> <UserInterface UIMax="10" Step="0.5" Fine="0.1" Decimals="3" /> <DefaultValue>0</DefaultValue> <AudioEnginePropertyID>7</AudioEnginePropertyID> <Restrictions> <ValueRestriction> <Range Type="Real64"> <Min>0</Min> <Max>600</Max> </Range> </ValueRestriction> </Restrictions> </Property> <Property Name="Custom:GameId" Type="string" DisplayName="Game Id"> <DefaultValue></DefaultValue> </Property> <Reference Name="Custom:StateGroup" DisplayName="State Group"> <AudioEnginePropertyID>10</AudioEnginePropertyID> <Restrictions> <TypeEnumerationRestriction> <Type Name="StateGroup" /> </TypeEnumerationRestriction> </Restrictions> </Reference> </Properties> </WwiseObject> </PluginModule>
让我们考察此 XML 文件头的组成部分并详细地讨论。
<?xml version="1.0" encoding="UTF-8"?>
任何 XML 文件的第一行都是定义 XML 版本和编码方式。在本例中,XML 版本是 1.0,编码方式是 UTF-8
。任何 Wwise 插件描述文件的第一行应该总是与此完全一致。
<PluginModule> ... </PluginModule>
本文档中的主要 XML 元素被命名为PluginModule,并且包含文件中定义的各种对象类型的所有信息。
<WwiseObject Name="Sound" CompanyID="1" PluginID="1"> <Properties> ... </Properties> </WwiseObject>
每个 WwiseObject 元素都定义了该对象类型的自定义属性。Name
、CompanyID 和 PluginID 必须是 Wwise 已知的,除非属性在 Wwise 中不显示。
有关属性和引用的更多信息,请参照 Plug-in 属性和自定义属性 XML 描述。请注意每个属性ID都需要有前缀“Custom:”。
以下是所有可能被用于定义自定义属性的 WwiseObject
类型。
<WwiseObject Name="Action" CompanyID="1" PluginID="5"></WwiseObject> <WwiseObject Name="ActorMixer" CompanyID="1" PluginID="8"></WwiseObject> <WwiseObject Name="Attenuation" CompanyID="1" PluginID="41"></WwiseObject> <WwiseObject Name="AudioDevice" CompanyID="1" PluginID="71"></WwiseObject> <WwiseObject Name="AuxBus" CompanyID="1" PluginID="61"></WwiseObject> <WwiseObject Name="BlendContainer" CompanyID="1" PluginID="29"></WwiseObject> <WwiseObject Name="Bus" CompanyID="1" PluginID="21"></WwiseObject> <WwiseObject Name="ControlSurfaceSession" CompanyID="1" PluginID="66"></WwiseObject> <WwiseObject Name="Conversion" CompanyID="1" PluginID="55"></WwiseObject> <WwiseObject Name="DialogueEvent" CompanyID="1" PluginID="46"></WwiseObject> <WwiseObject Name="Effect" CompanyID="1" PluginID="17"></WwiseObject> <WwiseObject Name="Event" CompanyID="1" PluginID="4"></WwiseObject> <WwiseObject Name="ExternalSource" CompanyID="1" PluginID="57"></WwiseObject> <WwiseObject Name="GameParameter" CompanyID="1" PluginID="23"></WwiseObject> <WwiseObject Name="MixingSession" CompanyID="1" PluginID="53"></WwiseObject> <WwiseObject Name="ModulatorEnvelope" CompanyID="1" PluginID="65"></WwiseObject> <WwiseObject Name="ModulatorLfo" CompanyID="1" PluginID="64"></WwiseObject> <WwiseObject Name="MotionBus" CompanyID="1" PluginID="47"></WwiseObject> <WwiseObject Name="MotionFX" CompanyID="1" PluginID="48"></WwiseObject> <WwiseObject Name="MusicRndSeqContainer" CompanyID="1" PluginID="34"></WwiseObject> <WwiseObject Name="MusicSegment" CompanyID="1" PluginID="27"></WwiseObject> <WwiseObject Name="MusicSwitchContainer" CompanyID="1" PluginID="35"></WwiseObject> <WwiseObject Name="MusicTrack" CompanyID="1" PluginID="28"></WwiseObject> <WwiseObject Name="Query" CompanyID="1" PluginID="32"></WwiseObject> <WwiseObject Name="RndSeqContainer" CompanyID="1" PluginID="9"></WwiseObject> <WwiseObject Name="Sound" CompanyID="1" PluginID="1"></WwiseObject> <WwiseObject Name="SoundBank" CompanyID="1" PluginID="18"></WwiseObject> <WwiseObject Name="State" CompanyID="1" PluginID="6"></WwiseObject> <WwiseObject Name="StateGroup" CompanyID="1" PluginID="7"></WwiseObject> <WwiseObject Name="SwitchContainer" CompanyID="1" PluginID="10"></WwiseObject> <WwiseObject Name="SwitchGroup" CompanyID="1" PluginID="19"></WwiseObject> <WwiseObject Name="Trigger" CompanyID="1" PluginID="40"></WwiseObject> <WwiseObject Name="VirtualFolder" CompanyID="1" PluginID="2"></WwiseObject> <WwiseObject Name="WorkUnit" CompanyID="1" PluginID="25"></WwiseObject> <WwiseObject Name="AudioSource" CompanyID="1" PluginID="0"></WwiseObject>