Share a Brain

Art Processing Sharing Blog

 

Share Your Studio Artist

Discoveries • Processes • Strategies

Time Particle Animation

Free running Studio Artist V5.5 paint synthesizer time particle animation. Time particles are a feature of the paint synthesizer that let your paint strokes have continuity over time in an animation.

I used a Transition Context to create an ever evolving source for painting derived off of 5 different Transition Context key-framed still images. So the source being painted is virtual.  It is always changing and evolving over time. 

This animation shows of the dynamic interaction of the 2 main components of digital painting, the laying down of colored 'stuff' on the canvas, and the application of dissipative forces that smear and manipulate it in some way. I'm using 2 different applications of the Smart Blur IpOp effect to do the dissipation.  One is adaptive smoothing based on the virtual source orientation.  The other is adaptively smoothing based on the orientation of what is already in the canvas. So the first introduces visual components of the virtual source into the painted canvas. The second adaptively smooths detail already in the canvas, essentially reinforcing it as a visual component of the overall canvas image as it adaptively. smooths it.  So there are 2 different dissipative forces battling it out as the animation progresses.

This approach to working with time particles is one way to build procedural paint animation.  By procedural we mean that the movement in the animation is computationally derived from algorithms that work based off of the individual parameter settings in the 2 Time Particle control panels in the paint synthesizer.  The computational model used by the paint synthesizer time particles is very similar to how it generates paint paths for normal painting.  The difference is that the movement plays out over time rather than just being associated with the drawing of an individual paint path on the canvas in a static image.

An alternative approach to building animation movement would be to use key-framing in the PASeq Timeline. Or to build a set of bezier paths and then configure the paint synthesizer to move path start locations derived off of the shape and positioning of the individual bezier paths.

If you are not interested in animation and only work with static 2D art image output in your work you can still view this whole approach as a way to build a single static 2D painted image through a recursive process that plays out over time.  I believe this approach to 2D painting can be very effective, and is worth exploring in depth.  very subtle changes in how you apply dissipative or contrast 'expansive' forces to the canvas in a recursive process like this can dramatically influence the overall appearance of the end result.

E-mail me when people leave their comments –

Comments

  • So how does one build an effect like this in Studio Artist.

    We will break this whole thing down in a series of successive posts within this thread.  The PASeq i used to generate this is pretty simple.  As are the individual components.  And we will build them all from scratch.

     

    Based on some recent comments on the user forum i get the sense that some beginning Studio Artist users think the program only offers factory presets, or even worse the program only lets you use pre-built paint action sequences, end of story.  Or that the user has no creative control over what happens in any individual effect.  Or that everything being done is just randomization of a fixed source image, end of story.  And all of that is a severe misconception of what the program is all about. 

    You have the ability as an artist to have extreme control over what happens in any given effect, if you so desire. Or you can bask in the glory of procedural algorithmic complexity.  The choice is really all yours to make as an individual artist.  People need to keep in mind that even though we offer over 20,000 different individual presets with the V5.5.5 release, they represent an infinitesimally small part of what one can generate visually with Studio Artist.  If you really want to take advantage of all that Studio Artist can offer you as an artist, you need to dive into learning how to program it.

    So i will now climb off of my soap box and dive into how to build the single paint preset used in the animation.  From scratch.

     

    We want to build a paint effect. So to start, we need to be in Paint Synthesizer Classic main Operation Mode.

    9814776898?profile=RESIZE_930x

    Fun fact: You can always use the main Operation menu as a way to get to any individual control panel in Studio Artist. So using the Operation menu would be an alternative way to get into the paint synthesizer to build a paint preset.

    9814798854?profile=RESIZE_930x

    In general, it is good practice to start from a know configuration when building a new paint preset.

    I like to start by initializing the paint synthesizer.

    You can do this by running the Initialize QuickEdit command.

    9814812879?profile=RESIZE_930x

    You can also do this by shift clicking the Init button located at the bottom of the paint synthesizer Editor.

    9814819676?profile=RESIZE_584x

    When you do either of those 2 approaches to initializing the paint synthesizer, you will get a default very generic tube of raster paint if you draw manually.

    9814822279?profile=RESIZE_930x

    If you look closely at the tube of raster paint, you will see that it is composed of individual raster paint nibs that are circular with soft edges.

    If you want to change the spacing the the individual circular paint nibs when a paint path is drawn, you can do so easily by adjusting the Spacing parameter in the Path Application control panel.

    9814825082?profile=RESIZE_930x

    If you want to adjust the size of the individual paint nibs used for the painting, there are some different options.  The actual maximum size of the source brush can be adjusted in the Brush Source control panel.

    9814826870?profile=RESIZE_930x

    The Initialize QuickEdit command sets up a default circular computational brush that is 32 by 32 pixels in size.  I used a 14x14 pixel size source brush in the animation example.

    That original master source brush size can be modulated in many different ways when painting. You can control that in the Brush Modulation control panel.

    9814830880?profile=RESIZE_930x

    Initialize defaults everything in Brush Modulation control panel to not do any brush modulation. For the animation i used the parameter settings shown in the screen shot above so that the brush size was modulated by the path length.  This editing modification dynamically changes the sizing of the brush as you paint in the path.

    9814831696?profile=RESIZE_930x

    The maximun path length value used for this path length based size modulation for manually drawn is specified in the Path Shape control panel.  For auto-drawn paint strokes, the actual full path length defined by the automatic path generation algorithm will be used as the maximum path length for the purposes of the size modulation.  

    If what i am saying here is unclear, you should experiment with it by manually drawing paint paths vs pressing the action button and letting them draw automatically.

     

    Now i did not use a raster paint effect in the animation.  I used a vector paint effect.

    To make that change i first went to the Vector Output control panel, and set it up as follows.

    9814841894?profile=RESIZE_930x

    Yes, there are a lot of different adjustable options in that control panel.

    When you first drop into it after running the Initialize command, it is going to look like this.

    9814843284?profile=RESIZE_930x

    You can see that the Main Render Option is Raster.

    So the first thing i did was switch it to Vector (solid color), and then a lot more vector render specific adjustable options came up in the control panel.

    9814850298?profile=RESIZE_930x

    I then changed the Vector Stroke Type from Bezier Path to Circular Region, and more adjustable controls associated with that Circular Region vector stroke type came up for display.

    9814853255?profile=RESIZE_930x

    I then changed the Bez Region Shadow from Off to Lip Extrusion Diffuse, and then all of the additional adjustable parameters options associated with the shadowing effect i selected came into view.  I then tweaked those additional shadowing parameters to get the behavior i wanted, which we will discuss in more detail below.

    The brush model we are using is very similar to the raster one we started with, in that the brush shape is a circular region.  But the circular region is vector, not raster. And we added a fairly sophisticated vector shadowing effect to it.

     

    At this point, the coloring of the main circular vector region paint nib and the whispy shadow fringe associated with it are very similar.  But the paint preset used in the animation has a much darker circular region while the whispy shadow fringe maintains the original source coloring for the location being painted.

    To do that, i went to the Paint Color Source control panel, and changed the Offset parameter to -55.  This darkened the circular paint nib while not darkening the whispy shadow fill.

    9814857270?profile=RESIZE_930x

    The negative offset darkened the color because the Start Option is set to Clip Luminance.  So the offset (positive or negative) specified is happening to the paint color luminance.

    If i changed the Start Option to use something else, like Analogous Mix, then the offset would be a hue offset to introduce the analogous coloring effect specified.  

    9814863260?profile=RESIZE_930x

    There are a lot of different Start Options available to choose from, so you have a lot of control over what is happening here with the Offset and associated Randomize settings.

     

    Now if you are familiar with how the Paint Color Source control panel works, you might be wondering the following. 

    Why didn't the whispy shadow fringe track the coloring offset we just specified?

    Very good question.  

    We are taking advantage of the capabilities of the Fixed Colors control panel.

    If you go back to the vector Output control panel and pay attention to how we have the shadow coloring setup, you will see the following.

    9814866659?profile=RESIZE_930x

    Note that i selected the Fixed Color 1 option for the Cast Shadow Color.  If i change that to just Color, now the cast shadow coloring is tracking the offset darkened color being generated in the Paint Color Source control panel.

    9814944852?profile=RESIZE_930x

    So how is Fixed Color 1 setup?  

    Why does it not track that darkening offset we specified?

    We need to go to the Fixed Colors control panel to see.

    9814869290?profile=RESIZE_930x

    I didn't change anything in here after running that Initialize command at the beginning, so these are the default settings.

    And we can see that Fixed Color 1 is set to track the Paint Src Color, which is what is coming into the paint synthesizer from the Source Area.

    That is specified by the FC 1: Color Source parameter.

    If i change that to be Paint Path Color, then Fixed Color 1 will track any changes made in both the Paint Color Source and Paint Color Modulate control panels.

    So if i did that, then the vector shadow coloring based on Fixed Color 1 would track the offset darkening we specified.

    Note that there is also a random Start Color setting of 30 for Fixed Color 1, so there will be some random variation from paint stroke to paint stroke for what is coming out of Fixed Color 1

     

    At this point we have the basic vector paint preset i used, minus the Time Particle part, and minus the localized scatter grouping behavior you see in the animation.

    We will cover how to make both of those editing changes in subsequent posts in this thread. 

  • Thanks for this. I want to learn how use this tool to create generative art over time from orginal souce images. In particual outputting to animation in a simlar fasshion like your example.  It wuld be great to have a Studio Artist Academy :-) When you are ready, sign me up! With such a complex tool, I imagine the possibilites are endless. 

     

  • Let's move on and discuss how to get started working with time particle animation.

    We'll be continuing to use the Initialize edited vector paint preset we built in the previous post.

    First, we need to go to the Path Start control panel and setup the number of time particles we want to work with.  For initial demonstration purposes, we will set that up for 10 time particles as shown below.

    9815154085?profile=RESIZE_930x

    When you first go there, it is probably going to be setup with 40000 for the Max Stroke setting.  It initializes to such a high value because the assumption is that you are going to press the action button, let it run for an appropriate time while watching what it is doing, and then press the space bar to stop it.  If you do that while recording the action into a Paint Action Sequence, then the number of paint strokes actually drawn is what will be recorded into the action step in the PASeq.

    I manually set it to 10. So if you press the action button, then 10 paint strokes will be drawn (before painting stops).

    9815156895?profile=RESIZE_930x

    The position of the different path start locations will be based on what the Generator is set to.  I have it set to Smooth Random 1.  This is not uniform random noise, but instead is what math people would refer to as Poisson noise.  Uniform random noise (the Clumpy Random option) is much more rough in appearance (it clumps more).

    There are a lot of different Generator options.  Many of them offer more advanced features associated with 'path start regionization' and are useful for special situations like generating photo mosaic imagery.  Others allow for embedding other Studio Artist operation modes like IpOp effects or the Vectorizer or MSG into the paint synthesizer.

    Most of the other controls in Path Start have to do with turning on different ways of inhibiting where path start locations can occur in the canvas.  You can filter based on the source luminance range, the source texture range, speciality things like facial feature detection, or not starting where you have already drawn on the canvas, or only in white or black areas, etc.

    The overall automatic drawing process involves first selecting a specific path start location in the canvas (Path Start), then generating the path itself (Path Shape and Path Angle), checking for any stop the path specifications (PathEnd), specifying how paint nibs are laid down along the path (Path Application), specifying how the path might be randomized or modulated (Path Randomization).

    The default path generation settings work off of the source orientation. So what was drawn above is tracking off of the local curvature in the source image.

     

    To turn my auto-generated paint strokes into time particles, all i have to do is go to the Tine Particles 1 control panel, and turn the On/Off parameter from Off to On-Normal.

    9815166074?profile=RESIZE_930x

    If i now erase the canvas, and then start loop action and let it run for a few cycles, i get something like the canvas shown below.

    9815168857?profile=RESIZE_930x

    You can see that 10 initial path start locations were selected and used for the first loop in the loop action run. Every subsequent painting loop after the first cycle is using a modified path start location based on some time particle movement associated with their previous location.  

    If you don't know how to run loop action, it is a menu option (Action : Run Loop Action).

    The movement of the individual time particles associated with the path start location may not be totally obvious to you, because 200 pixel long source orientation curved paths are being drawn off the moving path start time particles. If i change the Max Path Length in the Path Shape control panel to be 1,

    9815171453?profile=RESIZE_930x

    then only a single paint nib will be drawn for the path associated with the time particle, and what is going on with the time particle movement will be more obvious.

    9815171660?profile=RESIZE_930x

    You can see that every tine particle is tracking along a single line.  The orientation of that line is based on the source orientation when the time particle was first generated in the first loop action cycle.  the actual movement is defined by how the Time Parti les 2 control panel is configured.

    9815172079?profile=RESIZE_930x

    If i change the Path Type from Line to Curved, then i get the following after a few loop action cycles.

    9815177490?profile=RESIZE_930x

    I used the default Line option for path Type for my animation, so you will want to change that back, and also change the Max path length in path Shape back to 200.

    if i do that, and then change the Shape Track option in the Time Particle 1 control panel from Off to Initial, then the first path shape generated in the initial loop action cycle will be stored in the time particle and used for every subsequent loop action, and i get something like below.

    9815217890?profile=RESIZE_930x

     

    At this point you have a basic idea about how to build time particle effects in the paint synthesizer.

     

     

    In the next post in the thread, i'll show how i put together the 'center-clustered' time particle paint behavior you see in the animation.  It doesn't really have anything to do with the time particle controls, it's all about modifying a few paint synthesizer parameters to change the visual appearance of the pait paths being auto-generated.

     

     

     

     

     

     

  • The actual auto-draw paint behavior going on in the animation example is based on this concept of localized polar directionality. So you mouse down and then as you move the mouse around you get auto-drawn paint strokes that radiate out from the initial center point you specified from your initial mouse down location.

    9815250466?profile=RESIZE_930x

    Let's run through how i modified the vector paint preset we've been working on to have this kind of special auto-draw behavior.

    First, i used a different Pen Mode.  We've been using the default Interactive Pen option for the Pen mode so far.  I switched it to Autodraw Interactive.

    9815251091?profile=RESIZE_930x

    You should make that switch and see what the difference is whan you manually draw a paint stroke.

    With Interacte Pen pen mode, a single paint stroke is drawn as you move the pen on the canvas.

    With Autodraw Interactive pen mode, a series of auto-drawn paint strokes emanate from the path location you are defining with your pen movement.

     

    I setup the Path Shape control panel as follows.

    9815252282?profile=RESIZE_930x

    So i'm modulating the path length based on the source texture.

    The Path Angle control panel was setup as follows.

    9815252683?profile=RESIZE_930x

    So i changed the Path Angle to be AutoDraw Polar as opposed to the Orient setting it was defaulted to.  This change in conjunction with using Autodraw Interactive pen mode is what is giving me the local clustering radiating outwards painting behavior.

    I also wanted a somewhat tighter rendition of my source image, so i setup the Path End control panel with Local Color Range turned On and a Color Range Value of 67.

    9815254094?profile=RESIZE_930x

    Everything else in there is just left at the default turned off settings.

    What this change did is that the paint synthesizer monitors what the source color is at a given path location, and if it is more that 67 range values off from the start color then the path is ended early at that location.  Making the Color Range Value smaller gives you a tighter painted rendition of the source image.

     

    At this point, we have manually built the custom paint preset i used in the animation above from scratch.

    If you are just getting started, it probably seemed like a lot. But in reality, it was pretty simple.  Hopefully you will start to see that after you wrap your head around how the paint synthesizer works.  It took me around 2 minutes to build the paint preset from scratch when i started thinking about building some paint effects with it yesterday.  Don't be afraid to try out changing different parameter values and then seeing how the paint behavior and or appearance changes when you do that.  Exploring is a great way to expand you knowledge.

    One thing to be aware of when exploring is that many of the factory presets may have a large number of different parameters turned on that restrict painting in different ways.  For example, if you configured the paint synthesizer to only draw on white areas of the canvas and then you erased the canvas to black, then nothing would draw.  Looking at how the Path Start and Path End control panels are setup can help you understand that kind of self limiting paint behavior if you run into it.  Path Application also has settings associated with its Probability parameter that can restrict painting behavior..

     

    In the next post in this thread, i will discuss how i used the Smart Blur IpOp effect to create the dissipative effect seen in the animation.  And i'll show you how to build a simple PASeq from scratch that you can use to run the animation.  It basically just uses 2 Smart Blur IpOp action steps and a single Paint Action step to create what you see in the animation.  There are a few other things i do in the PASeq that we will also discuss, like erasing the canvas to white on the first frame one, and a trick i used to boost the contrast of the output animation while not effecting the recursive buildup happening in the canvas.

  • Let's put together a Paint Action Sequence (PASeq) that uses the custom paint preset we've been building from scratch to make a paint animation that plays out over time.

    Take a look at the screen shot below. 

    9817455060?profile=RESIZE_930x

    I made this by clicking the Rec (record) checkbox at the top of the PASeq palette.

    I then erased the canvas to white.

    I then held down the m key and option clicked frame time 2 associated with this erase to white action step to record a black mute keyframe at frame time 2.

    Black mute keyframes mute the action step in the timeline until the next red keyframe recorded for that action step at a higher frame time keyframe cell.

    I then hit the action button and recorded a single AutoPaint action step based on the time particle paint preset we've been putting together in this thread.

    There is one additional thing i changed associated with the time particles.  

    In the last post, we discussed how to put together a local polar radiating cluster of paint strokes using Autodraw Interactive pen mode.  When using that with time particles in an animation, you need to have some random variation of start points close to the center before you move on to another cluster. So if you look at the paint synthesizer Editor in the screen shot, you can see that I turned on the Scan parameter and set it to Repeat Start Randomized, with a Scan Repeat of 20, and i boosted the number of time particles defined by the Max Stroke parameter to 200.  So i effectively get 10 time particle clusters that move the same while generating the radiating local polar spread for their paint strokes.

    I then pressed the Animate button at the top of the PASeq palette, and let it run for a few animation frame cycles. I pressed the spacebar when i wanted to stop the animation.

    If i didn't press the spacebar to manually stop it, the animation would continue for the full 181 frames i had setup next to the Animate button.

     

    You might wonder why i added that black mute keyframe for that first erase to white action step.  You can delete any keyframe, including black mute ones, by command clicking (control click on windows) the keyframe cell.  Try running the animation with and without the black mute keyframe to see the difference in the generated animation.

    By only erasing to white for the first frame of the animation, i specify an initial default coloring for the canvas, and then always overdraw on top of the previous frame output when i generate a new frame.  This introduces a recursive element into the paint animation generation process.

     

    At this point you might be done depending on what you are shooting for with the animation output.  but i wanted to add some dispersion to smear out the previously painted frame before auto-painting on top of it. To do that i used the Smart Blur IpOp effect.

    I used this IpOp effect twice in slightly different ways to introduce the dispersion effect to the paint animation.

    First, i used the default Smart Blur settings with a 40% Mix (press Init button at bottom of Editor to initialize the effect panel).

    9817522890?profile=RESIZE_930x

    You can see that i have the Rec button turned on in the PASeq palette to record the first Smart Blur action step for the Editor settings on the left.

    I then changed those Editor settings slightly to build a second dispersion effect.

    9817524882?profile=RESIZE_930x

    You can see in the Editor that i made the Displace Amount smaller, changed the Symmetry and Tracking, and changed the Variation to RGB Ip Source Orient as opposed to the original RGB Source Orient setting.

    The different is that RGB Source Orient adaptively modulates the blur effect based on the orientation of the source image.

    RGB Ip Source Orient modulate the blur effect based on the orientation of the Ip Source used for the effect. If you look at the Ip Source, it is setup to proces the Current Layer. So this second application of the Smart Blur effect is adaptively blurring based on the orientation of what is in the canvas.  The first larger displacement application of the effect is adaptively modulating the blur based on the source image orientation.

    Adaptively blurring based on the source image orientation introduces some visual features associated with the source image into the canvas.

    Adaptively blurring based on the existing canvas orientation just smooths out the edges associated with the image in the canvas, so it is basically re-enforcing the appearance of what is already in the canvas.

    These 2 different dissipative forces play out over the full range of cycles in the animation.  They do this because we have setup our PASe to implement a recursive painting process.

    We modify what is already in the canvas (using 2 smart blur effects for this particular paint animation art strategy), and then we overpaint on top of that modified previous canvas out image.

    So this modify the canvas in some way, then overdraw art strategy approach is extremely flexible, and very powerful.  You can tweak it to create all kinds of really interesting visual effects.

    And if you compare what the paint animation looks like without the dissipative component vs with it, you will see it has a huge influence on the overall visual appearance of the animation. Or of the finished painted image if you don't really care about animation output, but do want to use this approach to build painted static 2D art images.

     

    Here's how i had the Paint Action Sequence setup for my animation run.

    9817546094?profile=RESIZE_930x

    You can see that i drag and dropped my 2 Smart Blur action steps up to the top of the PASeq action step list.  I did this so they playback first ( i want them to process the output of the last animation cycle before i overdraw on top of what they did in the canvas).

    What would happen if i left them down at the bottom of the action step list?  You can play around with these different variations by pressing the Animate button to see how they play out over time.

     

    I mentioned a 'trick' i used that let me build an inner recursive processing loop in my PASeq while still allowing me to add additional 'enhancement' action steps that don't perturb what is going on recursively in that inner loop.

    I'll run through an easy way to do that in the next post in this thread.

     

    Things to Try as Experiments

    You might want to try running Animate using just one of the 2 Smart Blur IpOp effects to see the difference between what they are doing.

    Try using a different IpOp effect as your dispersive component.  Geodesic Recursive Growth is one you might find interesting.  Fixed Color (use white as the color) with a low Mix ratio would be another one to check out.

    If you want to output your Animate run as a movie fie, you can do that by using the Action : Animate with Paint Action Sequence : to Movie menu command.  You can also output to folder of frame images, or more advanced features like building a Transition Context directly out of the results of the animation run.

  • Everything we have done so far in this tutorial thread was working off of a single source image.  But for the animation i used a virtual source constructed out of 5 different key-framed source images in a Transition Context.

    PASeq Context action steps let you embed specific content into the Context. By content i mean a referece to an image file, a reference to a movie file, or a set of bezier paths that can be stored within the associated Context.

    So a Source Context can be used to load different images into the source area at different keyframe times.

    A Content Context can be used to load different images into the Canvas at different keyframe times.

    Some Contexts, like the Warp ones, also run a computational algorithm that modifies the referenced image or movie file content in some way.

    If you want to know more about PASeq Contexts, here is a tip on PASeq Contexts.

    Transition Contexts are essentially new in V5.5.  Like Source or Content Contexts, you can record references to image or movie files in their keyframes.  But Transition Contexts run an adjustable time based image interpolation algorithm for all of the frames between 2 different recorded keyframes.  The interpolation algorithm can just be a linear fade, or a 0-order hold (no transition), but most of them are visually more interesting as well as being image adaptive.

    Transition Contexts also let you route the output of the Transition Context to different destinations within the wrokspace. You can currently route it to the Source, Canvas, or Style buffers.

    Transition Contexts also let you work with virtual keyframes if you so desire.  Virtual Keyframes can let you time quantize or time expand how the movie file source frame referencing works.

     

    If you want to make a Transition Context that references the file (image or movie) that is currently loaded in the Source Area, you can run the menu command shown below.

    9821691692?profile=RESIZE_930x

    After doing that (we are continuing on from where we were in the last post), you can see that a new Transition Context action step was added to the bottom of the PASeq action list.

    9821745068?profile=RESIZE_930x

    You can drag and drop that Transition Context action step from the bottom to the top of the PASeq list.

    9821769286?profile=RESIZE_930x

    Adding another image or movie file reference as a keyframe to that Transition Context is pretty simple.

    Just open a new source image (or movie file) as a new source.

    Then option c click the keyframe cell associated with the Transition Context action step that you want to record.  I did that at frame time 20, as seen in the screen shot below.

    9821836890?profile=RESIZE_930x

    You can adjust what a Transition Context does by going to the Transition Context control panel in the Editor when in Paint Action Sequence option mode.

    9821896084?profile=RESIZE_930x

    A quick way to get there is to run the appropriate main Operation menu

    9821919901?profile=RESIZE_930x

    If i click keyframe 10 in the Transition Context based on the parameter setup in the screen shot above i get the following transition interpolated image placed in the canvas.

    9821941674?profile=RESIZE_930x

    You can choose different transition algorithms using the Trans Algorithm parameter.

    You can choose where the Transition output goes using the Trans Destination parameter.

    Most Editor control panels are context sensitive, so parameters that are not currently active are hidden.  That is not true for Transition Contexts in V5.5.  This control panel can be confusing because of that, because not all of the controls are going to work for every algorithm.  Extent, SubDivision ad SoftMid SubDiv do work for Algorithm 3, which is why i picked it for the screen shot above.  You can also type in an Extent value larger than 100.

    I use the Flow algorithm quite a bit.  It is not currently adjustable, so it just does what it does.

    The Trans Mix End is really only useful when working with the Canvas option for the Trans Source Option, which lets you do the transition from what is currently in the canvas to the next keyframe reference, as opposed to previous keyframe to next keyframe transitions.  This is fun if you want to use the Transition Context  as a generative image synthesis engine.

     

    You can also use the Multiple Keys from Disk menu option shown above to build a new Transition Context from multiple file references you select using a standard file dialog.

    So you could select 20 different image file, and then get a new Transition Context with 20 red keyframes in it.  You could then use the Time Compress/Expand menu command to time expand the timeline to spread them apart.

     

    So i say that the source for the original paint animation was virtual, because it was always changing and evolving over the source of the animation.  I used 5 different key-framed image files set 200 frames apart in a 1000 frame PASeq animation run for the original animation that started this post.

    There are a lot of different approaches to working with this. Obviously it is useful in the context of building an animation.

    Bur you could also use it in an art strategy focused on building up a single static 2D painting.  Imagine working with multiple source images of someones face as then turn it, or as they change their emotional expression.  You could use auto-painting to built up a single painted image that conveys that range of movement of emotion in some way, something you could not do if you only worked with a singel source image. 

    Another approach i like is to work with a large number of different facial images, and build paintings of virtual people that don't exist in the real world.

     

    Note

    I should point out that you would want to set the Trans Destination to Source if you want the Transtion Context we made in this post to work with the rest of the PASeq we built in the previous post. 

    I'm also going to point out that there is a specific Morph Context you can use if you want to use the movement of bezier paths over time to define specific morphed transitions between images and/or movie frames

    PASeq Contexts
    Studio Artist Paint Action Sequence (PASeq) feature called Contexts. PASeq Contexts can be recorded as individual action steps in a PASeq. Contexts c…
  • I promised i would show off a 'trick' one could use to setup an inner recursive loop in a Paint Action Sequence, so that subsequent 'enhancement' action steps don't effect what is happening in that inner recursive processing loop.

    Now why would you care about this?

    Lets look at what the canvas looks like after 50 frames of processing with the simple time particle paint we have previously discussed followed by 2 simple enhancement action steps (multi-octave gradient lighting and image compressor).

    9833922055?profile=RESIZE_930x

    I ran the above for 50 frames using Animate, then manually stopped it with the spacebar.

    The 2 enhancement action steps at the end of the PASeq seemed like a good idea when i ran them on the canvas output from the PASeq without them.  I should clarify, when i ran them on a single static painted canvas.

    But when they are run as a part of the recursive feedback loop building up the paint animation effect, you can see that they totally take over and end up dominating what happens in that recursive processing loop.  Darkening the output way too much and also introducing spatial oscillations playing out over time that introduce artificial structure into the painting.

    So the trick is that we need to remove them from influencing what is happening in that inner recursive processing loop.

    Now you could use layers to do it.  I can run through that in another post if people are interested.  But you don't have to use layers, you can do it all in line in a single canvas layer.  The trick is to take advantage of the style buffer.

    In the screen shot below you can see how i setup my PASeq in a different way to isolate the recursive processing from the enhancement processing.

    9833925488?profile=RESIZE_930x

    All of the active processing in the action steps in the PASeq is the same in this second example. Again, i manually stopped it after 50 steps.

    So why is the visual output so different?

    Take a look at the 2 additional action steps i added. Action steps that don't add any extra effect processing, but just restructure how that processing occurs.

    When i want the inner recursive processing loop to end, i add a Canvas to Style action step.

    You can use a menu command to add that action step (if Recording is on in the PASeq when you run it).

    9833927861?profile=RESIZE_930x

    The second action step i added is a Fixed Image Ip Op action step, configured as seen below.

    9833928855?profile=RESIZE_930x

    You can see that all this Fixed Image action step does is set the canvas to the style buffer. I added this action step at the very beginning of my inner recursive processing loop in the PASeq.  So at the beginning of a PASeq processing cycle, the output of the previous processign cycle minus the later enhancement processing steps is loaded back into the canvas.

     

    If you care at all about digital painting, you should really take the time to play around with this effect.  Exploring the implications of successive processing actions in a recursive feedback loop.

    My take on most peoples approaches to building paint animation effects is that they tend to pile on way too much stuff all at once. Because they are approaching things like they normally approach them when working with a single still image. Building the entire end result effect in one pass. 

    But recursive paint animation plays out over time.  Across multiple frames. Even if your end result is to just output a single frame as a static 2D canvas, the digital painting happening in the animation approach to building a digital painting plays out over time. So a tiny 'enhancement' can end up propagating its effect into the end result over multiple cycles of the animation.  A 10% Mix over 10 frames of animation is effectively close to 100% after those 10 frames.

    A good analogy is to think of is thick soup in a pan on the stove.  As you heat it, ripples begin to form on the surface, textural patterns that play out over time. If you heat it too quickly, it starts frothing and bubbling out of the pan.  Occasionally that might be just the trick in its visual analogy, but usually it is just some form of chaotic oscillation that ends up taking over whatever more delicate paint animation properties you were trying to create..  We will be diving into all of this in future posts on paint animation, but i wanted to point it out here for people to think about.

This reply was deleted.

You need to be a member of Studio Artist to add comments!

Join Studio Artist

Piggy Particles


Hi, here is a new video, lots of MSG (background layer) and MSG generation path starts along with Time Particles in the paint synth, the "Piggy" figure I made in ZBrush and then animated in Blender, with embedded alpha channel, then took into Studio Artist and made into several different kinds of Movie Brushes. Several layers composited together in Blender. Music made with Bespoke Synth and my Shenai. If anyone has any questions about how it was done I'd be happy to explain more.…

Read more…
Comments: 3

The one that got away


A capture of a PasEq playback (all I had left after a crash) I didn't save the over sized Paint Synth Presets that I was adjusting and testing... But I did save the PAsEq. This would be what…

Read more…
Thor Johnson commented on Les Wagstaff’s status
"Cool, thanks, I have used Discord for Midjourney, it took a little getting used to, but I get it now."
Apr 18
Les Wagstaff liked Paul Perlow's profile
Apr 16
Thor Johnson commented on Thor Johnson’s status
"To clarify, I did not make this using 3 layers by using the Layers window in Studio Artist, each layer was processed seperately and then put together and exported as a movie in Blender."
Mar 11
Working with Source .png Images – Transparent Backgrounds via Studio Artist AI

Working with Source .png Images Turning the alpha channel on for transparent .png backgrounds When using .png source images with transparent backgrounds, you will need to set Canvas > Selection > Set to > Source Alpha and then Check Mask…

Jan 11, 2023
Dual Paint Mode Video Explainer via Studio Artist AI

Basics of the Dual Paint Mode, Concepts and How to Create Your Own Dual Paint Presets For More Information on Dual Paint please see this DUAL PAINT POST   For More Information DUAL PAINT POST

The post…

Apr 5, 2022
Erasing the Canvas via Studio Artist AI

How to Erase the Canvas To erase the canvas choose the Eraser Icon at the top of the Interface or choose Canvas > Erase to See this Post for more detailed information on the canvas eraser options.  

The post…

Apr 4, 2022
Preset Management Video via Studio Artist AI

Everything You Need to Know about Studio Artist Presets and Preset Management  

The post Preset Management Video appeared first on Studio Artist…

Apr 4, 2022
Resizing the Canvas via Studio Artist AI

Resizing the Canvas Please see this tip on Resizing the Canvas And how to Resize the Canvas for High-Resolution Print

The post Resizing the Canvas appeared first on…

Apr 4, 2022
More…