1var _____WB$wombat$assign$function_____=function(name){return (globalThis._wb_wombat && globalThis._wb_wombat.local_init && globalThis._wb_wombat.local_init(name))||globalThis[name];};if(!globalThis.__WB_pmw){globalThis.__WB_pmw=function(obj){this.__WB_source=obj;return this;}}{ 2let window = _____WB$wombat$assign$function_____("window"); 3let self = _____WB$wombat$assign$function_____("self"); 4let document = _____WB$wombat$assign$function_____("document"); 5let location = _____WB$wombat$assign$function_____("location"); 6let top = _____WB$wombat$assign$function_____("top"); 7let parent = _____WB$wombat$assign$function_____("parent"); 8let frames = _____WB$wombat$assign$function_____("frames"); 9let opener = _____WB$wombat$assign$function_____("opener"); 10"use strict";(self.webpackChunk_motion_canvas_docs=self.webpackChunk_motion_canvas_docs||[]).push([[6515],{876:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(2784);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,f=m["".concat(l,".").concat(d)]||m[d]||p[d]||i;return r?n.createElement(f,o(o({ref:t},u),{},{components:r})):n.createElement(f,o({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:a,o[1]=s;for(var c=2;c<i;c++)o[c]=r[c];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},3851:(e,t,r)=>{r.d(t,{Z:()=>m});var n=r(7896),a=r(2784),i=r(6277),o=r(1077),s=r(7683),l=r(9817);const c="anchorWithStickyNavbar_fF9Z",u="anchorWithHideOnScrollNavbar_Yh18";function m(e){let{as:t,id:r,...m}=e;const{navbar:{hideOnScroll:p}}=(0,s.L)();if("h1"===t||!r)return a.createElement(t,(0,n.Z)({},m,{id:void 0}));const d=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:r});return a.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",p?u:c,m.className),id:r}),m.children,a.createElement(l.Z,{className:"hash-link",to:`#${r}`,"aria-label":d,title:d},"\u200b"))}},6030:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(4627),a=r(2784);function i(e){let{name:t}=e;return a.createElement("a",{className:n.Z.contributor,title:t,href:`http://web.archive.org/web/20230317133942/https://github.com/${t}`,target:"_blank"},a.createElement("img",{loading:"lazy",src:`http://web.archive.org/web/20230317133942/https://github.com/${t}.png`,width:20,height:20,alt:`${t}'s avatar`}))}var o=r(7644);function s(e){let{user:t,pr:r,children:s}=e;return a.createElement("li",{className:n.Z.element},a.createElement(i,{name:t}),s,r&&a.createElement(o.Z,{id:r}))}},6139:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(2784),a=r(4627),i=r(3851);const o={feat:"New features \ud83c\udf89",fix:"Fixed bugs \ud83d\udc1b"},s={feat:"new-features",fix:"fixed-bugs"};function l(e){let{type:t,children:r}=e;return n.createElement(n.Fragment,null,n.createElement(i.Z,{id:s[t],as:"h3"},o[t]),n.createElement("ul",{className:a.Z.group},r))}},7644:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(2784),a=r(4627);function i(e){let{id:t}=e;return n.createElement("a",{className:a.Z.pr,title:`Pull request #${t}`,href:`http://web.archive.org/web/20230317133942/https://github.com/motion-canvas/motion-canvas/pull/${t}`,target:"_blank"},n.createElement("small",null,"#",t))}},7626:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>m,contentTitle:()=>c,default:()=>f,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var n=r(7896),a=(r(2784),r(876)),i=r(6139),o=r(6030),s=r(9817);
10const l={slug:"version-3.0.0",title:"Motion Canvas v3.0.0",authors:"aarthificial"},c=void 0,u={permalink:"/blog/version-3.0.0",editUrl:"http://web.archive.org/web/20230317133942/https://github.com/motion-canvas/motion-canvas/blob/main/packages/docs/blog/2023-02-27-version-3.0.0.mdx",source:"@site/blog/2023-02-27-version-3.0.0.mdx",title:"Motion Canvas v3.0.0",description:"Check out the Migration Guide for instructions on",date:"2023-02-27T00:00:00.000Z",formattedDate:"February 27, 2023",tags:[],readingTime:1.045,hasTruncateMarker:!1,authors:[{name:"Jacob",title:"Motion Canvas Creator",url:"http://web.archive.org/web/20230317133942/https://twitter.com/aarthificial",imageURL:"http://web.archive.org/web/20230317133942/https://github.com/aarthificial.png",key:"aarthificial"}],frontMatter:{slug:"version-3.0.0",title:"Motion Canvas v3.0.0",authors:"aarthificial"},prevItem:{title:"Motion Canvas v3.1.0",permalink:"/blog/version-3.1.0"},nextItem:{title:"Motion Canvas v2.6.0",permalink:"/blog/version-2.6.0"}},m={authorsImageUrls:[void 0]},p=[],d={toc:p};function f(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Check out the ",(0,a.kt)("a",{parentName:"p",href:"/docs/migrating-to-3.0.0"},"Migration Guide")," for instructions on\nhow to update your project.")),(0,a.kt)(i.Z,{type:"feat",mdxType:"IssueGroup"},(0,a.kt)(o.Z,{user:"aarthificial",pr:402,mdxType:"Issue"},"New playback architecture:",(0,a.kt)("ul",{className:"margin-top--sm margin-bottom--sm"},(0,a.kt)("li",null,"Project settings are now stored in meta files."),(0,a.kt)("li",null,"Preview and rendering settings are configured separately."),(0,a.kt)("li",null,"The animation range is stored using seconds instead of frames."),(0,a.kt)("li",null,"You can adjust the audio offset by holding ",(0,a.kt)("code",null,"SHIFT")," and dragging the waveform left and right"),(0,a.kt)("li",null,"The rendering is not locked to the framerate, making the process a bit faster.")),"This change also opens the door to a lot of new features, including the"," ",(0,a.kt)(s.Z,{to:"http://web.archive.org/web/20230317133942/https://github.com/motion-canvas/motion-canvas/issues/213",mdxType:"Link"},"Presentation Mode"),", ",(0,a.kt)(s.Z,{to:"http://web.archive.org/web/20230317133942/https://github.com/motion-canvas/motion-canvas/issues/170",mdxType:"Link"},"Editable Signals")," and ",(0,a.kt)(s.Z,{to:"http://web.archive.org/web/20230317133942/https://github.com/motion-canvas/motion-canvas/issues/364",mdxType:"Link"},"Custom Exporters"),"."),(0,a.kt)(o.Z,{user:"ccaven",pr:421,mdxType:"Issue"},"Rendering settings include a quarter resolution (x0.25)."),(0,a.kt)(o.Z,{user:"mohsinhijazee",pr:404,mdxType:"Issue"},"New"," ",(0,a.kt)(s.Z,{to:"/api/2d/components/Layout#textDirection",mdxType:"Link"},(0,a.kt)("code",null,"textDirection"))," ","property for RTL/LTR text.")),(0,a.kt)(i.Z,{type:"fix",mdxType:"IssueGroup"},(0,a.kt)(o.Z,{user:"aarthificial",pr:437,mdxType:"Issue"},"Fix ",(0,a.kt)("code",null,"Vector2.exactlyEquals"),"."),(0,a.kt)(o.Z,{user:"aarthificial",pr:436,mdxType:"Issue"},"Render only within the range."),(0,a.kt)(o.Z,{user:"aarthificial",pr:433,mdxType:"Issue"},"Fix initial value of ",(0,a.kt)("code",null,"endOffset"),"."),(0,a.kt)(o.Z,{user:"aarthificial",pr:432,mdxType:"Issue"},"Correctly reset zoom."),(0,a.kt)(o.Z,{user:"aarthificial",pr:427,mdxType:"Issue"},"Fix performance issue with audio track."),(0,a.kt)(o.Z,{user:"aarthificial",pr:424,mdxType:"Issue"},"Clear semi-transparent backgrounds.")))}f.isMDXComponent=!0},4627:(e,t,r)=>{r.d(t,{Z:()=>n});const n={contributor:"contributor_Ndjr",pr:"pr_hMGy",group:"group_CvIc",element:"element_spNy"}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.