Help:Setting up tools and AIDef:AI/GuardianMiniFinalBattle: Difference between pages

From ZeldaMods (Breath of the Wild)
(Difference between pages)
Jump to navigation Jump to search
imported>Leoetlino
No edit summary
 
imported>Leoetlino
(import AI definitions from 1.5.0 (add missing AITreeVariables))
 
Line 1: Line 1:
''Breath of the Wild'' uses a very flexible, custom game engine. Many aspects of the game are not hardcoded and are instead configured by a large amount of files. To edit these files, a certain number of tools are required.
{{AIDef
|name=GuardianMiniFinalBattle
|type=AI
}}


== A note about file formats ==
== AITreeVariables ==
The most common formats that one would want to be able to decode and also modify are:
{|class="wikitable"
! Name !! Type !! Default value !! Description
|-
| GuardianMiniChanceTimeState || Int || -1 ||
|-
|}


* [[AAMP]] for [[actor parameters]], [[normal.bwinfo|world config (climate, lighting, ...)]], etc.
* [[BFRES]] for cosmetic (textures, models, ...) changes
* [[BFEVFL]] for in-game events (which includes things like talking to people and also full-blown cutscenes)
* [[BYML]] for [[actor]]s, [[map unit]]s, [[difficulty scaling]] config, etc.
* [[RSTB]] when adding new resources or making existing files larger because of how the game works internally
* [[SARC]] for archives since many resource files are packed


== Installing tools ==
== StaticInstParams ==
In general, there are several tools you can use for a given file format. This guide will only mention the recommended tools; a more complete list of utils can be found in the article for each [[:Category:File formats|file format]].
{|class="wikitable"
! Name !! Type !! Default value !! Description
|-
| ASSlotRight || Int ||  ||
|-
| ASSlotLeft || Int ||  ||
|-
| ASSlotBack || Int ||  ||
|-
| AttackHitNum || Int ||  ||
|-
| IsPreAttackMove || Bool ||  ||
|-
| RotNeckRate || Float ||  ||
|-
| AttackAngle || Float ||  ||
|-
| RetFrmGrdAtkTimer || Int ||  ||
|-
| RetFrmGrdAtkPrcTimer || Int ||  ||
|-
| RetFrmDmgAtkTimer || Int ||  ||
|-
| GlobalNoAtkTime || Int ||  ||
|-
| GlobalNoAtkTimeRnd || Int ||  ||
|-
| AttackIntervalIntensity || Float ||  ||
|-
| DisplayCheckRadius || Float ||  ||
|-
| IsUpdateNoticeState || Bool ||  ||
|-
| IsCheckLineReachable || Bool ||  ||
|-
|}


Some are unfortunately Windows-only, but many — especially the newer ones — are cross platform and work on Windows, macOS and Linux (with Linux even being the best supported platform for some tools).


=== Common requirements ===
== Children ==
Many of the tools for these formats require [[wikipedia:Python (programming language)|Python]] 3.6+ ('''64 bit version''') to be installed.
{|class="wikitable"
! Name !! Description
|-
| 戦闘予兆点滅 ||
|-
| 戦闘予兆移動 ||
|-
| 戦闘予兆開始 ||
|-
| 戦闘攻撃 ||
|-
| 戦闘準備 ||
|-
| 戦闘開始 ||
|-
|}


'''On Linux''', Python 3 is almost surely already installed. Just make sure you have a recent enough version (3.6+). Ubuntu 16.04 and Debian stretch are too old; the latest Ubuntu LTS (18.04) and rolling distros such as Arch and Debian sid have 3.6+ in their repos.
== Derived definitions ==
 
=== 最終段階 (Guardian_Mini_DetachLineBeam, 威嚇) ===
'''On Windows''', follow the below instructions for installing Python:
{{AIDefDerived
# Uninstall any existing Python version to avoid conflicts.
|name=最終段階
# Download the [https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe Python 3.7 installer] (latest version as of September 2018).
|group_name=威嚇
# Run the installer: do a ''system-wide install'' and tick the "''add Python to environment variables / PATH''" option.
|derived_from=GuardianMiniFinalBattle
# Verify that <code>py -3 --version</code> works and gives the correct version (3.6 or higher). {{CLI help}}
|aiprog=Guardian_Mini_DetachLineBeam
 
}}
=== AAMP ===
{|class="wikitable"
Two choices: [https://github.com/Zer0XoL/BotW-aampTool aamptool] or [https://github.com/leoetlino/aamp aamp].
! Name !! Value
 
|-
'''Warning''': aamptool does not handle child parameter lists properly. This means some files will appear to have an incorrect structure. Additionally, Nintendo sometimes starts parameter structure names with numbers. aamptool converts structures into XML tags; however leading numbers in tag names are explicitly disallowed by the XML specification. As a result files with such nodes cannot be converted back to XML correctly as of September 2018.
| ASSlotRight || 1
 
|-
For ''aamptool'':
| ASSlotLeft || 2
# Download the tool from [https://github.com/Zer0XoL/BotW-aampTool/releases GitHub] (note: only built for Windows).
|-
 
| ASSlotBack || 3
For ''aamp'':
|-
# Install the <code>aamp</code> package. {{Install py package help|package=aamp}}
| AttackHitNum || 2
 
|-
=== BFRES ===
| IsPreAttackMove || False
{{empty section}}
|-
 
| RotNeckRate || 0.0
=== BFEVFL ===
|-
# Install PyQt5. (If you're on Windows, install the <code>PyQt5</code> package. {{Install py package help|package=PyQt5}})
| AttackAngle || 3.14159
# Install the <code>eventeditor</code> package. {{Install py package help|package=eventeditor}}
|-
 
| RetFrmGrdAtkTimer || 0
=== BYML ===
|-
Two choices: [https://github.com/arbiter34/ninten-file-tool ninten-file-tool] (for Wii U '''only''') or [https://github.com/leoetlino/byml-v2 byml-v2] (Wii U and Switch, and supports all new node types)
| RetFrmGrdAtkPrcTimer || 0
 
|-
For ''ninten-file-tool'':
| RetFrmDmgAtkTimer || 0
# Install the Java runtime environment (JRE).
|-
# Download the [https://github.com/arbiter34/ninten-file-tool/releases latest release from GitHub].
| GlobalNoAtkTime || 80
 
|-
For ''byml-v2'':
| GlobalNoAtkTimeRnd || 0
# Install the <code>byml</code> package. {{Install py package help|package=byml}}
|-
 
| AttackIntervalIntensity || 1.0
=== RSTB ===
|-
# Install the <code>rstb</code> package. {{Install py package help|package=rstb}}
| DisplayCheckRadius || 0.8
 
|-
=== SARC ===
| IsUpdateNoticeState || True
Three choices: [https://github.com/Shadsterwolf/BotWUnpacker BotW Unpacker] (for Wii U '''only''') or [https://github.com/leoetlino/sarc sarc] (Wii U and Switch, heavily tested on BotW archives) or [https://github.com/aboood40091/SARC-Tool SARC Tool] (Wii U and Switch). '''We strongly advise against using other tools because they do not handle file alignment properly.'''
|-
 
| IsCheckLineReachable || False
For ''BotW Unpacker'':
|-
# Download the [https://github.com/Shadsterwolf/BotWUnpacker/releases latest release from GitHub].
|}
 
=== 最終段階 (Guardian_Mini_DetachLineBeam, 装備所持戦闘) ===
For ''sarc'':
{{AIDefDerived
# Install the <code>sarc</code> package. {{Install py package help|package=sarc}}
|name=最終段階
 
|group_name=装備所持戦闘
For ''SARC Tool'':
|derived_from=GuardianMiniFinalBattle
# Install the <code>sarclib</code> package. {{Install py package help|package=sarclib}}
|aiprog=Guardian_Mini_DetachLineBeam
# Install the <code>libyaz0</code> package. {{Install py package help|package=libyaz0}}
}}
# Download the [https://github.com/aboood40091/SARC-Tool/releases latest release from GitHub].
{|class="wikitable"
 
! Name !! Value
=== Map units ===
|-
[[Map unit]]s can be edited directly by modifying the map unit [[BYML]]s or with a graphical tool such as Ice-Spear.
| ASSlotRight || 1
 
|-
For the first method, refer to [[#BYML]].
| ASSlotLeft || 2
 
|-
For the second method, follow [https://gitlab.com/ice-spear-tools/ice-spear-builds the instructions in the official repo for Ice-Spear builds].
| ASSlotBack || 3
 
|-
== Reverse engineering ==
| AttackHitNum || 2
To reverse engineer the game [[executable]], it is strongly recommended to have a copy of IDA Pro 7.0+ because the main executable is fairly large and IDA is as of September 2018 the only serious option for analysing such binaries. It is also the only tool with a usable decompiler for AArch64 (Switch).
|-
 
| IsPreAttackMove || True
To get a copy of an IDC for Switch 1.5.0, ping [[User:leoetlino|leoetlino]].
|-
 
| RotNeckRate || 0.05
[[Category:Guides]]
|-
| AttackAngle || 3.14159
|-
| RetFrmGrdAtkTimer || 0
|-
| RetFrmGrdAtkPrcTimer || 0
|-
| RetFrmDmgAtkTimer || 0
|-
| GlobalNoAtkTime || 80
|-
| GlobalNoAtkTimeRnd || 0
|-
| AttackIntervalIntensity || 1.0
|-
| DisplayCheckRadius || 0.8
|-
| IsUpdateNoticeState || True
|-
| IsCheckLineReachable || False
|-
|}
=== 最終段階 (Guardian_Mini, 威嚇) ===
{{AIDefDerived
|name=最終段階
|group_name=威嚇
|derived_from=GuardianMiniFinalBattle
|aiprog=Guardian_Mini
}}
{|class="wikitable"
! Name !! Value
|-
| ASSlotRight || 1
|-
| ASSlotLeft || 2
|-
| ASSlotBack || 3
|-
| AttackHitNum || 2
|-
| IsPreAttackMove || False
|-
| RotNeckRate || 0.0
|-
| AttackAngle || 3.14159
|-
| RetFrmGrdAtkTimer || 0
|-
| RetFrmGrdAtkPrcTimer || 0
|-
| RetFrmDmgAtkTimer || 0
|-
| GlobalNoAtkTime || 80
|-
| GlobalNoAtkTimeRnd || 0
|-
| AttackIntervalIntensity || 1.0
|-
| DisplayCheckRadius || 0.8
|-
| IsUpdateNoticeState || True
|-
| IsCheckLineReachable || False
|-
|}
=== 最終段階 (Guardian_Mini, 装備所持戦闘) ===
{{AIDefDerived
|name=最終段階
|group_name=装備所持戦闘
|derived_from=GuardianMiniFinalBattle
|aiprog=Guardian_Mini
}}
{|class="wikitable"
! Name !! Value
|-
| ASSlotRight || 1
|-
| ASSlotLeft || 2
|-
| ASSlotBack || 3
|-
| AttackHitNum || 2
|-
| IsPreAttackMove || True
|-
| RotNeckRate || 0.05
|-
| AttackAngle || 3.14159
|-
| RetFrmGrdAtkTimer || 0
|-
| RetFrmGrdAtkPrcTimer || 0
|-
| RetFrmDmgAtkTimer || 0
|-
| GlobalNoAtkTime || 80
|-
| GlobalNoAtkTimeRnd || 0
|-
| AttackIntervalIntensity || 1.0
|-
| DisplayCheckRadius || 0.8
|-
| IsUpdateNoticeState || True
|-
| IsCheckLineReachable || False
|-
|}

Latest revision as of 15:00, 22 October 2018

GuardianMiniFinalBattle
AI definition
Type AI

AITreeVariables

Name Type Default value Description
GuardianMiniChanceTimeState Int -1


StaticInstParams

Name Type Default value Description
ASSlotRight Int
ASSlotLeft Int
ASSlotBack Int
AttackHitNum Int
IsPreAttackMove Bool
RotNeckRate Float
AttackAngle Float
RetFrmGrdAtkTimer Int
RetFrmGrdAtkPrcTimer Int
RetFrmDmgAtkTimer Int
GlobalNoAtkTime Int
GlobalNoAtkTimeRnd Int
AttackIntervalIntensity Float
DisplayCheckRadius Float
IsUpdateNoticeState Bool
IsCheckLineReachable Bool


Children

Name Description
戦闘予兆点滅
戦闘予兆移動
戦闘予兆開始
戦闘攻撃
戦闘準備
戦闘開始

Derived definitions

最終段階 (Guardian_Mini_DetachLineBeam, 威嚇)

Name Value
ASSlotRight 1
ASSlotLeft 2
ASSlotBack 3
AttackHitNum 2
IsPreAttackMove False
RotNeckRate 0.0
AttackAngle 3.14159
RetFrmGrdAtkTimer 0
RetFrmGrdAtkPrcTimer 0
RetFrmDmgAtkTimer 0
GlobalNoAtkTime 80
GlobalNoAtkTimeRnd 0
AttackIntervalIntensity 1.0
DisplayCheckRadius 0.8
IsUpdateNoticeState True
IsCheckLineReachable False

最終段階 (Guardian_Mini_DetachLineBeam, 装備所持戦闘)

Name Value
ASSlotRight 1
ASSlotLeft 2
ASSlotBack 3
AttackHitNum 2
IsPreAttackMove True
RotNeckRate 0.05
AttackAngle 3.14159
RetFrmGrdAtkTimer 0
RetFrmGrdAtkPrcTimer 0
RetFrmDmgAtkTimer 0
GlobalNoAtkTime 80
GlobalNoAtkTimeRnd 0
AttackIntervalIntensity 1.0
DisplayCheckRadius 0.8
IsUpdateNoticeState True
IsCheckLineReachable False

最終段階 (Guardian_Mini, 威嚇)

Name Value
ASSlotRight 1
ASSlotLeft 2
ASSlotBack 3
AttackHitNum 2
IsPreAttackMove False
RotNeckRate 0.0
AttackAngle 3.14159
RetFrmGrdAtkTimer 0
RetFrmGrdAtkPrcTimer 0
RetFrmDmgAtkTimer 0
GlobalNoAtkTime 80
GlobalNoAtkTimeRnd 0
AttackIntervalIntensity 1.0
DisplayCheckRadius 0.8
IsUpdateNoticeState True
IsCheckLineReachable False

最終段階 (Guardian_Mini, 装備所持戦闘)

Name Value
ASSlotRight 1
ASSlotLeft 2
ASSlotBack 3
AttackHitNum 2
IsPreAttackMove True
RotNeckRate 0.05
AttackAngle 3.14159
RetFrmGrdAtkTimer 0
RetFrmGrdAtkPrcTimer 0
RetFrmDmgAtkTimer 0
GlobalNoAtkTime 80
GlobalNoAtkTimeRnd 0
AttackIntervalIntensity 1.0
DisplayCheckRadius 0.8
IsUpdateNoticeState True
IsCheckLineReachable False