0
$\begingroup$

I have a simple collection with meshes named 1-3. How can I create a geometry node graph such that I can animate the selection between these meshes? In other words, how can I display meshes 1-3 like a stop motion animation?

$\endgroup$
7
  • $\begingroup$ FYI, attempted to use point instance on a single vertex, which mostly works, but point instance appears to randomly spawn objects which is not useful in this use case. $\endgroup$
    – Warlax56
    Commented Jun 3, 2021 at 13:10
  • 1
    $\begingroup$ Unfortunately you can't specify the chosen item in a collection. You can use several instancers with custom seeds and use a system of switches to filter out the items you want, but it would be really weak and adding items to the collection would most likely ruin the whole thing $\endgroup$
    – Gorgious
    Commented Jun 3, 2021 at 13:11
  • 1
    $\begingroup$ you can do this "kind of" effect with "particles" in geometry nodes by point instancing small objects on each vertex, then randomize (or bring them in some order) them and move them over to a new mesh. To make that looks good, they should have the same number of vertices. A direct transition between two meshes - i think - is not possible AFAIK now. $\endgroup$
    – Chris
    Commented Jun 3, 2021 at 13:18
  • $\begingroup$ FYI, I'm playing with shifting all the meshes along the x axis by a fixed distance in order to encode locality, then maybe using that to mask specific meshes $\endgroup$
    – Warlax56
    Commented Jun 3, 2021 at 13:20
  • 2
    $\begingroup$ @Chris Nope, a diagram definitely would have helped but I'm glad it's solved anyway :) $\endgroup$
    – Gorgious
    Commented Jun 3, 2021 at 14:58

2 Answers 2

3
$\begingroup$

This solution becomes a bit simpler (I think) when it's generalized to volumes, but as I wanted this to work with any type of mesh (even those without volume) this was the approach I chose:

High Level

  • Offset all the meshes you want to display by a fixed distance along the x axis within a collection
  • create a tool (just a box) to the left and right of a window
  • use those tools to remove all meshes besides the window you want to preserve
  • do a reverse offset so that everything happens at a fixed point in space

Result

gif of things working

Breakdown

inputs

inputs

  • the offset defines where the current "frame" is
  • the tool width, depth, and height defines the size of the tools used to cut (so that they can be changed as needed)
  • the mask width defines how large of a window can be seen between the tools. Effectively, this is the size of the viewing winodw

Tool Creation

tool creation

two tools get created and added together as a single mesh. This is the actual tool creation subgraph

tool creation

the is_tool_2 boolean defines if the tool is the one to the left or right of the window. This should be 0 or 1.

Buttoning up

cutting with the tools, and reversing the offset

the tools are used to cut the meshes in the collection, then the offset is reversed to give the desired effect.

Summary

So, in terms of this question specifically, the offset can be animated to change which mesh is displayed. For my first time using geometry nodes, I'm pretty chuffed! For posterity I'm going to add some keywords to this solution for the google bots to chew on:

ticker tape, rolling window, mesh selection

$\endgroup$
0
$\begingroup$

enter image description here

I know that this question was for 2.9, but for any future users using 3.0.0: Use the instance on points in conjunction with a instance index attribute. This will allow you to cycle through your object in the collection in order. There wont be any transitions however. It will simply "poof" into existence.

Hope this helps

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .