Repository navigation
This release adds four extensions that fine-tune a shot: CameraOffset, Recomposer, FollowZoom and Confiner.
It also adds orthographic cameras: Klipp drives them like perspective ones, and every piece that frames on screen works with them.
And a SequencerCamera can now be stepped through like a slideshow.
✨ New Features
CameraOffset- moves the camera in its own space after the Body and Aim, for off-center shots like an over-the-shoulder view.Recomposer- turns, rolls and zooms the finished shot, on top of what the Body and Aim do.FollowZoom- changes the field of view to keep a target the same size on screen, for a dolly zoom.Confiner- keeps the camera inside a box or a sphere.- Orthographic cameras -
KlippThreeand<Klipp>drive anOrthographicCameratoo. Each virtual camera has its ownorthographicSize, set withLensand blended likefov, and every piece that frames on screen works with it. - Navigation in
SequencerCamera-next(),previous()andgoTo(index)jump to another step andrestart()cuts back to the first one.pausedkeeps holding the current step. targetOffsetinPositionComposer- frames a point offset from the target in its own space, like a head instead of the feet, the same way as inRotationComposer.applyAfteron an Extension picks when it runs:'start'before the Body, for the lens the Body and Aim frame with, or'body'right after the Body, for what depends on where the Body put the camera, like a limit on where it can go.
🐛 Bug Fixes
- Extensions and Noise no longer build up in a damped Body or Aim. With damping on
HardLockToTarget,PositionComposerorRotationComposer, the shake fromBasicMultiChannelPerlinand the kicks fromImpulseListenerfed back into the damping on the next frame and grew many times over. They now stay the size you set. RotationComposerandPositionComposerframe with the field of view fromLensin the same frame, instead of the last frame's.- Removing an Extension or Noise removes its effect: removing
Lens, for example, takes the camera back to its own field of view instead of keeping the last one. - Swapping the camera
KlippThreeor<Klipp>drives, for example with drei'smakeDefault, gives the new camera the shot on the next frame. It used to wait until the shot changed, so a still shot never reached it. PositionComposer,RotationComposerandGroupFramingskip a frame whose lens has no view instead of breaking for good.SequencerCamerafinishes the blend into a step with aholdof0before moving on. It used to jump to the next step every few frames, so the camera never reached any of them.
What's Changed
- chore: update version to 0.16.0 by @kvvasuu in #126
- feat: CameraOffset, Recomposer, FollowZoom and Confiner extensions by @kvvasuu in #127
- Feat/position composer target offset by @kvvasuu in #128
- feat: support orthographic cameras by @kvvasuu in #129
- feat: add next, previous, goTo, restart and paused to SequencerCamera by @kvvasuu in #130
- feat: SequencerCamera navigation and a car showcase by @kvvasuu in #131
- docs: serve the showcase at the site root and the examples at /examples/ by @kvvasuu in #132
Full Changelog: v0.15.0...v0.16.0