Addon for Blender 2.8+ that automatically creates NLA tracks for all animations. Useful for GLTF export.

Overview

PushDownAll

An addon for Blender 2.8+ that runs Push Down on all animations, creating NLA tracks for each.

This is useful if you have an object with many animations, and you need to convert them all to NLA tracks, say for GLTF export for a game engine. Godot Engine currently requires animations baked as NLA tracks.

Installation

  • Install PushDownAll.py into your script directory. e.g. "C:\Users\yourname\AppData\Roaming\Blender Foundation\Blender\version\scripts\addons"

  • In Blender, select Edit, Preferences, Add-ons. Find "Animation: Push Down All" and enable it.

Usage

  • Open the Dope Sheet and switch to the Action Editor. You'll also want to open Nonlinear Animation in another window.

image

  • Select your object in the outliner. Choose the node which is the parent of Pose or Animation.

image

  • In the Dope Sheet window, press N for the sidebar and you should see the Push Down All panel.

image

  • If there are no NLA channels (i.e. the NLA window is completely empty), you may need to select one of the animations, which will create an NLA channel. The addon should alert you as below. Select the animation from the middle button on the header bar.

image

image

Parameters

  • Exclude: You can enter a regular expression (Python search()) in the exclude box to skip animations. e.g. 'alk' or '[wW]alk' would match animations named 'walk_forward' and 'FastWalk'.

  • Search & Replace: Search takes a regular expression and will replace any matching parts of names with whatever is found in the replace box (including nothing to erase the matching part). e.g. Search: 'alk', Replace: '', will turn the previous animations into 'w_forward' and 'FastW'. This will change the name of the animation, not just the NLA track.

image

  • Finally, click Push Down All to get your NLA tracks.

image

  • If you wish to do it again, move your mouse to the NLA window, and press X or A, X to delete all NLA tracks.

Troubleshooting

Turn on the console (Window -> Toggle System Console). This addon prints the name of every animation it pushes down. Error messages will appear here.

Quick Regex Primer

Really basic searches will work just fine. Regex is for power users. If you are having trouble matching symbols, try prefacing the symbol with a \, e.g. \. to match a period.

^ = match the beginning

$ = match the end

[a-zA-Z] = match one character, a through z or A-Z. Can also do numbers, 0-9. Insert ^ as the first character to negate the match.

[^0-9]4 = match 4 characters, none of which are 0-9

. = match any single character

.4 = match any 4 characters

.* = match any number of characters including none

.+ = match at least 1 of any character

\. = match the period . Use \ before any symbols you want to match like ()[]$^\.*+ etc. e.g. Walk\(1\) for Walk(1)

| = match anything on the left, or anything on the right. Logical OR.

( ) = container that limits the scope of the logical OR above.

Examples

^Key -> Matches Key only at the beginning of the name

_RM$ -> Matches _RM only at the end of the name

^Key\..*_RM$ -> Match names that start with Key., end with _RM, and have anything or nothing in the middle

^([^K]|Key\.) -> Matches names that either don't begin with K, or start with Key.. Apple or Key.Apple would match, Key would not.

Full regex syntax: https://docs.python.org/3/library/re.html#regular-expression-syntax

License

MIT

Owner
Cory Petkovsek
See my game "Out of the Ashes" at the link below.
Cory Petkovsek
A domonic-like wrapper around selectolax

A domonic-like wrapper around selectolax

byteface 3 Jun 23, 2022
Interfaces between napari and pymeshlab library to allow import, export and construction of surfaces.

napari-pymeshlab Interfaces between napari and the pymeshlab library to allow import, export and construction of surfaces. This is a WIP and feature r

Zach Marin 4 Oct 12, 2022
A utility control surface for Ableton Live that makes the initialization of a Mixdown quick

Automate Mixdown initialization A script that transfers all the VSTs on your MIDI tracks to a new track so you can freeze your MIDI tracks and then co

Aarnav 0 Feb 23, 2022
An ultra fast cross-platform multiple screenshots module in pure Python using ctypes.

Python MSS from mss import mss # The simplest use, save a screen shot of the 1st monitor with mss() as sct: sct.shot() An ultra fast cross-platfo

Mickaël Schoentgen 799 Dec 30, 2022
Stack-overflow-import - Import arbitrary code from Stack Overflow as Python modules.

StackOverflow Importer Do you ever feel like all you’re doing is copy/pasting from Stack Overflow? Let’s take it one step further. from stackoverflow

Filip Haglund 3.7k Jan 08, 2023
CarolinaCon CTF Online

CarolinaCon Online CTF CTF challenges from CarolinaCon Online April 23 through April 25, 2021. All challenges from the CTF will eventually be here. Co

49th Security Division 6 May 04, 2022
Python implementation of the ASFLIP advection method

This is a python implementation of the ASFLIP advection method . We would like to hear from you if you appreciate this work.

Raymond Yun Fei 133 Nov 13, 2022
A command line interface tool converting starknet warp transpiled outputs into readable cairo contracts.

warp-to-cairo warp-to-cairo is a simple tool converting starknet warp outputs (NethermindEth/warp) outputs into readable cairo contracts. The warp out

Michael K 5 Jun 10, 2022
A complete python calculator with 2 modes Float and Int numbers.

Python Calculator This program is made for learning purpose. Getting started This Program runs using python, install it via terminal or from thier ofi

Felix Sanchez 1 Jan 18, 2022
Recreate the joys of Office Assistant from the comfort of the Python interpreter

Recreate the joys of Office Assistant from the comfort of the Python interpreter.

Louis Sven Goulet 3 May 21, 2022
libvcs - abstraction layer for vcs, powers vcspull.

libvcs - abstraction layer for vcs, powers vcspull. Setup $ pip install libvcs Open up python: $ python # or for nice autocomplete and syntax highlig

python utilities for version control 46 Dec 14, 2022
Cross-platform config and manager for click console utilities.

climan Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayPal: https

3 Aug 31, 2021
dynamically create __slots__ objects with less code

slots_factory Factory functions and decorators for creating slot objects Slots are a python construct that allows users to create an object that doesn

Michael Green 2 Sep 07, 2021
Notes on the Deep Learning book from Ian Goodfellow, Yoshua Bengio and Aaron Courville (2016)

The Deep Learning Book - Goodfellow, I., Bengio, Y., and Courville, A. (2016) This content is part of a series following the chapter 2 on linear algeb

hadrienj 1.7k Jan 07, 2023
Logging-monitoring-instrumentation - A brief repository on logging monitoring and instrumentation in Python

logging-monitoring-instrumentation A brief repository on logging monitoring and

Noah Gift 6 Feb 17, 2022
ToDo - A simple bot to keep track of things you need to do

ToDo A simple bot to keep track of things you need to do. Installation You will

3 Sep 18, 2022
Repo to store back end infrastructure for Message in a Bottle

Message in a Bottle Backend API RESTful API for Message in a Bottle frontend application consumption. About The Project • Tools Used • Local Set Up •

4 Dec 05, 2021
Scripts to integrate DFIR-IRIS, MISP and TimeSketch

Scripts to integrate DFIR-IRIS, MISP and TimeSketch

Koen Van Impe 20 Dec 16, 2022
Pypot ⚙️ A Python library for Dynamixel motor control

Pypot ⚙️ A Python library for Dynamixel motor control Pypot is a cross-platform Python library making it easy and fast to control custom robots based

Poppy Project 238 Nov 21, 2022
Python programming language Test

Exercise You are tasked with creating a data-processing app that pre-processes and enriches the data coming from crawlers, with the following requirem

Monirul Islam Khan 1 Dec 13, 2021