ActorInfo.product.sbyml: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
(aabb correction)
No edit summary
Line 11: Line 11:
'''Actors''' is an array of dictionaries. It must be sorted in the same order as the Hashes section.
'''Actors''' is an array of dictionaries. It must be sorted in the same order as the Hashes section.


Each actor has its own entry in this array. Each entry has several properties, based on the actor's profile. All profiles (and therefore all entries) must have, at least, the following properties:
Each actor has its own entry in this array. Each entry has several properties, based on the actor's profile. The following is a list of all valid entries for any profile. Any single profile will not require all of these properties.
{| class="wikitable"
{| class="wikitable"
!Key
!Key
!Type
!Type
!Description
!Description
!Source
|-
|-
|aabbMax
|aabbMax
|float
|float
|Defines the maximum point for the axis-aligned bounding box (AABB) - the most-positive value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices.
|Defines the maximum point for the axis-aligned bounding box (AABB) - the most-positive value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices.
|sbfres, vertex coordinates
|-
|-
|aabbMin
|aabbMin
|float
|float
|Defines the minimum point for the axis-aligned bounding box (AABB) - the most-negative value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices.
|Defines the minimum point for the axis-aligned bounding box (AABB) - the most-negative value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices.
|sbfres, vertex coordinates
|-
|actorScale
|float
|Multiplier applied to the values of each vertex's coordinates (makes the actor's model larger or smaller)
|sbactorpack, ActorLink, ActorScale param
|-
|armorDefenceAddLevel
|int
|The amount of armor added when this actor is equipped as armor
|sbactorpack, bgparamlist, Armor section, DefenseAddLevel param
|-
|armorEffectAncientPowUp
|bool
|Whether the AncientPowUp (increased damage from ancient weapons) effect is provided by this actor when it is equipped as armor
|sbactorpack, bgparamlist, ArmorEffect section, AncientPowUp param
|-
|armorEffectEffectLevel
|int
|The number of levels of the actor's EffectType that are provided when this actor is equipped as armor
|sbactorpack, bgparamlist, ArmorEffect section, EffectLevel param
|-
|armorEffectEffectType
|str
|The EffectType granted by the actor when it is equipped as armor
|sbactorpack, bgparamlist, ArmorEffect section, EffectType param
|-
|armorEffectEnableClimbWaterfall
|bool
|Whether or not this actor grants the ability to climb waterfalls when it is equipped as armor
|sbactorpack, bgparamlist, ArmorEffect section, EnableClimbWaterfall param
|-
|armorEffectEnableSpinAttack
|bool
|Whether or not this actor grants the ability to perform spin attacks while swimming, when it is equipped as armor
|sbactorpack, bgparamlist, ArmorEffect section, EnableSpinAttack param
|-
|armorHeadMantleType
|int
| -
|sbactorpack, bgparamlist, ArmorHead section, MantleType param
|-
|armorNextRankName
|str
|Name of the actor that this can be upgraded to, by the Great Fairies
|sbactorpack, bgparamlist, Armor section, NextRankName param
|-
|armorStarNum
|int
|Number of stars to display in the inventory, plus 1 (e.g. armorStarNum: 1 will display 0 stars)
|sbactorpack, bgparamlist, Armor section, StarNum param
|-
|armorUpperDisableSelfMantle
|bool
| -
|sbactorpack, bgparamlist, ArmorUpper section, DisableSelfMantle param
|-
|armorUpperUseMantleType
|int
| -
|sbactorpack, bgparamlist, ArmorUpper section, UseMantleType param
|-
|attackPower
|int
|The amount of damage this actor does when used to attack as a weapon
|sbactorpack, bgparamlist, Attack section, Power param
|-
|bfres
|str
|Name of the (s)bfres file that stores this actor's model
|sbactorpack, bmodellist, ModelData list, ModelData_0 list, Base object, Folder param
|-
|boundingForTraverse
|float
| -
| -
|-
|-
|bugMask
|bugMask
Line 31: Line 109:
*& 2: アクターサウンドバグ ("Actor sound bug")<ref>{{addr|a=0x7100D26480|ver=nx-1.5.0}}</ref>
*& 2: アクターサウンドバグ ("Actor sound bug")<ref>{{addr|a=0x7100D26480|ver=nx-1.5.0}}</ref>
*& 1: アクター挙動バグ ("Actor behavior bug")<ref>{{addr|a=0x7100D26534|ver=nx-1.5.0}}</ref>
*& 1: アクター挙動バグ ("Actor behavior bug")<ref>{{addr|a=0x7100D26534|ver=nx-1.5.0}}</ref>
|Not found outside ActorInfo.product
|-
|cursorOffsetY
|float
|How much up or down another character actor must tilt their head to look at this actor when this actor has their attention (typically, when Link or an NPC is looking at the actor)
|sbactorpack, bmodellist, Attention section, CursorOffsetY param
|-
|elink
|str
|Determines the name of the actor's entry in the Elink2DB file, used for effects
|sbactorpack, ActorLink, ElinkUser param
|-
|generalLife
|int
|The amount of health this actor has
|sbactorpack, bgparamlist, General section, Life param
|-
|-
|instSize
|instSize
|int
|int
|Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes
|Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes
| -
|-
|isHasFar
|bool
|Whether or not a separate actor exists, with the same name but with _Far appended, that is used to replace this actor when it is far away
|Presence of a separate actor with the _Far name
|-
|itemBuyingPrice
|int
|Price when buying the actor from a shop
|sbactorpack, bgparamlist, Item section, BuyingPrice param
|-
|itemCreatingPrice
|int
|Price when creating the actor using the ancient oven
|sbactorpack, bgparamlist, Item section, CreatingPrice param
|-
|itemSaleRevivalCount
|int
| -
|sbactorpack, bgparamlist, Item section, SaleRevivalCount param
|-
|itemSellingPrice
|int
|Price when selling the actor to a shop
|sbactorpack, bgparamlist, Item section, SellingPrice param
|-
|itemStainColor
|int
|Index of the color that this actor will dye an armor when used as an ingredient in the dye shop
|sbactorpack, bgparamlist, Item section, StainColor param
|-
|itemUseIconActorName
|str
|The name of the actor whose icon this actor will use when displayed in the inventory. If empty, the actor will use the icon with its own name
|sbactorpack, bgparamlist, Item section, UseIconActorName param
|-
|mainModel
|str
|Name of the model inside the (s)bfres file for this actor
|sbactorpack, bmodellist, ModelData list, ModelData_0 list, Unit list, Unit_0 object, UnitName param
|-
|-
|name
|name
|str
|str
|Actor name
|Actor name
|sbactorpack, ActorLink, Name param (and several other places)
|-
|normal0ItemName%02d
|str
|Names of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemNum%02d of the same number.
|sbactorpack, brecipe, Normal0 table, ItemName%02d params
|-
|normal0ItemNum%02d
|int
|Quantities of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemName%02d of the same number.
|sbactorpack, brecipe, Normal0 table, ItemNum%02d params
|-
|normal0ItemStuffNum
|int
|Number of unique actors required to upgrade to this actor at a Great Fairy
|sbactorpack, brecipe, Normal0 table, ColumnNum param
|-
|-
|profile
|profile
|str
|str
|Profile name (see [[ActorTemplate]])
|Profile name (see [[ActorTemplate]])
|sbactorpack, ActorLink, Profile param
|-
|seriesArmorEnableCompBonus
|bool
|Whether or not this armor counts toward providing its seriesArmorSeriesType bonus
|sbactorpack, bgparamlist, SeriesArmor section, EnableCompBonus param
|-
|seriesArmorSeriesType
|str
|The set bonus that this actor will provide, when equipped with two other actors that have the same seriesArmorSeriesType
|sbactorpack, bgparamlist, SeriesArmor section, SeriesType param
|-
|slink
|str
|Determines the name of the actor's entry in the Slink2DB file, used for effects
|sbactorpack, ActorLink, SlinkUser param
|-
|-
|sortKey
|sortKey
|int
|int
|Determines the order of the actor in the Picture Book (0 if not needed)
|Determines the order of the actor in the Picture Book and inventory (0 if not needed)
|Not found outside ActorInfo.product
|-
|systemIsGetItemSelf
|bool
|Whether or not this object actor gives an item actor of the same name when activated (used to give Link an Item_Arrow when activated an Obj_Arrow in vanilla)
|sbactorpack, bgparamlist, System section, IsGetItemSelf param
|-
|systemSameGroupActorName
|str
| -
|sbactorpack, bgparamlist, System section, SameGroupActorName param
|-
|-
|tags
|tags
|dict
|dict
|A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.
|A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.
|sbactorpack, ActorLink, Tags section
|-
|terrainTextures
|array
|An array with entries of the form (value=crc32_hash) which is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.
| -
|-
|traverseDist
|float
| -
| -
|-
|-
|yLimitAlgorithm
|yLimitAlgorithm
|str
|str
|See [[ActorParam/LifeCondition]]. This might not be a required entry. {{check}}
|See [[ActorParam/LifeCondition]]. This might not be a required entry. {{check}}
|sbactorpack, blifecondition, YLimitAlgorithm param
|}
|}



Revision as of 13:09, 17 June 2022

This file is not listed in the game's resource size table.

ActorInfo.product.sbyml (found in the Actor directory) is a Yaz0-compressed BYML file which contains general information about all actors in the game. It is used when constructing actors, and also used to access actor data efficiently when loading the full actor pack is unnecessary (e.g. on menu screens). Therefore, in order to add new actors, or to change items' parameters on menu screens, this file must be edited.

ActorInfo is a machine generated file. It is not meant to be edited directly; much of the information it includes are either automatically generated or copied from ActorParam files (which can be found in the game content) and other source-only files.


Contents

Actors

Actors is an array of dictionaries. It must be sorted in the same order as the Hashes section.

Each actor has its own entry in this array. Each entry has several properties, based on the actor's profile. The following is a list of all valid entries for any profile. Any single profile will not require all of these properties.

Key Type Description Source
aabbMax float Defines the maximum point for the axis-aligned bounding box (AABB) - the most-positive value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices. sbfres, vertex coordinates
aabbMin float Defines the minimum point for the axis-aligned bounding box (AABB) - the most-negative value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices. sbfres, vertex coordinates
actorScale float Multiplier applied to the values of each vertex's coordinates (makes the actor's model larger or smaller) sbactorpack, ActorLink, ActorScale param
armorDefenceAddLevel int The amount of armor added when this actor is equipped as armor sbactorpack, bgparamlist, Armor section, DefenseAddLevel param
armorEffectAncientPowUp bool Whether the AncientPowUp (increased damage from ancient weapons) effect is provided by this actor when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, AncientPowUp param
armorEffectEffectLevel int The number of levels of the actor's EffectType that are provided when this actor is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EffectLevel param
armorEffectEffectType str The EffectType granted by the actor when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EffectType param
armorEffectEnableClimbWaterfall bool Whether or not this actor grants the ability to climb waterfalls when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EnableClimbWaterfall param
armorEffectEnableSpinAttack bool Whether or not this actor grants the ability to perform spin attacks while swimming, when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EnableSpinAttack param
armorHeadMantleType int - sbactorpack, bgparamlist, ArmorHead section, MantleType param
armorNextRankName str Name of the actor that this can be upgraded to, by the Great Fairies sbactorpack, bgparamlist, Armor section, NextRankName param
armorStarNum int Number of stars to display in the inventory, plus 1 (e.g. armorStarNum: 1 will display 0 stars) sbactorpack, bgparamlist, Armor section, StarNum param
armorUpperDisableSelfMantle bool - sbactorpack, bgparamlist, ArmorUpper section, DisableSelfMantle param
armorUpperUseMantleType int - sbactorpack, bgparamlist, ArmorUpper section, UseMantleType param
attackPower int The amount of damage this actor does when used to attack as a weapon sbactorpack, bgparamlist, Attack section, Power param
bfres str Name of the (s)bfres file that stores this actor's model sbactorpack, bmodellist, ModelData list, ModelData_0 list, Base object, Folder param
boundingForTraverse float - -
bugMask int Affects the ActorDebug interface and probably more things in debug builds.
  • & 2: アクターサウンドバグ ("Actor sound bug")[1]
  • & 1: アクター挙動バグ ("Actor behavior bug")[2]
Not found outside ActorInfo.product
cursorOffsetY float How much up or down another character actor must tilt their head to look at this actor when this actor has their attention (typically, when Link or an NPC is looking at the actor) sbactorpack, bmodellist, Attention section, CursorOffsetY param
elink str Determines the name of the actor's entry in the Elink2DB file, used for effects sbactorpack, ActorLink, ElinkUser param
generalLife int The amount of health this actor has sbactorpack, bgparamlist, General section, Life param
instSize int Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes -
isHasFar bool Whether or not a separate actor exists, with the same name but with _Far appended, that is used to replace this actor when it is far away Presence of a separate actor with the _Far name
itemBuyingPrice int Price when buying the actor from a shop sbactorpack, bgparamlist, Item section, BuyingPrice param
itemCreatingPrice int Price when creating the actor using the ancient oven sbactorpack, bgparamlist, Item section, CreatingPrice param
itemSaleRevivalCount int - sbactorpack, bgparamlist, Item section, SaleRevivalCount param
itemSellingPrice int Price when selling the actor to a shop sbactorpack, bgparamlist, Item section, SellingPrice param
itemStainColor int Index of the color that this actor will dye an armor when used as an ingredient in the dye shop sbactorpack, bgparamlist, Item section, StainColor param
itemUseIconActorName str The name of the actor whose icon this actor will use when displayed in the inventory. If empty, the actor will use the icon with its own name sbactorpack, bgparamlist, Item section, UseIconActorName param
mainModel str Name of the model inside the (s)bfres file for this actor sbactorpack, bmodellist, ModelData list, ModelData_0 list, Unit list, Unit_0 object, UnitName param
name str Actor name sbactorpack, ActorLink, Name param (and several other places)
normal0ItemName%02d str Names of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemNum%02d of the same number. sbactorpack, brecipe, Normal0 table, ItemName%02d params
normal0ItemNum%02d int Quantities of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemName%02d of the same number. sbactorpack, brecipe, Normal0 table, ItemNum%02d params
normal0ItemStuffNum int Number of unique actors required to upgrade to this actor at a Great Fairy sbactorpack, brecipe, Normal0 table, ColumnNum param
profile str Profile name (see ActorTemplate) sbactorpack, ActorLink, Profile param
seriesArmorEnableCompBonus bool Whether or not this armor counts toward providing its seriesArmorSeriesType bonus sbactorpack, bgparamlist, SeriesArmor section, EnableCompBonus param
seriesArmorSeriesType str The set bonus that this actor will provide, when equipped with two other actors that have the same seriesArmorSeriesType sbactorpack, bgparamlist, SeriesArmor section, SeriesType param
slink str Determines the name of the actor's entry in the Slink2DB file, used for effects sbactorpack, ActorLink, SlinkUser param
sortKey int Determines the order of the actor in the Picture Book and inventory (0 if not needed) Not found outside ActorInfo.product
systemIsGetItemSelf bool Whether or not this object actor gives an item actor of the same name when activated (used to give Link an Item_Arrow when activated an Obj_Arrow in vanilla) sbactorpack, bgparamlist, System section, IsGetItemSelf param
systemSameGroupActorName str - sbactorpack, bgparamlist, System section, SameGroupActorName param
tags dict A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise. sbactorpack, ActorLink, Tags section
terrainTextures array An array with entries of the form (value=crc32_hash) which is an unsigned int if it is greater than 0x80000000 and a regular int otherwise. -
traverseDist float - -
yLimitAlgorithm str See blifecondition. This might not be a required entry. [check] sbactorpack, blifecondition, YLimitAlgorithm param

Hashes

Hashes is an array of CRC32 hashes of actor names.

This array must be sorted because ActorInfoData performs a binary search on this array to find actor entries efficiently. As a direct consequence the actor array must be sorted according to the CRC32 hashes of the actor names.

Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.

  1. 0x7100D26480 [nx-1.5.0 executable]
  2. 0x7100D26534 [nx-1.5.0 executable]