Difference between revisions of "Dandori Battles"

From Pikmin Technical Knowledge Base
Jump to navigation Jump to search
(DDBs)
 
(Make json complete)
 
(One intermediate revision by the same user not shown)
Line 7: Line 7:
 
The second byte of <code>PopPlace</code> is the <code>GroupId</code>. This is how the game determines what the <code>PopPlaceActor</code> should spawn, and how. These groups are actually defined in <code>Carrot4/Core/VS/Pop/SettingTable/{type}/DT_Pop_{type}{something}.uasset</code>. An excerpt of one from Trial run (DDB_AI001):
 
The second byte of <code>PopPlace</code> is the <code>GroupId</code>. This is how the game determines what the <code>PopPlaceActor</code> should spawn, and how. These groups are actually defined in <code>Carrot4/Core/VS/Pop/SettingTable/{type}/DT_Pop_{type}{something}.uasset</code>. An excerpt of one from Trial run (DDB_AI001):
  
<code>
+
<source lang="JSON">
 
{
 
{
 
   "コチャッピー_リポップ_積み木の下": { // "Kochappi_Repop_Under the building blocks"
 
   "コチャッピー_リポップ_積み木の下": { // "Kochappi_Repop_Under the building blocks"
Line 31: Line 31:
 
   }
 
   }
 
}
 
}
</code>
+
</source>
  
 
Which defines Group ID 2 to spawn at most 2 kochappies every (40 ±5) seconds from the start of the battle. However this means DDB spawns are linked to DataTable files, and not just the actors in the AGL.  
 
Which defines Group ID 2 to spawn at most 2 kochappies every (40 ±5) seconds from the start of the battle. However this means DDB spawns are linked to DataTable files, and not just the actors in the AGL.  
Line 37: Line 37:
 
Presently, the UassetEncoder mangles the <code>GenerateClassArray</code> to something unhelpful:
 
Presently, the UassetEncoder mangles the <code>GenerateClassArray</code> to something unhelpful:
  
<code>
+
<source lang="JSON">
"GenerateClassArray": [
+
{
  -7902643105768047879
+
  "GenerateClassArray": [
],
+
    -7902643105768047879
</code>
+
  ]
 +
}
 +
</source>
  
 
Meaning we can't edit and re-encode the files to add more/edit the groups for each Dandori Battle, currently leaving them as only editable by using regular entities, ActorSpawners, or the existing groups.
 
Meaning we can't edit and re-encode the files to add more/edit the groups for each Dandori Battle, currently leaving them as only editable by using regular entities, ActorSpawners, or the existing groups.

Latest revision as of 22:02, 20 July 2024


Dandori Battles in Pikmin 4 are slightly different to regular maps. The generator lists live in Maps/Madori/Ddb/ where there exist two sets of files: AP_{map}LVS_{type}.json and AP_{map}_{type}.json. The LVS files are for the title screen Dandori Battles.

Most of the spawns in Dandori Battles are driven by PopPlaceActors. These are hidden entities that spawn other entities. Similar to ActorSpawners. I haven't mapped out the bytes of them yet, but all pertinent configuration is in the ActorSerializeParameter.PopPlace.Static array. The ActorParameter and AI are always the same.

The second byte of PopPlace is the GroupId. This is how the game determines what the PopPlaceActor should spawn, and how. These groups are actually defined in Carrot4/Core/VS/Pop/SettingTable/{type}/DT_Pop_{type}{something}.uasset. An excerpt of one from Trial run (DDB_AI001):

{
  "コチャッピー_リポップ_積み木の下": { // "Kochappi_Repop_Under the building blocks"
    "StartTime": 0.0,
    "EndTime": 240.0,
    "IntervalType": "EVsPopIntervalType::Always",
    "Interval": 40.0,
    "IntervalJitter": 5.0,
    "TargetGroupIds": [
      2
    ],
    "MaxPopObjectNum": 2,
    "MaxPopObjectJitterNum": 0,
    "PopObjectList": [],
    "GenerateClassArray": [
      {
        "ObjectName": "BlueprintGeneratedClass'GKochappy_C'",
        "ObjectPath": "/Game/Carrot4/Placeables/Teki/GKochappy.0"
      }
    ],
    "bIsExcludeSystemPopLimit": false,
    "bIsForcePopBuriedPoint": false
  }
}

Which defines Group ID 2 to spawn at most 2 kochappies every (40 ±5) seconds from the start of the battle. However this means DDB spawns are linked to DataTable files, and not just the actors in the AGL.

Presently, the UassetEncoder mangles the GenerateClassArray to something unhelpful:

{
  "GenerateClassArray": [
    -7902643105768047879
  ]
}

Meaning we can't edit and re-encode the files to add more/edit the groups for each Dandori Battle, currently leaving them as only editable by using regular entities, ActorSpawners, or the existing groups.