Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Wind Waker: Link now appears in cutscenes (Neat!!) (#732)
* Created empty d_a_py_lk actor * Load d_a_py_lk on demo start (most of them expect it to be loaded)) * Basic body rendering * Eyes now render in front of hair, but with correct scene depth This is based off of the logic from Jasper's E4_WWZAT_b2 branch. Currently, we must manually set the translucency to false for the first eye alpha mask. When it's true (as it is in the BMD) noclip will always render it after the rest of the opaque body. I suspect something is not quite lining up with the game regarding how we're handling translucency sorting... * Link uses custom setDemoData function Basic translation and rotation is working * JStudio: Add JSGDebugGetAnimationName and hook it up to d_a_py_lk For easier debugging of which animations get played during demos * Basic link animation support - The animation data table is extracted from the original object file - This maps animation IDs to a BCK/BTP IDs * Link responds to animation mode 512 in demos This covers most cases where Link is standing still and playing a simple animation. For instance, sleeping, scratching his head, etc. * Add basic texture animation support Link now has facial animations in the Awaken demo * Fix Link's eyes rendering in front of everything A leftover debug typo * Set Link's clothes using the demo actor ShapeID * Link can wear casual clothes! The cutscene is able to set this by using ShapeID * Fix links eye masking textures not animating The eyes would animate, but the masks would not, clipping some of the eyebrows in some cases (and removing the alpha blending) * Snap link to the ground * Load the Link arcs and create his actor when creating a demo scene Almost all the demos expect the actor to be available * Update LinkDemoMode enum with better values * Root motion from translations is now applied to position * Link's root position moves when an anim moves his feet. He can walk! * Adjust movement speed based on ground angle * Reorder logic in execute() to match the game. Fix initial state of posMoveFromFootPos() * Fix up ground clamping behavior Link now snaps to the ground when walking/dashing. When in the tool demo mode (position data coming straight from the STB file), ground snapping is handled as expected based on the animation mode. * Add "Stolen Sister" to list of available demo scenes * Cleanup * Remove unused enum values so they don't add a billion lines * Use proper parameters for default Link wait animation * Fix up Title Screen to use Link's casual clothes * Fix first rendered frame of a new tool animation using the old anim. The model Ank1 wasn't being set until animBck.entry() was called in Draw. It needs to happen before model.calc() is called. * Link handles btk (uv) demo animations. His pupils now contract when surpised. * Link can equip his sword. Equips based on demo events. * Spawn link at the origin, rather than an arbitrary position * Fix typo 'gdnChk` * Add small todo * Update comments around eye translucency settings * Use modeProcInit/modeProcExec() helpers * Warn on unsupported demo modes (only once) * Move Link arc loading to the d_a_py_lk actor * Use `Math.hypot()` * Use `frameCtrl.SetFrame/GetFrame()` * Use LinkDemoMode enum instead of int * Fix velocity y/z swap * Use const enum if not using enum stringification * Start an LkJoint enum for commonly accessed joints * Use `===` and `!==` in the Link and Aryll actors --------- Co-authored-by: Jasper St. Pierre <[email protected]>
- Loading branch information