1
$\begingroup$

I have an animation where projectiles are being shot at a character.

Currently, my projectiles have to exist for the entirety of the animation. This means they have to exist in a far-off place, be transformed to the correct location, and then linger (invisibly).

All of the above significantly slows down my animation. The viewport barely renders at 6 FPS.

My projectiles are rigged, and have to be animated while being shot at the character.

Is there any way to spawn and despawn these projectiles when I wish?

$\endgroup$
4
  • 2
    $\begingroup$ You can animate the Show In Renders located in Object Properties > Visibility and keyframe the checkbox. Or animate and keyframe the Disable in Renders (little camera icon) in the Outliner. If the camera icon is not there, you can activate it in the Outliner Filter (little funnel icon). Note: Show In Renders and Disable in Renders are the same setting in different locations. $\endgroup$ Jul 18 '20 at 13:24
  • $\begingroup$ @Fjoersteller This isn't that practical because every bullet has about 5 child objects. $\endgroup$
    – Joehot200
    Jul 23 '20 at 17:10
  • $\begingroup$ Not sure if this would work, but you could try using a particle system with the projectiles as the render object. But you'd probably need to play around quite a bit with the settings to get it to achieve what you want. $\endgroup$ Jul 23 '20 at 19:58
  • $\begingroup$ Had another (probably not great) idea and edited the answer. $\endgroup$ Jul 23 '20 at 20:42
2
$\begingroup$

(I made it an answer because comments don't allow for enough characters, and I added my first comment for good measure.)

You can animate the Show In Renders located in Object Properties > Visibility and keyframe the checkbox. Or animate and keyframe the Disable in Renders (little camera icon) in the Outliner. If the camera icon is not there, you can activate it in the Outliner Filter (little funnel icon). Note: Show In Renders and Disable in Renders are the same setting in different locations

The only other thing that comes to mind at the moment is giving the objects materials that can be animated to be invisible. It would be easiest if all objects had the same material. Though you could link the invisibility behavior of different materials with drivers. Here are two answers on how to do something very similar. However, I'm not sure (doubt even) if it will increase FPS and/or decrease render-time.

Also here is a small discussion with some other workaround methods.

Edit:

Just thought of another idea. Most probably it won't work for your situation, but i thought I'd mention it anyway: You could also maybe use instancing. All children objects would need to be the same, and can't be individual objects.

You could parent a single child object to an object consisting of loose vertices instead. The go to Properties > Object Properties > Instancing, and click Verts. You would see a mesh of the child object for every vertex in the parent object. Then you can animate the Disable in Render of a single child object to make them all disappear (or do any other localized animation for that matter).

$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.