v2.0.0
版本发布时间: 2023-02-04 21:18:00
motion-canvas/motion-canvas最新发布版本:v3.17.1(2024-08-18 01:07:25)
2.0.0 (2023-02-04)
Bug Fixes
- 2d: add missing shape export (#111) (02a1fa7)
- 2d: fix import order (#94) (bcc0bcf), closes #76
- 2d: fix Line overview crashing (#142) (6bd5fd9)
- 2d: some signal setters not returning owners (#143) (09ab7f9)
- 2d: switch iframes to ShadowDOM (#90) (86176be)
- add missing Arrow setters (#82) (49843c9)
- add missing canvas package (26c8f4f)
- add missing public path (#40) (48213de)
- add monospace font fallback in case JetBrains Mono is missing (#24) (276a310), closes #16
- bug with createEaseInOutBack in interpolationFunctions.ts (#69) (2b95876)
- change executable file permissions (#38) (23025a2)
- code will trigger PrismJS such that JSX is correctly highlighted (#20) (b323231), closes #17
- core: add missing type references (#41) (325c244)
- core: keep falsy values with deepTween (#45) (93c934f)
- create missing output directories (#13) (17f1e3f), closes #4
- create: fix package type (#40) (f07aa5d)
- detect missing meta files (#83) (d1e2193), closes #79
- display newlines in Code correctly (#38) (df8f390)
- docs: fix a typo (#55) (2691148)
- docs: fix broken links (#105) (f79427d)
- docs: fix links to examples (#106) (d445b56)
- docs: fix small typo (#107) (fe6cbb0)
- docs: improve predicate type (#148) (3abee4f)
- docs: name collisions between members (#117) (1e52b94)
- docs: small corrections (#108) (9212343)
- empty time events crashing (a1c53de)
- fix docs workflow (#102) (f591169)
- fix docs workflow (#103) (b9e2006)
- fix docs workflow (#104) (7e59a1a)
- fix hot reload (#26) (2ad746e)
- fix meta file version and timing (#32) (a369610)
- fix player state not being saved (#85) (74b54b9)
- fix scaffolding (#93) (95c55ed)
- fix tsdoc comments (#21) (4b6cb66), closes #18
- legacy: add missing files (#61) (fad87d5)
- load project state correctly (#27) (8ae0233)
- make panes scrollable (#14) (dc9fd38)
- marked index.mjs as executable such that the cli will run on linux (#47) (722d5eb), closes #46
- MeshBoneMaterial opacity (24db561)
- pre-commit hook will now work on linux and mac (#51) (ef80035)
- prevent scrolling timeline with arrow keys (#4) (dfc8108)
- previous scene being rendered twice (#97) (90205bd)
- previous scene invisible when seeking (65e32f0)
- previous scenes not getting disposed (bf3a1fc)
- range middle-click expansion (1c0b724)
- re-render the scene when canvas changes (#55) (191f96d)
- remove inconsistency in playhead controls (#1) (58cdb4a)
- respect child origins in LinearLayout (5ee114d)
- restrict the corner radius of a rectangle (#9) (cc86a4a), closes #8
- save time events only if they're actively used (#35) (bd78c89), closes #33 #34
- save timeline state (9d57b8a)
- support hmr when navigating (370ea16)
- support nested threads (#84) (4a4a95f)
- the resolution fields in Rendering no longer reset each other (#73) (ddabec5)
- timeline will no longer seek when scrolling using the scrollbar (#19) (c1b1680)
- ui: don't seek when editing time events (#26) (524c200)
- ui: downgrade preact (#1) (5f7456f)
- ui: misaligned overlay (#127) (0379730)
- ui: prevent context menu in viewport (#123) (0fdd85e)
- ui: prevent timeline scroll when zooming (#162) (b8278ae)
- use correct scene sizes (#146) (f279638)
Code Refactoring
- remove legacy package (6a84120)
Features
- 2d: add methods for rearranging children (#81) (63f6c1a)
- 2d: add option for preformatted text (#147) (989be53)
- 2d: code selection and modification (#163) (e8e884a)
- 2d: construct lines using signals (#133) (2968a24)
- 2d: improve property declarations (27e7d26)
- 2d: improve Rect corner radius (#120) (b471fe0)
- 2d: simplify layout prop (c24cb12)
- 2d: unify desired sizes (#118) (401a799)
- add advanced caching (#69) (2a644c9)
- add base class for shapes (#67) (d38c172)
- add basic documentation structure (#10) (1e46433), closes #2
- add basic logger (#88) (3d82e86), closes #17
- add basic transform to Node class (#83) (9e114c8)
- add cloning (#80) (47d7a0f)
- add CodeBlock component based on code-fns to 2D (#78) (ad346f1)
- add default renderer (#63) (9255490), closes #56 #58
- add deprecation support (#130) (da0e104)
- add docs to monorepo (#22) (129d557)
- add E2E testing (#101) (6398c54), closes #42
- add ease back interp functions (#30) (c11046d)
- add eslint (658f468)
- add Grid node (e1f83da)
- add inspection (#82) (4d7f2ae)
- add layered layout (381b2c0)
- add LayoutText (328b7b7)
- add markdown logs (#138) (e42447a)
- add meta files (#28) (e29f7d0), closes #7
- add missing layout props (#72) (f808a56)
- add node spawners (#149) (da18a4e)
- add polyline (#84) (4ceaf84)
- add pull request verification (d91bab5)
- add random number generator (#116) (d505312), closes #14
- add rendering again (#43) (c10d3db)
- add reparent helper (80b95a9)
- add scaffolding package (#36) (266a561), closes #30
- add support for meta files (#11) (456790a)
- add support for npm workspaces (741567f)
- add Text and Image components (#70) (85c7dcd)
- add video node (#86) (f4aa654)
- added color space option to Project and Player (#89) (e1e2ac4), closes #80
- added Color Space option to Rendering panel (#24) (33f691d)
- added custom resolution inputs to the rendering pane (#20) (1f799b6)
- added deepTween function and rewrote colorTween to use colorjs.io (#88) (eb7ca3c), closes #73 #78
- added file type and quality options to rendering panel (#50) (bee71ef), closes #24
- added useContext and useContextAfter hooks (#63) (352e131), closes #58
- animation player (#92) (8155118)
- AnimationClip (681146a)
- arc tween ratio (27dbb0b)
- audio offset (88f40aa)
- audio playback (e9a6fdb)
- audio toggle control (300f18e)
- audio waveform track (9aff955)
- better dependencies between packages (#152) (a0a37b3)
- better dependencies between packages (#153) (59a73d4)
- better naming conventions (#62) (a9d764f)
- better playback controls (796ae33)
- better time events (8c2bf27)
- better time events (1acd71b)
- blob rendering (4dff949)
- browser based renderer (13dc24c)
- circular mask for surfaces (4db62d8)
- clamp function (94543d1)
- color picker (ac48055)
- configurable framerate and resolution (a715f5c)
- configurable framerate and resolution (a591683)
- connections (49254fc)
- core: add configurable line numbers (#44) (831334c), closes #12
- core: switch to vitest (#99) (762eeb0), closes #48
- create new release (20282e9)
- custom loaders (5a3ab9a)
- decouple Konva from core (#54) (02b5c75), closes #49 #31
- detect circular signal dependencies (#129) (6fcdb41)
- directional padding and margin (441d121)
- display time in seconds (0290a9c)
- docs: add logo (#23) (78698e4)
- docs: add migration guide for v10 (#37) (0905daa)
- docs: visual changes (be83edf)
- editor improvements (#121) (e8b32ce)
- extract konva to separate package (#60) (4ecad3c)
- filter reordering (#119) (2398d0f)
- follow utility (fddfc67)
- force rendering to restart seek time (#14) (e94027a), closes #6
- framerate-independent timing (#64) (6891f59), closes #57
- function components (178db3d)
- general improvements (320cced)
- general improvements (dbff3cc)
- grid (d201a4d)
- grid and debug overlays (895a53a)
- grid overlay (f7aca18)
- implement absolute scale setter (842079a)
- implement properties tab (#10) (e882a7f)
- improve async signals (#156) (db27b9d)
- improve layouts (9a1fb5c)
- improve surface clipping (#41) (003b7d5)
- introduce basic caching (#68) (6420d36)
- jsx (3a633e8)
- keyboard shortcuts (4a3a7b5)
- layouts (749f929)
- loading indication (93638d5)
- make exporting concurrent (4f9ef8d)
- make scenes independent of names (#53) (417617e), closes #25
- make surfaces transparent by default (#42) (cd71285), closes #25
- mask animation (5771963)
- merge properties and signals (#124) (da3ba83)
- minor console improvements (#145) (3e32e73)
- minor improvements (403c7c2)
- minor improvements (#77) (7c6e584)
- move back playhead by a frame (#18) (b944cd7)
- navigate to scene and node source (#144) (86d495d)
- new animator (#91) (d85f2f8)
- open time events in editor (#87) (74b781d)
- package separation (e69a566)
- pan with shift and left click (#7) (4ff8241), closes #5
- playback controls (94dab5d)
- player: add auto mode (c107259)
- player: improve accessibility (0fc9235)
- Promise support (711f793)
- remove strongly-typed-events (#48) (41947b5)
- remove ui elements (8e5c288)
- renderer ui (8a4e5d3)
- rendering (60ccda7)
- replaced
scene.transition
withuseTransition
(#68) (f521115), closes #56 - scene transitions (d45f1d3)
- sidebar (d5345ba)
- signal error handling (#89) (472ac65)
- simplify size access (#65) (3315e64)
- simplify size access further (#66) (9091a5e)
- simplify the process of importing images (#39) (0c2341f), closes #19
- sprites and threading (a541682)
- support for multiple projects (#57) (573752d), closes #141414
- support lower framerate (3c81086)
- support multiple players (#128) (24f75cf)
- surfaceFrom animation (77bb69e)
- surfaces (99f9e96)
- switch to monorepo (6c8d190), closes #23 #86 #49
- switch to signals (#64) (d22d237)
- switch to Vite (#28) (65b9133), closes #141414 #13
- threading (e9f6b2a)
- three.js integration (79cc975)
- time events (f47cc66)
- time events (026a284)
- time parameter for tweens (3fe90ed)
- timeline range (ed2d78d)
- timeline tracks (93a89cd)
- turn Layout into node (#75) (cdf8dc0)
- ui: timeline overhaul (#47) (4232a60), closes #20
- ui: visual changes (#96) (3d599f4)
- unify core types (#71) (9c5853d)
- unify references and signals (#137) (063aede)
- update core to 6.0.0 (#17) (f8d453b)
- use Web Audio API for waveform generation (817e244)
- use Web Audio API for waveform generation (ba3e16f)
- useAnimator utility (ad32e8a)
- viewport, playback, and timeline (c5f9636)
- vite-plugin: improve audio handling (#154) (482f144)
- waveform data (400a756)
Reverts
- "ci(release): 9.1.3 [skip ci]" (62953a6)
- chore(release): 1.4.0 [skip ci] (d6121ae)
- ci(release): 1.0.1 [skip ci] (#175) (161a046)
- ci(release): 2.0.0 [skip ci] (#176) (551096b)
BREAKING CHANGES
- remove legacy package
- change names of timing and interpolation functions
TweenFunction
is now called InterpolationFunction
.
Individual functions are now called [type]Lerp
instead of [type]Tween
.
For instance: colorTween
is now colorLerp
.
InterpolationFunction
is now called TimingFunction
.
This name is better aligned with the CSS spec.
- change to import paths
See the migration guide for more info.
- change the way scenes are imported
Scene files no longer need to follow the pattern: [name].scene.tsx
.
When importing scenes in the project file, a dedicated ?scene
query param should be used:
import example from './scenes/example?scene';
export default new Project({
name: 'project',
scenes: [example],
});
- change the overall structure of a project
vite
and @motion-canvas/vite-plugin
packages are now required to build a project:
npm i -D vite @motion-canvas/vite-plugin
The following vite.config.ts
file needs to be created in the root of the project:
import {defineConfig} from 'vite';
import motionCanvas from '@motion-canvas/vite-plugin';
export default defineConfig({
plugins: [motionCanvas()],
});
Types exposed by Motion Canvas are no longer global.
An additional motion-canvas.d.ts
file needs to be created in the src
directory:
/// <reference types="@motion-canvas/core/project" />
Finally, the bootstrap
function no longer exists.
Project files should export an instance of the Project
class instead:
import {Project} from '@motion-canvas/core/lib';
import example from './scenes/example.scene';
export default new Project({
name: 'project',
scenes: [example],
// same options as in bootstrap() are available:
* Animator.inferTweenFunction now returns deepTween,
which does not work exactly as before, though should be a viable
replacement in most cases.
* `scene.transition()` has been replaced by `useTransition`
Any use of slide transition must be updated from
```ts
yield* scene.transition(slideTransition());
to
yield* slideTranstion();
Any transitions must be rewritten to utilize useTransition
.
- Konva patches are not imported by default
Projects using KonvaScene
s should import the patches manually at the very top of the file project:
import '@motion-canvas/core/lib/patches'
// ...
bootstrap(...);
getset
import path has changed:
import {getset} from '@motion-canvas/core/lib/decorators/getset';
- change the type exported by scene files
Scene files need to export a special SceneDescription
object instead of a simple generator function.
- change event naming convention
The names of all public events now use the following pattern: "on[WhatHappened]". Example: "onValueChanged".
- change how images are imported
By default, importing images will now return their urls instead of a SpriteData object.
This behavior can be adjusted using the ?img
and ?anim
queries.
- change time events API
-
waitFor
andwaitUntil
were moved
They should be imported from @motion-canvas/core/lib/flow
.