I have a grease pencil object with animation keyframes. An animation of a simple 'star' which wobbles and flickers now and then. The animation is designed to loop well.

Here's what I'd like to achieve:

  1. Scatter many instances/copies (>100) of the GP object in my scene, without having to place each one manually. And randomly vary the scale of each instance.

  2. Have each instance automatically face the camera at all times ('billboards').

  3. Have each instance play back its looping animation with a random time offset, so create the illusion that these are independent objects.

So far, I've tried:

Adding a track constraint on the 'master' grease pencil object which got it to face the camera at all times. And then using a mesh as an emitter which would generate instances of the GP object as particles. This approach satisfied criteria 1 and 2, but not 3 since I found no way to add a random time offset to each particle's playback.

Any ideas very welcome!


I thought I'd found a way to achieve 3: by specifying start and end frame range for the particle system both below 0. But it turns out that particles' current frame always seems to match the source objects current frame. So I'm not getting the time offset variation I'm hoping for.

  • $\begingroup$ oh my! This is would do an awesome tutorial! But unfortunately I´m sunk in deadlines. I want to suggest you create a time offset modifier applies to the GP (main) object. (this will act like it´s own nested timeline for your grease pencil animation timeline). Later, on the main 3D view, you´d need to create a slider parameter (this number will drive) the time offset on the grease pencil property: Time Offset. That´s the base. This is a simple setup. What you want to do on the instances now, is to drive this slider on the main 3d view with a scripted offset function using frame and timeline. $\endgroup$ – Pierre Schiller Apr 17 '19 at 18:25
  • $\begingroup$ @PierreSchiller Thanks. This part loses me a bit "What you want to do on the instances now, is to drive this slider on the main 3d view with a scripted offset function using frame and timeline." $\endgroup$ – bitbutter Apr 18 '19 at 11:46
  • $\begingroup$ I've added an empty to my scene and set it up so that its rotation drives the time offset of the GP modifier, I hope that's approximately the direction you described going in! but I'm unclear about the next step. $\endgroup$ – bitbutter May 18 '19 at 7:24
  • $\begingroup$ @bitbutter What about duplicating your star a few times, giving each duplicate a different time offset, group them then emit the group instead of the star? $\endgroup$ – wilks Feb 25 '20 at 11:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.