Map unit

Revision as of 11:45, 2 December 2018 by imported>Leoetlino (→‎Objs)


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 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)