{"id":2659,"date":"2018-05-08T16:48:32","date_gmt":"2018-05-08T16:48:32","guid":{"rendered":"http:\/\/ciraldo.stream\/uwm-vfx1\/?page_id=2659"},"modified":"2018-05-08T21:42:49","modified_gmt":"2018-05-08T21:42:49","slug":"intro-to-expressions","status":"publish","type":"page","link":"https:\/\/ciraldo.stream\/uwm-vfx1\/topics\/intro-to-expressions\/","title":{"rendered":"Intro to Expressions"},"content":{"rendered":"<h2><strong>Intro to Expressions<\/strong><\/h2>\n<p>&nbsp;<\/p>\n<p>So far we have seen that <strong>properties<\/strong> can be <strong>animated<\/strong> using <strong>keyframes.<\/strong> There is an additional way to animate properties called <strong>&#8220;expressions.&#8221;<\/strong><\/p>\n<h3><strong><em>&#8220;Abracadabra!&#8221;<\/em><\/strong><\/h3>\n<p>In After Effects, <strong>expressions<\/strong> are almost like little &#8220;recipes&#8221; or &#8220;spells&#8221; that can be attached to each individual\u00a0<strong>property<\/strong>\u00a0and executed on each frame. They look like <strong>text<\/strong> that has been typed into a small text area next to the property in the <strong>Timeline:<\/strong><\/p>\n<figure id=\"attachment_2662\" aria-describedby=\"caption-attachment-2662\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2662 size-full\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-12.28.28.png\" alt=\"\" width=\"597\" height=\"91\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-12.28.28.png 597w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-12.28.28-300x46.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><figcaption id=\"caption-attachment-2662\" class=\"wp-caption-text\">The <strong>Rotation<\/strong> property has an expression attached which <strong>divides its value in half<\/strong><\/figcaption><\/figure>\n<p>In the example above, the word <span style=\"font-family: 'courier new', courier, monospace;\"><strong>&#8220;value&#8221;<\/strong><\/span> is a special term which refers to the <strong>current value of a property.\u00a0<\/strong>The Rotation property was initially set to\u00a0<strong><span style=\"font-family: 'courier new', courier, monospace;\">&#8220;100&#8221;<\/span>,<\/strong>\u00a0and so <span style=\"font-family: 'courier new', courier, monospace;\"><strong>&#8220;value \/ 2&#8221;<\/strong><\/span> equals <span style=\"font-family: 'courier new', courier, monospace;\"><strong>&#8220;100 \/ 2&#8221;<\/strong><\/span>\u00a0which equals\u00a0<strong><span style=\"font-family: 'courier new', courier, monospace;\">&#8220;50&#8221;<\/span>.<\/strong><\/p>\n<p>Note that the value <span style=\"font-family: 'courier new', courier, monospace;\"><strong>&#8220;0x+50.0\u00b0&#8221;<\/strong><\/span> appears in <strong>red.<\/strong> This indicates that an expression has been applied. Also, the <strong>blue equals sign<\/strong> is a toggle for turning the expression <strong>on or off.<\/strong><\/p>\n<h3><strong>Turning on (aka enabling) expressions for a property<\/strong><\/h3>\n<p>Expressions are enabled for a property by <strong>option\/alt-clicking the stopwatch icon<\/strong> next to a property. Do the same thing to turn the expression off, or simply erase the text inside the text area.<\/p>\n<p>If you turn off the expressions for a property, all the text in the text area is lost, so hit <strong>undo\u00a0<\/strong>if you did that by accident. Sometimes simply toggling the blue equals sign is a nicer way to go, if you simply want to temporarily disable it.<\/p>\n<h3><strong>Properties values that are multiple numbers<\/strong><\/h3>\n<p>Some property values are simple,\u00a0<strong>single numbers,<\/strong> like <strong>Rotation<\/strong> or <strong>Opacity.<\/strong><\/p>\n<p>But some property values are <strong>combinations of numbers,<\/strong> like <strong>Scale<\/strong> (e.g., <span style=\"font-family: 'courier new', courier, monospace;\">&#8220;100%,111%&#8221;<\/span>) or <strong>Position<\/strong> (e.g., <span style=\"font-family: 'courier new', courier, monospace;\">&#8220;640.0,480.0&#8221;<\/span>). When typing out values that contain multiple numbers, use the following <strong>square-bracket syntax:<\/strong><\/p>\n<figure id=\"attachment_2669\" aria-describedby=\"caption-attachment-2669\" style=\"width: 594px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2669 size-full\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-13.04.07.png\" alt=\"\" width=\"594\" height=\"85\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-13.04.07.png 594w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-13.04.07-300x43.png 300w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><figcaption id=\"caption-attachment-2669\" class=\"wp-caption-text\">An expression attached to <strong>Position<\/strong> which sets the value to <strong>&#8220;120, 30&#8221;<\/strong><\/figcaption><\/figure>\n<h3><strong>Expressions on more than one line<\/strong><\/h3>\n<p>Some expressions take up <strong>more than one line<\/strong>. You can resize the expression area by click-dragging on the <strong>bottom border<\/strong> of the text area. You <strong>must separate multiple lines using a semicolon<\/strong> as shown below:<\/p>\n<figure id=\"attachment_2667\" aria-describedby=\"caption-attachment-2667\" style=\"width: 601px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2667 size-full\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-12.40.56.png\" alt=\"\" width=\"601\" height=\"96\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-12.40.56.png 601w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-12.40.56-300x48.png 300w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><figcaption id=\"caption-attachment-2667\" class=\"wp-caption-text\">A multi-line expression on the <strong>Scale<\/strong> property that <strong>cuts the width in half<\/strong> and <strong>adds 35% to the height<\/strong><\/figcaption><\/figure>\n<h3><strong>Storing intermediate values in variables<\/strong><\/h3>\n<p>During an expression, you can store intermediate values in things called <strong>variables.<\/strong> Variables are just <strong>words or phrases (without spaces)<\/strong> that you make up. (They also <strong>can&#8217;t start with a number,<\/strong> and there&#8217;s certain <strong>reserved keywords<\/strong>\u00a0like <span style=\"font-family: 'courier new', courier, monospace;\">&#8220;value&#8221;<\/span>\u00a0that are off limits, too.) The general pattern looks like this:<\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><span style=\"font-family: 'courier new', courier, monospace;\"><strong>variableName = something<\/strong><\/span><\/p>\n<p>That puts the value <strong>&#8220;something&#8221;<\/strong> into the variable <strong>&#8220;variableName&#8221;<\/strong>.<\/p>\n<p>Here&#8217;s some more concrete examples:<\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><span style=\"font-family: 'courier new', courier, monospace;\"><strong>temp1 = 10;<\/strong><\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace;\"><strong>myCoolVariableName = [96,205];<\/strong><\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace;\"><strong>spaceshipSize = myCoolVariableName;<\/strong><\/span><\/p>\n<p>When you need to refer to the individual numbers of a <strong>multi-number variable<\/strong> (like <b>myCoolVariableName<\/b> above) the square-bracket syntax looks like this:<\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><strong><span style=\"font-family: 'courier new', courier, monospace;\">myCoolVariableName[0]<\/span><\/strong><\/p>\n<p>which is equal to <strong><span style=\"font-family: 'courier new', courier, monospace;\">96<\/span>,<\/strong> or:<\/p>\n<p style=\"text-align: left; padding-left: 30px;\"><span style=\"font-family: 'courier new', courier, monospace;\"><strong>myCoolVariableName[1]<\/strong><\/span><\/p>\n<p>which is equal to <strong><span style=\"font-family: 'courier new', courier, monospace;\">205<\/span>. <\/strong>As you can see, inside the square-brackets, the positions of the individual values are <strong>numbered starting at<\/strong> <span style=\"font-family: 'courier new', courier, monospace;\"><strong>0<span style=\"font-family: georgia, palatino, serif;\">.\u00a0<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\"><span style=\"font-family: georgia, palatino, serif;\">Take another look at the <strong>multi-line expression example<\/strong> above to see this syntax in action as well.<\/span><\/span><\/p>\n<h3>Comments within expressions<\/h3>\n<p>Expression syntax is very precise, exacting, and not always intuitive. So sometimes it&#8217;s helpful to store little <strong>notes to yourself<\/strong> within the expression. These are called <strong>comments.<\/strong>\u00a0After Effects basically ignores anything inside a comment. You can start a <strong>one-line comment<\/strong> with double-forward-slashes (ie,<span style=\"font-family: 'courier new', courier, monospace;\"><strong> &#8216;\/\/&#8217;<\/strong><\/span>) or enclose <strong>multi-line comments<\/strong> with a <span style=\"font-family: 'courier new', courier, monospace;\"><strong>\/*<\/strong><\/span> and a <strong><span style=\"font-family: 'courier new', courier, monospace;\">*\/<\/span><\/strong> like this:<\/p>\n<figure id=\"attachment_2675\" aria-describedby=\"caption-attachment-2675\" style=\"width: 662px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2675 size-full\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-14.37.42.png\" alt=\"\" width=\"662\" height=\"123\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-14.37.42.png 662w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-14.37.42-300x56.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><figcaption id=\"caption-attachment-2675\" class=\"wp-caption-text\">Two kinds of comments<span style=\"font-size: 16px;\">\u00a0<\/span><\/figcaption><\/figure>\n<h3><strong>How After Effects evaluates the result of an expression<\/strong><\/h3>\n<p>On each frame, After Effects evaluates each line of an expression\u00a0from<strong> top to bottom,<\/strong> and then uses the <strong>result of the bottom-most line<\/strong> as the <strong>new value<\/strong> of the property. (In one-line expressions, the one line is the bottom-most line.)<\/p>\n<p>For illustration purposes, here&#8217;s a silly expression that has multiple lines for no reason:<\/p>\n<figure id=\"attachment_2681\" aria-describedby=\"caption-attachment-2681\" style=\"width: 627px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2681\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.05.51.png\" alt=\"\" width=\"627\" height=\"106\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.05.51.png 627w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.05.51-300x51.png 300w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><figcaption id=\"caption-attachment-2681\" class=\"wp-caption-text\">A pointless multi-line expression<\/figcaption><\/figure>\n<p>In the example above, AE evaluates each line from top to bottom, and then uses the bottom-most line as the value for the property. Since the bottom-most line has nothing to do with the lines above it and is simply <strong><span style=\"font-family: 'courier new', courier, monospace;\">&#8220;12&#8221;<\/span>,<\/strong> the property gets set to <strong><span style=\"font-family: 'courier new', courier, monospace;\">12<\/span>.<\/strong><\/p>\n<p>If you go back and look at the <strong>multi-line expression example<\/strong> above, you can see a less silly demonstration. In that example, the bottom-most line is <strong><span style=\"font-family: 'courier new', courier, monospace;\">[temp1,temp2]<\/span>,<\/strong> which AE will then use as the final value to assign to the <strong>Scale<\/strong> property.<\/p>\n<h3><strong>Keyframes and expressions combined<\/strong><\/h3>\n<p>Sometimes a property can have <strong>both keyframes and expressions<\/strong> enabled. On each frame, After Effects <strong>first<\/strong> evaluates the effect of the keyframes, and <strong>then<\/strong> applies the effect of the expression. Here&#8217;s an example of an property that is keyframed and has an expression enabled:<\/p>\n<figure id=\"attachment_2683\" aria-describedby=\"caption-attachment-2683\" style=\"width: 542px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2683\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.11.56.png\" alt=\"\" width=\"542\" height=\"84\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.11.56.png 542w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.11.56-300x46.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><figcaption id=\"caption-attachment-2683\" class=\"wp-caption-text\">A property with keyframes and expressions enabled<\/figcaption><\/figure>\n<p>In the example above, the\u00a0<strong>Blurriness\u00a0<\/strong>property is keyframed from <strong><span style=\"font-family: 'courier new', courier, monospace;\">0<\/span> <\/strong>to<strong> <span style=\"font-family: 'courier new', courier, monospace;\">10<\/span>.<\/strong> The current time is right in the middle of the keyframes, and so without any expression the value is <strong><span style=\"font-family: 'courier new', courier, monospace;\">5.0<\/span>.<\/strong> With the expression applied, the value becomes <strong><span style=\"font-family: 'courier new', courier, monospace;\">5.0 + 1<\/span>,<\/strong> or <span style=\"font-family: 'courier new', courier, monospace;\"><strong>6.0<\/strong><\/span> (seen in <strong>red<\/strong>).<\/p>\n<h3><strong>The expression language menu<\/strong><\/h3>\n<p>Since it can be tough to memorize all the precise ways to write expressions, After Effects provides a handy little menu that will plug in expression code for you. You access it by clicking on the little <strong>black triangle<\/strong> to the right of the <strong>blue equals sign:<\/strong><\/p>\n<figure id=\"attachment_2686\" aria-describedby=\"caption-attachment-2686\" style=\"width: 539px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2686\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.31.10.png\" alt=\"\" width=\"539\" height=\"341\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.31.10.png 539w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.31.10-300x190.png 300w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><figcaption id=\"caption-attachment-2686\" class=\"wp-caption-text\">The expression language menu<\/figcaption><\/figure>\n<p>The most commonly used expressions are under the <strong>Property<\/strong> submenu.\u00a0For example, to add a <strong>loopOut<\/strong> expression to a property, which loops the animation of a property&#8217;s keyframes, select <strong>Property &gt; loopOut(&#8230;):<\/strong><\/p>\n<figure id=\"attachment_2688\" aria-describedby=\"caption-attachment-2688\" style=\"width: 651px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2688\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.36.31.png\" alt=\"\" width=\"651\" height=\"66\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.36.31.png 651w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.36.31-300x30.png 300w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><figcaption id=\"caption-attachment-2688\" class=\"wp-caption-text\">After the loopOut shortcut has been applied<\/figcaption><\/figure>\n<h3>Referencing other properties, and the expression pick whip<\/h3>\n<p>In your expressions you can <strong>refer to the values of<\/strong> <strong>other properties.<\/strong><\/p>\n<p>Each property has a <strong>text name<\/strong>\u00a0for use in expressions that is somewhat reminiscent of the way street addresses work. (When you enable expressions for a property, you&#8217;ll first see the <strong>text name<\/strong> of that property.)<\/p>\n<p>In the example below, the <strong>Opacity<\/strong> of the <strong>Bat layer<\/strong> is tied to the <strong>Rotation<\/strong> of the <strong>Pop layer.<\/strong><\/p>\n<figure id=\"attachment_2689\" aria-describedby=\"caption-attachment-2689\" style=\"width: 632px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2689\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.44.22.png\" alt=\"\" width=\"632\" height=\"120\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.44.22.png 632w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.44.22-300x57.png 300w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><figcaption id=\"caption-attachment-2689\" class=\"wp-caption-text\">Whatever Pop&#8217;s <strong>Rotation<\/strong> is set to, Bat will use that as its <strong>Opacity<\/strong><\/figcaption><\/figure>\n<p><strong>But<\/strong> remembering the syntax of how other properties are written out is tough, so After Effects provides the <strong>expression pick whip<\/strong> to make your job easier. It&#8217;s the little <strong>spiral icon<\/strong>\u00a0(or snail?) to the left of the<strong> expression language menu.<\/strong><\/p>\n<p>To use it, first make sure the other property you&#8217;re trying to refer to is visible in the timeline. Then, with the text cursor inside the expression text area, <strong>click and drag<\/strong> on the <strong>expression pick whip<\/strong> to reveal the stretchy whip line. <strong>Drop the whip onto the other property.<\/strong> AE will insert the correct text name of the other property.<\/p>\n<p>This is how you can <strong>create relationships between properties<\/strong> that go above and beyond what parenting can do. For example, you can have a layer act as a <strong>master opacity controller<\/strong> for other layers, and only do keyframing on the master layer:<\/p>\n<figure id=\"attachment_2690\" aria-describedby=\"caption-attachment-2690\" style=\"width: 642px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2690\" src=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.57.26.png\" alt=\"\" width=\"642\" height=\"205\" srcset=\"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.57.26.png 642w, https:\/\/ciraldo.stream\/uwm-vfx1\/wp-content\/uploads\/2018\/05\/Screenshot-2018-05-08-15.57.26-300x96.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><figcaption id=\"caption-attachment-2690\" class=\"wp-caption-text\">A master layer with subordinate layers<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Intro to Expressions &nbsp; So far we have seen that properties can be animated using keyframes. There is an additional way to animate properties called &#8220;expressions.&#8221; &#8220;Abracadabra!&#8221; In After Effects, expressions are almost like little &#8220;recipes&#8221; or &#8220;spells&#8221; that can be attached to each individual\u00a0property\u00a0and executed on each frame. They look like text that has &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/ciraldo.stream\/uwm-vfx1\/topics\/intro-to-expressions\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Intro to Expressions&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1278,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2659","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/pages\/2659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/comments?post=2659"}],"version-history":[{"count":20,"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/pages\/2659\/revisions"}],"predecessor-version":[{"id":2691,"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/pages\/2659\/revisions\/2691"}],"up":[{"embeddable":true,"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/pages\/1278"}],"wp:attachment":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx1\/wp-json\/wp\/v2\/media?parent=2659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}