imported>Leoetlino |
imported>Leoetlino |
Line 1: |
Line 1: |
| {{Stub|what=Complete the contents section, the link system, mention static vs dynamic (and possibly other things)}} | | {{AIDef |
| | | |name=CheckDeadlyQuestEscapeTiming |
| == Contents ==
| | |type=Query |
| | | }} |
| === <code>LocationPosX</code> ===
| |
| | |
| === <code>LocationPosZ</code> ===
| |
| | |
| === <code>LocationSize</code> ===
| |
| | |
| === <code>Objs</code> ===
| |
| Array of object structures. '''Must be sorted by HashId'''<ref>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.</ref> because the placement subsystem performs binary searches on the object array in various cases<ref>0x7101256E14</ref>.
| |
| | |
| === <code>Rails</code> ===
| |
| Array of rail structures. Can only appear in group 0 maps (Static); this section is completely ignored for non-static map units.
| |
| | |
| == Link system ==
| |
| '''In static map units only''', 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).
| |
| | |
| LinkTags and other tag objects are lightweight actors that are used to link objects together.
| |
| | |
| Objects that are linked together, either directly or via indirect links, are put into the same generation group and loaded at the same time{{check}}. If the placement system fails to load an actor, the entire generation group is discarded.
| |
| | |
| ===Definitions===
| |
| {|class="wikitable sortable"
| |
| ! ID !! Name !! Description !! Official description
| |
| |-
| |
| | 4 || -AxisX || - || マイナスX軸シグナル
| |
| |-
| |
| | 5 || -AxisY || - || マイナスY軸シグナル
| |
| |-
| |
| | 6 || -AxisZ || - || マイナスZ軸シグナル
| |
| |-
| |
| | 24 || AreaCol || Area collision (link target is an Area object) || エリア(センサ)指定
| |
| |-
| |
| | 1 || AxisX || - || X軸シグナル
| |
| |-
| |
| | 2 || AxisY || - || Y軸シグナル
| |
| |-
| |
| | 3 || AxisZ || - || Z軸シグナル
| |
| |-
| |
| | 37 || BAndSCs || - || ボール&ソケットCS
| |
| |-
| |
| | 38 || BAndSLimitAngYCs || - || Y角速度制限付ボール&ソケットCS
| |
| |-
| |
| | 0 || BasicSig || Basic signal || 基本シグナル
| |
| |-
| |
| | 9 || BasicSigOnOnly || Basic signal [only emits ON signals] || オンのみ基本シグナル
| |
| |-
| |
| | 14 || ChangeAtnSig || Signal on Attention change (e.g. picking up a weapon) || アテンション変更時シグナル
| |
| |-
| |
| | 39 || CogWheelCs || - || 歯車CS
| |
| |-
| |
| | 21 || CopyWaitRevival || Activate links when the revival flag of the CopyWaitRevival target is set (e.g. can be used with LinkTagAnd to trigger basic signals when a chest is opened) || 配置自動セーブ継承
| |
| |-
| |
| | 15 || Create || Create a map object. Target objects are not created unless this link is activated. || 生成
| |
| |-
| |
| | 11 || DeadUp || Signal on death || 死んだらオン
| |
| |-
| |
| | 16 || Delete || Delete a map object. Target objects are created and stay spawned until this link is activated. Note: the corresponding collision is disabled even for objects that have their collision data extracted to separate Static Compound files. || 削除
| |
| |-
| |
| | 29 || DemoMember || - || デモ参加
| |
| |-
| |
| | 32 || FixedCs || - || 固定CS
| |
| |-
| |
| | 26 || ForSale || Links a shop item to its seller (target is the seller NPC). || 売り物
| |
| |-
| |
| | 19 || ForbidAttention || Prevent attention (i.e. interacting with an object, for example picking up a weapon) || アテンションタイプ変更
| |
| |-
| |
| | 18 || Freeze || Freeze the target object || 凍結
| |
| |-
| |
| | 7 || GimmickSuccess || Success signal (used for minigames) || ネタ成功シグナル
| |
| |-
| |
| | 33 || HingeCs || - || ヒンジCS
| |
| |-
| |
| | 12 || LifeZero || Emit a LifeZero signal when the life of the source object is 0 || ライフ0
| |
| |-
| |
| | 34 || LimitHingeCs || - || 制限付ヒンジCS
| |
| |-
| |
| | 27 || ModelBind || - || モデルバインド
| |
| |-
| |
| | 17 || MtxCopyCreate || - || 位置継承生成
| |
| |-
| |
| | 22 || OffWaitRevival || Reset the revival flag of the target object || 配置自動セーブオフ
| |
| |-
| |
| | 30 || PhysSystemGroup || - || 物理システムグループ
| |
| |-
| |
| | 28 || PlacementLOD || Replace the source object with the link target object at lower level of details || 配置LOD
| |
| |-
| |
| | 36 || PulleyCs || - || 滑車CS
| |
| |-
| |
| | 40 || RackAndPinionCs || - || ラック&ピニオンCS
| |
| |-
| |
| | 23 || Recreate || Recreates the target object || 再生成
| |
| |-
| |
| | 41 || Reference || - || 参照
| |
| |-
| |
| | 10 || Remains || Divine Beast signal || 遺物シグナル
| |
| |-
| |
| | 25 || SensorBind || - || センサバインド
| |
| |-
| |
| | 35 || SliderCs || - || スライダーCS
| |
| |-
| |
| | 13 || Stable || - || 安定
| |
| |-
| |
| | 31 || StackLink || - || スタック
| |
| |-
| |
| | 20 || SyncLink || Put the destination object and any object that is linked to it into the same generation group || 生成グループ
| |
| |-
| |
| | 8 || VelocityControl || Velocity control signal || 速度制御シグナル
| |
| |-
| |
| |}
| |
| | |
| === Link tags ===
| |
| LinkTagAnd, LinkTagOr, LinkTagNAnd, LinkTagNOr, LinkTagXOr, LinkTagCount, LinkTagPulse, LinkTagNone are small objects that are used to implement a basic logic system in map units.
| |
| | |
| AND, OR, NAND, NOR, XOR LinkTags are boolean operators. They can be used to conditionally set or clear GameData flags, or conditionally spawn objects, trigger other objects, etc. A basic signal is emitted when the LinkTag has been triggered by ''all'' of the source links (for LinkTagAnds) or by one of them (for LinkTagOrs), etc.
| |
| | |
| Count LinkTags are used to increment a GameData flag every time the link tag itself is signalled.
| |
| | |
| Pulse LinkTags continuously emit a basic signal with a configurable signal duration (PulseLength).
| |
| | |
| None LinkTags have no effect. They are only used to put different map unit objects into the same placement generation group.
| |
| | |
| Internally, they are all implemented by the same actor class (<code>LinkTag</code>) since they share most of their core functionality, with only small differences in effects. A single link tag can only handle 0x60 incoming links<ref>0x7100D388C4</ref>. Only incoming links with defType <= 0xe are processed<ref>0x7100D389DC</ref>; other links are ignored.
| |
| | |
| Parameters are documented in [[AIDef:Action/LinkTagBaseAction#MapUnitInstParams]].
| |
| | |
| == 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<ref>The executable has remnants of error logging functions that print paths to development map units of the following type: <code>Map/Project/%s/Data/%s/%s.muunt</code></ref> as their file extension and use strings for map object IDs such as <code>F-5_challenge.muunt/obj760</code> instead of CRC32 hashes of the IDs in map unit binaries.
| |
| [[Category:Internals]]
| |
| <references />
| |
| [[Category:File formats]]
| |