Skip to content

Commit

Permalink
Merge pull request #34 from chocmake/master
Browse files Browse the repository at this point in the history
AI section updates
  • Loading branch information
chocmake authored Apr 5, 2024
2 parents e93d5eb + e09bf0e commit b9dbd8d
Show file tree
Hide file tree
Showing 63 changed files with 105 additions and 109 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
_site
Gemfile.*.lock
.sass-cache
public
public
.jekyll-metadata
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ This is the central hub for information on modding the [Fox Engine](https://en.w
[![Lua](/assets/Lua Icon.png){:.inline width="145px"}](/Lua)
[![Guides](/assets/Guides Icon.png){:.inline width="145px"}](/Guides)
[![Infinite Heaven](/assets/InfiniteHeaven Icon.webp){:.inline width="145px"}](/Infinite_Heaven)
[![AI](/assets/AI_Stuff/images/AI Icon.png){:.inline width="145px"}](/AI_Stuff/AI_Main)
[![AI](/assets/AI/images/AI Icon.png){:.inline width="145px"}](/AI)
{:.center}
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
29 changes: 0 additions & 29 deletions wiki/AI.md

This file was deleted.

38 changes: 38 additions & 0 deletions wiki/AI/AI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: AI
permalink: /AI/
tags: []
---

[![Metal Gear Sahelanthropus](/assets/AI/images/Shln Icon.png){:.inline width="145px"}](/AI/mgs)
[![Volgin](/assets/AI/images/volgin Icon.png){:.inline width="145px"}](/AI/AI_Main)
[![Quiet](/assets/AI/images/Quiet Icon.png){:.inline width="145px"}](/AI/AI_Main)
[![Skull Units](/assets/AI/images/skulls Icon.png){:.inline width="145px"}](/AI/AI_Main)
[![Soldiers](/assets/AI/images/Soldiers Icon.png){:.inline width="145px"}](/AI/AI_Main)
[![Pequod](/assets/AI/images/Pequod Icon.png){:.inline width="145px"}](/AI/AI_Main)
[![Enemy Vehicles](/assets/AI/images/EnemyHelis Icon.png){:.inline width="145px"}](/AI/AI_Main)
[![Animals](/assets/AI/images/Animals Icon.png){:.inline width="145px"}](/AI/AI_Main)

## Metal Gear
{% include index-autolist tag="Metal Gear" %}{:.small}

## Volgin
{% include index-autolist tag="Volgin" %}{:.small}

## Quiet
{% include index-autolist tag="Quiet" %}{:.small}

## Skull Units
{% include index-autolist tag="Skull Units" %}{:.small}

## Soldiers
{% include index-autolist tag="Soldiers" %}{:.small}

## Pequod
{% include index-autolist tag="Pequod" %}{:.small}

## Enemy Vehicles
{% include index-autolist tag="Enemy Vehicles" %}{:.small}

## Animals
{% include index-autolist tag="Enemy Animals" %}{:.small}
58 changes: 28 additions & 30 deletions wiki/AI_Stuff/mgs/mgs_main.md → wiki/AI/mgs/mgs.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
---
title: Metal Gear Sahelanthropus
permalink: /AI_Stuff/mgs/mgs_Main
permalink: /AI/mgs/
tags: [AI, Metal Gear]
---

# Metal Gear Sahelanthropus

## General Information

![Sahelanthropus art from "The Art of Metal Gear Solid V" (page 110)](/assets/AI_Stuff/images/mgs/sally art.png){:.thumb .right}
![Sahelanthropus art from "The Art of Metal Gear Solid V" (page 110)](/assets/AI/images/mgs/sally art.png){:.thumb .right}

Sahelanthropus, also known as "Sally" is the Metal Gear present on Metal Gear Solid V.<br>

Expand All @@ -18,7 +16,7 @@ Each attack varies with the AI being used on it, for example, using hellbound AI
In the game, the guns that Sahelanthropus can use is controled by AI and Battle sequence, for example, the Railgun, Archaea blades and Archaea grenades are not used by Hellbound AI and the weapons that Dominion AI can use is controled by battle sequences<br><br>

There is also an shield that is disabled by default, this shield was meant to be used on "Kingdom of the Flies" but since we never got that, we never got a working shield.<br>The shield is present on Sahelanthropus Main and Static models, there is also colision files for it but the mesh and colision are disabled by the .exe, unlike the Railgun and the Railgun Loader that are disabled only on Hellbound AI, the shield is fully disabled all the time.<br>
![Sahelanthropus with the shield mesh visible](/assets/AI_Stuff/images/mgs/shln_shield example.png){:.thumb}
![Sahelanthropus with the shield mesh visible](/assets/AI/images/mgs/shln_shield example.png){:.thumb}

Sahelanthropus does have colision with the player, animals, soldiers and vehicles but can only deal damage to animals, vehicles and the player, and no, Sahelanthropus isn't coded to attack anything else besides the player and Huey(?) on Hellbound episode.<br>Funnily enough, if you use soldiers as a human shield while it attacks you with the vulcan guns, it will damage the soldiers and they will fall to the ground heavily wounded but no blood will be present.

Expand Down Expand Up @@ -230,23 +228,23 @@ PTRB = 96, -- Right Back Parasite/Propane? Tank

{% include spoiler-start title="Parts with pictures" %}

![Body](/assets/AI_Stuff/images/mgs/shln_hp body.png){:.thumb}
![Bp](/assets/AI_Stuff/images/mgs/shln_hp bp.png){:.thumb}
![Head](/assets/AI_Stuff/images/mgs/shln_hp head.png){:.thumb}
![ArmR](/assets/AI_Stuff/images/mgs/shln_hp rarm.png){:.thumb}
![ArmL](/assets/AI_Stuff/images/mgs/shln_hp larm.png){:.thumb}
![ThighR](/assets/AI_Stuff/images/mgs/shln_hp rthigh.png){:.thumb}
![ThighL](/assets/AI_Stuff/images/mgs/shln_hp lthigh.png){:.thumb}
![LegR](/assets/AI_Stuff/images/mgs/shln_hp rleg.png){:.thumb}
![LegL](/assets/AI_Stuff/images/mgs/shln_hp lleg.png){:.thumb}
![RGun](/assets/AI_Stuff/images/mgs/shln_hp railgun.png){:.thumb}
![Ldr](/assets/AI_Stuff/images/mgs/shln_hp loader.png){:.thumb}
![Tnk](/assets/AI_Stuff/images/mgs/shln_hp flamet.png){:.thumb}
![Shield](/assets/AI_Stuff/images/mgs/shln_hp shield.png){:.thumb}
![PTLF](/assets/AI_Stuff/images/mgs/shln_hp PTLF.png){:.thumb}
![PTRF](/assets/AI_Stuff/images/mgs/shln_hp PTRF.png){:.thumb}
![PTLB](/assets/AI_Stuff/images/mgs/shln_hp PTLB.png){:.thumb}
![PTRB](/assets/AI_Stuff/images/mgs/shln_hp PTRB.png){:.thumb}
![Body](/assets/AI/images/mgs/shln_hp body.png){:.thumb}
![Bp](/assets/AI/images/mgs/shln_hp bp.png){:.thumb}
![Head](/assets/AI/images/mgs/shln_hp head.png){:.thumb}
![ArmR](/assets/AI/images/mgs/shln_hp rarm.png){:.thumb}
![ArmL](/assets/AI/images/mgs/shln_hp larm.png){:.thumb}
![ThighR](/assets/AI/images/mgs/shln_hp rthigh.png){:.thumb}
![ThighL](/assets/AI/images/mgs/shln_hp lthigh.png){:.thumb}
![LegR](/assets/AI/images/mgs/shln_hp rleg.png){:.thumb}
![LegL](/assets/AI/images/mgs/shln_hp lleg.png){:.thumb}
![RGun](/assets/AI/images/mgs/shln_hp railgun.png){:.thumb}
![Ldr](/assets/AI/images/mgs/shln_hp loader.png){:.thumb}
![Tnk](/assets/AI/images/mgs/shln_hp flamet.png){:.thumb}
![Shield](/assets/AI/images/mgs/shln_hp shield.png){:.thumb}
![PTLF](/assets/AI/images/mgs/shln_hp PTLF.png){:.thumb}
![PTRF](/assets/AI/images/mgs/shln_hp PTRF.png){:.thumb}
![PTLB](/assets/AI/images/mgs/shln_hp PTLB.png){:.thumb}
![PTRB](/assets/AI/images/mgs/shln_hp PTRB.png){:.thumb}

{% include spoiler-end %}

Expand Down Expand Up @@ -335,13 +333,13 @@ Triggers an attack, Sahelanthropus will attack an antenna if the route node and
{% include spoiler-end %}

## Hellbound Documentation
[Hellbound Debug Functions](/AI_Stuff/mgs/mgs_hellbound_Debug_Functions)<br>
[Hellbound route assignment](/AI_Stuff/mgs/mgs_hellroutes)<br>
[Hellbound Search Missiles](/AI_Stuff/mgs/mgs_hellsearchmissiles)<br>
[Hellbound Heli attack sequence](/AI_Stuff/mgs/mgs_Hellheli)<br>
[Hellbound Debug Functions](/AI/mgs/mgs_hellbound_Debug_Functions)<br>
[Hellbound route assignment](/AI/mgs/mgs_hellroutes)<br>
[Hellbound Search Missiles](/AI/mgs/mgs_hellsearchmissiles)<br>
[Hellbound Heli attack sequence](/AI/mgs/mgs_Hellheli)<br>

## Dominion Documentation
[Navmesh Params and Flags](/AI_Stuff/mgs/mgs_nav2_params)<br>
[sahelan Navworld](/AI_Stuff/mgs/mgs_NavWorld)<br>
[Dominion route assignment](/AI_Stuff/mgs/mgs_DomRoutes)<br>
[Dominion REX mode](/AI_Stuff/mgs/mgs_rexmode)<br>
[Navmesh Params and Flags](/AI/mgs/mgs_nav2_params)<br>
[sahelan Navworld](/AI/mgs/mgs_NavWorld)<br>
[Dominion route assignment](/AI/mgs/mgs_DomRoutes)<br>
[Dominion REX mode](/AI/mgs/mgs_rexmode)<br>
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: MG Dominion Routes
permalink: /AI_Stuff/mgs/mgs_DomRoutes
permalink: /AI/mgs/mgs_DomRoutes/
tags: [AI, Metal Gear]
---
## What are routes used for on Dominion AI ?
Expand All @@ -23,7 +23,7 @@ Start by creating a Routeset on foxkit and inside that routeset create the route
As an example, im going to make a route inside Nova Braga Airport like the one bellow:

![The yellow line represents the route](/assets/AI_Stuff/images/mgs/shln_Domroute.png)
![The yellow line represents the route](/assets/AI/images/mgs/shln_Domroute.png)

>Use edge event type `Run Walk` for Dominion Base route
{:.important}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Metal Gear Sahelanthropus Navworld
permalink: /AI_Stuff/mgs/mgs_NavWorld
tags: [AI,Metal Gear]
permalink: /AI/mgs/mgs_NavWorld/
tags: [AI, Metal Gear]
---

# Metal Gear Sahelanthropus Navworld
## Metal Gear Sahelanthropus Navworld

Sahelanthropus Navmesh is loaded on its very own Navworld called `sahelan`<br>This Navworld is limited to only load 2 Navmesh at once, that can be changed by editing `Tpp/start.lua`.<br><br>
Unlike the Navworld Used by Other AIs (excluding the helicopters), `sahelan` Navworld does not contain the next properties:<br>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Hellbound Debug Functions
permalink: /AI_Stuff/mgs/mgs_hellbound_Debug_Functions
permalink: /AI/mgs/mgs_hellbound_Debug_Functions/
tags: [AI, Metal Gear]
---

Expand Down
9 changes: 9 additions & 0 deletions wiki/AI/mgs/mgs_hellheli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: MG HellBound Heli Attack
permalink: /AI/mgs/mgs_Hellheli/
tags: [AI, Metal Gear]
---

TODO

This sequence is very hard to replicate
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: MG Hellbound Routes
permalink: /AI_Stuff/mgs/mgs_hellroutes
permalink: /AI/mgs/mgs_hellroutes/
tags: [AI, Metal Gear]
---

Expand Down Expand Up @@ -183,13 +183,13 @@ First you need a dataset with the geotraps you want to use. the geotrap must hav
- funcName: `IsPlayer`

Geotrap entity Parameters:
![Make sure the Geotrap Entity is enabled](/assets/AI_Stuff/images/mgs/hellgeotrap.png)
![Make sure the Geotrap Entity is enabled](/assets/AI/images/mgs/hellgeotrap.png)

GeoModuleCondition Parameters:
![](/assets/AI_Stuff/images/mgs/hellgeotrap_01.png)
![](/assets/AI/images/mgs/hellgeotrap_01.png)

TppTrapCheckIsPlayerCallbackDataElement Parameters:
![](/assets/AI_Stuff/images/mgs/hellgeotrap_02.png)
![](/assets/AI/images/mgs/hellgeotrap_02.png)

Geotraps are assigned with Sahelanthropus like showed bellow:
```lua
Expand All @@ -215,7 +215,7 @@ this.sahelanRouteTable = {
{:.important}

the name of the geotrap assigned on the script needs to be the name of that geotrap on the dataset
![](/assets/AI_Stuff/images/mgs/hellgeotrap_03.png)
![](/assets/AI/images/mgs/hellgeotrap_03.png)

if everything is done correctly, every time the geotrap is triggered the game will update the routes with the routes assigned to the geotrap.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
title: MG Sahelanthropus Hellbound Search Missiles
permalink: /AI_Stuff/mgs/mgs_hellsearchmissiles
permalink: /AI/mgs/mgs_hellsearchmissiles/
tags: [AI, Metal Gear]
---

## General Information

![Sahelanthropus Search Missile](/assets/AI_Stuff/images/mgs/shln_seachmissile.png){:.thumb .right}
![Sahelanthropus Search Missile](/assets/AI/images/mgs/shln_seachmissile.png){:.thumb .right}

Search Missiles used by Sahelanthropus Hellbound have the function to patrol areas defined with Routes, they alert Sahelanthropus if the player is detected with their red laser, Sahelanthropus then heads towards that area to investigate.<br>
Search Missiles are used by Sahelanthropus after it goes from `PHASE_ALERT` to `PHASE_CAUTION` (this is controled by the .exe), Sahelanthropus will always use the closest search missile entities the player position.<br><br>
Expand Down Expand Up @@ -59,7 +59,7 @@ First you need to create the routes you want (the name can be whatever you want

The Search Missile will follow the route but the laser will be pointing at random directions(?).<br> The edge event must be `All` and the node event, if you want to use one, must be `Stand Idle`, you can use `Stand Idle` to make it look at an direction during a certain time defined on it. Here is an example of an route for it that covers the Power Plant main building:<br>

![The route its the yellow line](/assets/AI_Stuff/images/mgs/shln_search_missile_route_example.png)
![The route its the yellow line](/assets/AI/images/mgs/shln_search_missile_route_example.png)

### Dataset entity

Expand All @@ -69,17 +69,17 @@ Each search missile entity can only be linked to 1 route, that means you need on

On `TppSearchMissilePointData` transform property (`TransformEntity`), make sure that the Scale values are set to `1` (except for `w`, that one should be `0`), the rotation will not matter here and the `transform_translation` must be near the route 1st node like in the example bellow:

![The Search Missile model represents its entity transform_translation values and the route its the yellow line](/assets/AI_Stuff/images/mgs/shln_searchmissile_entity_translation_example.png)
![The Search Missile model represents its entity transform_translation values and the route its the yellow line](/assets/AI/images/mgs/shln_searchmissile_entity_translation_example.png)

Now you must be asking yourself "why is it important that the `TransformEntity` `transform_translation` values need to be near the route 1st node?"<br>

Well its simple, when Sahelanthropus fires the Search Missiles they don't travel to the linked route 1st node, they travel to their entity `TransformEntity` and then follow the route, unless you want the search missile to go trough walls or cliffs etc... make the `TransformEntity` `transform_translation` values be near the 1st route node.<br>

For this example, both route 1st node and entity will share the same translation (position) values, as you can see in the 2 images bellow:

![In this example, the route 1st node contains this values on its translation (called position on Unity3d)](/assets/AI_Stuff/images/mgs/shln_searchmissile_entity_translation_example_01.png)
![In this example, the route 1st node contains this values on its translation (called position on Unity3d)](/assets/AI/images/mgs/shln_searchmissile_entity_translation_example_01.png)

![The entity does have the same translation values](/assets/AI_Stuff/images/mgs/shln_searchmissile_entity_translation_example_02.png)
![The entity does have the same translation values](/assets/AI/images/mgs/shln_searchmissile_entity_translation_example_02.png)

After all this is done, the only thing left to do, is link the routes with the entities.

Expand Down Expand Up @@ -114,11 +114,11 @@ its simple, the routes on `missileRouteList` will be linked with the entities on

In this example i want to link the route `rt_SearchMissile_PowePlant_c_0000` with the entity `TppSearchMissilePointData0042`:

![](/assets/AI_Stuff/images/mgs/shln_searchmissile_entity_translation_example_03.png)
![](/assets/AI/images/mgs/shln_searchmissile_entity_translation_example_03.png)

that means that the route will need to be the 43rd on the `missileRouteList` since we want to link it to the 43rd entity on the dataset

![](/assets/AI_Stuff/images/mgs/shln_searchmissile_entity_translation_example_04.png)
![](/assets/AI/images/mgs/shln_searchmissile_entity_translation_example_04.png)

If everything is done correctly, the search missiles will work fine

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Sahelanthropus Navmesh data
permalink: /AI_Stuff/mgs/mgs_nav2_params
tags: [AI,Metal Gear]
permalink: /AI/mgs/mgs_nav2_params/
tags: [AI, Metal Gear]
---


Expand Down
11 changes: 6 additions & 5 deletions wiki/AI_Stuff/mgs/mgs_rexmode.md → wiki/AI/mgs/mgs_rexmode.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
---
title: MG Sahelanthropus REX mode
permalink: /AI_Stuff/mgs/mgs_rexmode
permalink: /AI/mgs/mgs_rexmode/
tags: [AI, Metal Gear]
---

## Rex mode
![Sahelanthropus Rex Mode Art from "The Art of Metal Gear Solid V" (page 111)](/assets/AI_Stuff/images/mgs/sally_art rex.png){:.thumb .right}
![Sahelanthropus Rex Mode Art from "The Art of Metal Gear Solid V" (page 111)](/assets/AI/images/mgs/sally_art rex.png){:.thumb .right}

REX mode is the name given to the sequence where Sahelanthropus changes its pose to an pose similar to MG REX to fire its railgun.<br><br>

Expand All @@ -21,16 +22,16 @@ You can add REX sniping points anywhere, even on sky, but make sure there is ter
As written above, REX sniping points are managed on datasets with `TppHidePointData` entities, for this example im going to use Foxkit to add 1 more REX sniping point on Nova Braga to an already existing dataset.<br>
In this example, i want the sniping point to be on the red cross facing the airport like in the picture bellow:

![](/assets/AI_Stuff/images/mgs/shlb_rexpoint_example.png)
![](/assets/AI/images/mgs/shlb_rexpoint_example.png)

First thing to is to open the dataset that you are using to manage the REX sniping points, if you dont have one yet, create it.<br>
After that add an `TppHidePointData`, on the Foxkit´s Entity tab, make sure the `type` is set to `Type 1` and create an Transform entity.<br>

![](/assets/AI_Stuff/images/mgs/shlb_rexpoint_example_02.png)
![](/assets/AI/images/mgs/shlb_rexpoint_example_02.png)

Now with the `TppHidePointData` Transform entity created you can define the coordinates and rotation for the REX sniping point, in my case, i will place it on the end of the runway facing the airport.

![](/assets/AI_Stuff/images/mgs/shlb_rexpoint_example_01.png)
![](/assets/AI/images/mgs/shlb_rexpoint_example_01.png)

>The direction of the blue arrow is the direction that Sahelanthropus will be facing
{:.important}
Expand Down
15 changes: 0 additions & 15 deletions wiki/AI_Stuff/AI_Main.md

This file was deleted.

7 changes: 0 additions & 7 deletions wiki/AI_Stuff/mgs/mgs_hellheli.md

This file was deleted.

0 comments on commit b9dbd8d

Please sign in to comment.