mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-26 19:47:44 +00:00
62 lines
3.4 KiB
Markdown
62 lines
3.4 KiB
Markdown
# Difficulty-dependent grind magnetism
|
|
|
|
Observed in assets/private/stock/skater-collections.json, physics_mode:
|
|
|
|
| Mode | GrindLockDist bits | Metres |
|
|
| --- | --- | --- |
|
|
| easy | 3FACCCCD | 1.35 |
|
|
| normal | 3F666666 | 0.9 |
|
|
| hardcore | 3E19999A | 0.15 |
|
|
|
|
The field is native physics_mode+80. The live SelectorInput already receives
|
|
this field when the active difficulty changes. AirTrajectoryRuntime now queries
|
|
the authored spline primitives and the selected result retains the accepted
|
|
primitive and angular reference directions through KnownAir entry.
|
|
|
|
Observed TU3 path: ScoreTrajectories82D68FE8 attempts82D69C00 on the first-pass
|
|
middle trajectory. Its actual spline query uses bounds around the natural landing
|
|
point: [-2,-.5,-2] to [2,4,2].82D6A840 retries ranked candidates and applies
|
|
physics_mode80 together with speed, ledge-side, tip and angle restrictions.
|
|
82D68C80 publishes9653 when the accepted middle trajectory wins, suppressing the
|
|
ordinary normal-delta second pass. Merely changing the score or allowing the
|
|
query is insufficient to connect the airborne adjustment owner.
|
|
|
|
KnownAir Enter82D352D0 passes the primitive endpoints and complete investigation
|
|
record to Start82D34FE8. The latter resets translation/rotation histories and
|
|
calls82D72B40 to build seven contact choices from stock deck/grind-air settings.
|
|
ProcessData82BDCFB0 calls82D712E0 and applies its pose result.82D712E0 owns the
|
|
projection82D71430, five-point crossing82D721A0, contact choice82D723D0,
|
|
translation82D72610 and rotation82D72810 stages. The stock correction limits
|
|
include MaxOffsetDist=.2m and MaxOffsetDeltaPerFrame=.03m; these are distinct
|
|
from the difficulty-dependent initial capture distance.
|
|
|
|
Native source identity: TU3 default_82000000_011B0000.bin SHA256
|
|
f4aa113eb541bfba03dbc108cf5ab43f58c965b20fa3b82f9c40938a0ad841c4.
|
|
Instruction extracts are in local logs/biped-*.txt.
|
|
|
|
## Live integration
|
|
|
|
The centre-trajectory query supplies ranking, admission, trajectory displacement
|
|
and the landing normal. Alternative candidates reuse its actual edge collection
|
|
for the distance penalty; they do not issue independent replacement queries.
|
|
The selector retains the accepted middle target and skips its normal-delta
|
|
second pass exactly at that handoff. The current processed COM and board position,
|
|
predicted collision velocity and active difficulty feed the admission checks.
|
|
|
|
KnownAir starts the retained GrindAir owner and activates it at the original
|
|
apex/remaining-frame boundary. It predicts the physical deck's rotation and
|
|
translation, intersects five deck/truck points with the rail plane, chooses from
|
|
seven native contact choices, and integrates bounded translation and angular
|
|
corrections. ProcessData publishes the unadjusted board orientation flag before
|
|
this decision. The result refreshes the existing board/IK offset owner; ordinary
|
|
exit deactivates the owner and preserves the native offset decay.
|
|
|
|
`GRIND_ASSIST` log entries record accepted capture distance, miss distance,
|
|
predicted contact time, primitive owner and correction. These are passive output
|
|
from the user's play session; no scripted inputs are sent.
|
|
|
|
Status: implemented and compiled, ready for the user's gameplay test. No tests
|
|
or reference process were run, as requested. The equations and constants were
|
|
translated from static TU3 source; matched retail replay/bitwise parity has not
|
|
been established. The current world adapter supplies static spline primitives.
|