Map unit: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
imported>Leoetlino
Line 16: Line 16:


== Link system ==
== Link system ==
Map objects can be linked to other objects (up to 255 in a single group<ref>"一つの生成グループに 255 以上のアクタが指定されています。テストで無ければプログラマに相談"</ref>). These links allow implementing custom logic and callbacks (for example, DeadUp signals the destination object when the source object dies).
Map objects can be linked to other objects (up to 255 in a single generation group<ref>"一つの生成グループに 255 以上のアクタが指定されています。テストで無ければプログラマに相談"</ref>). These links allow implementing custom logic and callbacks (for example, DeadUp signals the destination object when the source object dies).


===Definitions===
===Definitions===

Revision as of 19:56, 2 December 2018


Contents

LocationPosX

LocationPosZ

LocationSize

Objs

Array of object structures. Must be sorted by HashId[1] because the placement subsystem performs binary searches on the object array in various cases[2].

Rails

Array of rail structures. Can only appear in group 0 maps (Static); this section is completely ignored for non-static map units.

Link system

Map objects can be linked to other objects (up to 255 in a single generation group[3]). These links allow implementing custom logic and callbacks (for example, DeadUp signals the destination object when the source object dies).

Definitions

ID Name Description Official description
4 -AxisX - マイナスX軸シグナル
5 -AxisY - マイナスY軸シグナル
6 -AxisZ - マイナスZ軸シグナル
24 AreaCol - エリア(センサ)指定
1 AxisX - X軸シグナル
2 AxisY - Y軸シグナル
3 AxisZ - Z軸シグナル
37 BAndSCs - ボール&ソケットCS
38 BAndSLimitAngYCs - Y角速度制限付ボール&ソケットCS
0 BasicSig - 基本シグナル
9 BasicSigOnOnly - オンのみ基本シグナル
14 ChangeAtnSig - アテンション変更時シグナル
39 CogWheelCs - 歯車CS
21 CopyWaitRevival Use the destination object's revival flag 配置自動セーブ継承
15 Create - 生成
11 DeadUp - 死んだらオン
16 Delete - 削除
29 DemoMember - デモ参加
32 FixedCs - 固定CS
26 ForSale - 売り物
19 ForbidAttention - アテンションタイプ変更
18 Freeze - 凍結
7 GimmickSuccess - ネタ成功シグナル
33 HingeCs - ヒンジCS
12 LifeZero - ライフ0
34 LimitHingeCs - 制限付ヒンジCS
27 ModelBind - モデルバインド
17 MtxCopyCreate - 位置継承生成
22 OffWaitRevival - 配置自動セーブオフ
30 PhysSystemGroup - 物理システムグループ
28 PlacementLOD - 配置LOD
36 PulleyCs - 滑車CS
40 RackAndPinionCs - ラック&ピニオンCS
23 Recreate - 再生成
41 Reference - 参照
10 Remains - 遺物シグナル
25 SensorBind - センサバインド
35 SliderCs - スライダーCS
13 Stable - 安定
31 StackLink - スタック
20 SyncLink - 生成グループ
8 VelocityControl - 速度制御シグナル

File formats

Map unit binary

In Breath of the Wild, map units are stored in a binary format and given the mubin (Map Unit Binary) file extension. All map object IDs are replaced with CRC32 hashes as a space optimisation. BYML is used as the serialisation format.

Source map unit

Source map units have muunt[4] as their file extension and use strings for map object IDs such as F-5_challenge.muunt/obj760 instead of CRC32 hashes of the IDs in map unit binaries.

  1. Technically, sorting is only required for Dynamic (non-group 0) map units. However, not sorting causes the game to fall back to a slower linear search.
  2. 0x7101256E14
  3. "一つの生成グループに 255 以上のアクタが指定されています。テストで無ければプログラマに相談"
  4. The executable has remnants of functions that can load map units with the following path: Map/Project/%s/Data/%s/%s.muunt (in what appears to be development code)