Ground the soldier-role rocket launcher viewmodel with visible hands and arms
PM Pull request #15 needs review. The fresh verification workspace could not be prepared. · 16d
Idea by John
PM Pull request #15 needs review. The fresh verification workspace could not be prepared. · 16d
Idea by John
Playtester John says the first-person rocket launcher on the soldier-role ("boomer") class looks like it's floating in front of the camera, as if no one is holding it. Fix the first-person viewmodel so the launcher looks held. Add simple procedural cartoon hands and forearms in team colors that grip it. Move it to a shoulder-mounted spot at the lower right, running off the screen edge, so it doesn't float in the middle of the view. Add light movement bob and a recoil kick when firing so it feels attached to the player. Rocket behavior and tuning, the Lab Rodeo Rocket, other classes' viewmodels and the third-person model stay as they are. All art stays procedural.
The rocket launcher is kind of floating in space in front of the boomer screen. It doesn't look like anyone's holding it.
Good catch. A launcher with nobody holding it looks wrong. I'll add procedural cartoon hands and forearms in your team color, put the launcher on the shoulder at the lower right running off the screen edge, and give it a little bob when you move and a kick when you fire. Only the soldier-role viewmodel is changing. How it shoots stays the same. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.
Implemented in pull request #15. The project build and tests passed in the isolated workspace. I fixed the Boomer's first-person rocket launcher. It's now held in both hands and sits on the shoulder at the lower right instead of floating mid-view. The build passes, `npm test` passes (228 tests in 15 files, 4 of them new), and the standalone external-asset check still passes. **What changed** (only `src/viewmodel.js`, plus a new `tests/viewmodel.test.js`) - **Hands and forearms:** two cartoon arms built in code, in team colours: bright gloves, slightly darker sleeves and dark rolled cuffs. They switch to red or blue when you change team. The right hand grips the pistol grip, with three chunky curled fingers and a thumb over the top. The left hand holds a new front grip under the tube, and both forearms run down and back off the screen. - **Shoulder mount:** the launcher sits low on the right and its rear runs off the bottom-right edge, with no visible end. I added a rear section, a padded shoulder rest, an exhaust bell, a trigger guard, hazard stripes and a team-tinted sight lens. On phones it's slightly smaller and higher so it sits better behind the touch controls. - **Motion:** a fuller walk bob with a slight roll, a faint idle sway, and a sharp kick back and up on each rocket that settles in about a third of a second. - **On top of the world:** the launcher is still drawn in its own pass over the scene, so it can't clip into walls. - **Unchanged:** the generic floating glove is hidden only for the Boomer. Every other class uses exactly the same placement code as before. Rocket fire rate, damage, rocket flight, the Rodeo Rocket and the third-person model are untouched. **Screenshots I reviewed** - **Before:** the tube hung mid-right with its open back facing the camera. - **First attempt:** too big, washed-out grey gloves, fingers that looked like stacked beads, and a heavy dark rear sleeve. I fixed all four. - **After:** the blue and red teams at rest; a held-trigger frame showing the full kick; a live shot where ammo dropped from 4 to 3 and the rocket left the muzzle toward the crosshair; a Dasher shot that looks the same as before; and mobile at 390×844. - **Cover:** saved as a red-team frame mid-shot, with the muzzle flash and kick showing. **Tests:** the new tests check that: - each hand's fingers and thumb are in team colour, and the colours follow a team change; - the generic glove is hidden only for the Boomer; - the muzzle sits at the lower right, the rear lands off screen and both grips are in frame; - walking makes it bob, and firing kicks it back and up before it settles; - the Dasher, Longshot, Rigger and Mender keep their old placement. **Limits:** - My reload screenshot didn't actually trigger a reload, so I haven't seen the arms during a reload. That motion is the same as before and the arms move with the launcher. - Bob is checked by the test, not by a still shot. - On phones the left forearm still runs up from the bottom centre, mostly behind the Jump button and Rocket Tube card. It reads as an arm holding the launcher, but a playtester may want it tucked further right. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.
Pull request #15 needs review. The fresh verification workspace could not be prepared.
Log in to add to the discussion.