The Batman's Blender GNAE v1.11 (Geometry Node Animation Importer/Exporter)

Hello, although I doubt any of you use Geometry Nodes, maybe with this resource will encourage you to learn them for your projects because honestly very powerful stuff!

What are Geometry Nodes?

Geometry Nodes in Blender is a system that allows you to alter geometry of an object as well as make other modifications with node-based functions, it can help with Model creation to even archichtectural design to of course animation!

What can this resource do?

What my GNAE does it basically allow you to make procedural geometry node animations with instances and then export those animations and import them into studio, the possibilties are only as far as how good you are with Geometry Nodes although there are some limitations as with everything of course, keep in mind the more instances you have the bigger the output folder is going to be

Examples of What You Can Make

Blender

Studio

Blender

Studio

Setup

Head over to the github and get the blender_gn_exporter.py file and then also the GNAnimation.lua file, anything over Blender 2.8 should work fine for this addon!

Install the blender addon how you would any other addon, if you installed it correctly you should get this panel on the side of your viewport called Geometry Node Animations

image

And then also install the studio plugin that you’ll use to import the data exported from Blender, here

You should see this at the top of your plugins bar if you’ve installed it correctly

image

I’m gonna assume you’ve made your geometry node animation and now you’re going to hit the Export GN Animation button and this wil copy the geometry node animation data to your clipboard

Then head back over to studio and then and click the Import GNs, and it’ll bring up a script, you’re going to want to paste the data that was put in your clipboard, if you did this correctly you’ll see a new folder in workspace named UntitledGNAnimation, this is the folder which stores the data about your animation

After that if you haven’t already get the GNAnimation module from the github this is going to allow you to actually play the animation!

The setup is very easy and straightforward here is a code snippet

local GNAnimation = require(game.ReplicatedStorage.GNAnimation)

-- Create a new ObjectAnimation instance, pass the folder generated from plugin
local circle_anim = GNAnimation.new(workspace.circle_anim)

--[[ 
   Parameters:
   - relativeTo: Part -- Part to animate relative to
   - FPS: number -- Frames per second
   - loop: boolean -- Whether the animation should loop
   - name: string -- Name of the animation folder
]]

-- Play the animation
circle_anim:Play({
   FPS = 60,
   name = "CircleAnimation",
   relativeTo = workspace.SpawnLocation,
   loop = true
})

If you have any questions feel free too leave them down in the replies thank you!

5 Likes

v1.1

Optional Scale Export

Sometimes you might not want to export the scale and now the addon allows you to do that, a benefit to this is that the import time will be slightly a bit lower!

1 Like

v1.11

Simulated Part

You can now have your own part in place of the default ones that were there originally, this pretty easy to implement but can yield some cooler looking effects since you can use custom objects, just parts are supprted right now, I’ll add model support soon!

Code Snippet

local GNAnimation = require(game.ReplicatedStorage.GNAnimation)

local circle_anim = GNAnimation.new(workspace.circle_anim)

--[[ 
   Parameters:
   - relativeTo: Part -- Part to animate relative to
   - FPS: number -- Frames per second
   - loop: boolean -- Whether the animation should loop
   - name: string -- Name of the animation folder
   - simulatedPart: Instance -- Part to simulate the animation on
]]

-- Play the animation
circle_anim:Play({
   FPS = 60,
   name = "CircleAnimation",
   relativeTo = workspace.SpawnLocation,
   loop = true,
   simulatedPart = workspace.Car
})

Wait, isn’t this like really really cool, why is this so underrated?

I appreciate it, gives me much more control over my effects.