Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/okuma10/Keyframe-Nudge

Scripts for Quick keyframe manipulation
https://github.com/okuma10/Keyframe-Nudge

Last synced: 3 months ago
JSON representation

Scripts for Quick keyframe manipulation

Awesome Lists containing this project

README

        

![header](imgs/Main.png)
# keyframe.NUDGE
Blender scripts for quick keyframe maniplation.
With dedicated OpenGL UI in 3d Viewport.
## Installing
nothing yet

## UI
![State Button](imgs/Panel_Mode.png)
* __Tool State Button__ - Changes the types of scripts related to the main buttons.
__Keyframe__ - scripts that work with regular keyframes
__Grease__ - scripts that work with Grease Pencil keyframes
---------

![Position Control](imgs/Translate_Panel.png)
* __Panel position control__ - Changes position of panel in 3d Viewport
----------

![Push Pull](imgs/Push-PullButton.png)
* __Push\Pull - Nudge Button__ - Changes the mode of the '+,-' buttons
----------

![Frames-Seconds](imgs/Frames-Seconds_button.png)
* __Frames-Seconds Button__ - Changes number field's input mode from frames to seconds
---------

![Plus Minus Button](imgs/Plus-Minus_buttons.png)
* __'+' Button__ - executes 'Push\Pull' or 'Nudge' scripts with 'Number Field' value, resulting in change + _time_
* __'-' Button__ - executes 'Push\Pull' or 'Nudge' scripts with 'Number Field' value, resulting in change - _time_
--------

![Number Field](imgs/Value_Input_Field.png)
* __Number Field__ - select value for Push\Pull,Nudge,Hold For scripts.
* __'<>' Buttons__ increase or decrease value on click.

* When clicked on the number, user enters edit mode where he can change value via keyboard input:
* __Backspace__ - remove number from value.
* __Keyboard 0-9 and Numpad 0-9__ - adds numbers to value.
* __Keyboard '.'__ - when mode is seconds, user can give float(decimal) values to final value(precision- one decimal value, example - 22.5).
* __Enter(Return,Numpad Enter)__ - exits edit mode.
---------

![Hold For Button](imgs/Hold_For-Button.png)
* __Hold For Button__ - Executes 'Hold For' script with the value from 'Number Field'.
--------

![Come_Over Button](imgs/ComeOver_Button.png)
* __Come Over Button__ - Executed 'Come Over' Script
-------

![Inbetween Slider](imgs/Inbetween_Slider.png)
* __Inbetween Slider__ - When click or click and drag executes 'Inbetween' Script

============================================
## Scripts
### Keyframe
Scripts work with regular keyframes for objects in object mode and bones in pose mode.
**Note** : Scripts that work with `object keyframes`, are selection dependant. So be mindful of your selections.
* **Push/Pull** - Pushes or pulls all keyframes based on:
* Marker Position - when no keyframes are selected
* Selected Keyframe - from selected keyframe
* **Nudge** - Moves keyframe/s in +,- _time_ based on user value.

* **Hold For** - arranges selected keyframes so they have equal distance:
_- if one keyframe is selected_ - move all keyframes after the selected keyframe, so that the distance in frames between the selected keyframe and the non selected keyframes equals to the value given by the user.
_- if multimple keyframes are selected_ - arranges selected keyframes so they are equal distance from each other(in frames equals the user input value), also makes sure the distance between the last selected keyframe and the first non selected keyframe(after the last selected) is also the user imput value.
* **Come Over** - Executes a Push\Pull type of movement on keyframes - all keyframes from selected keyframe in +_time_, are moved as a block at timeline marker's position. Thus the selected keyframe acts as an origin point of movement of the whole block of keyframes(selected or non selected) to timeline marker's position.

* **Inbetween** - Creates a keyframe or edits one, based on these cases:
* **No Selected keyframes** - Creates a keyframe based on timeline marker's position. X-position or frame number, is the halfway point between the keyframes to the left and right of timline marker. Y-position or Value of the keyframe, is the halfway value between the values of the keyframes that are to the left or right of the timeline marker. If timeline marker is over a keyframe, it will go in to Edit Mode explained in '1 Selected Keyframe case'
* **1 Selected Keyframe** - Modifies the selected keyframe's value based on the values of kefyrames to the left or right of the selected keyframe. Slider controls the proportion or how close is the new value of the keyframe to the value of the left or right keyframes respectively.
* **2 Selected Keyframes** - Creates a keyframe based on timeline marker's position. X-position or frame number, is the timeline marker's position. Y-position or Value of the keyframe, is the Slider controled proportion between the left selected keyframe and the right selected keyframe.
* **3 Selected Keyframes** - Script enters Edit Mode explained in '1 Selected Keyframe' case. Except this time value is a Slider controled proportion of the values of the left selected and right selected keyframes.

### Grease
Scripts work with `grease pencil keyframes`, found in the grease pencil editor in the Dope Sheet.
**Note** : As with scripts that work with `object keyframes`, scripts that work with `grease pencil keyframes` are dependant on selection. So be mindful of your selections. Blender has the bad habbit of leaving selections active unless user deselects.
* [x] Push\Pull
* [] Nudge
* [] Hold For
* [] Come Over

* **Push\Pull** - Pushes or pulls all keyframes of a Grease Pencil based on:
* **Lock Layer**(for all cases) - Because `grease pencil` scripts work on all `grease pencil layers` of a `grease pencil`, the user can exclude `layers` if he locks the them.
* **No Selected Keyframe** - Pushes or Pulls `keyframes` from `timeline marker's` position to +__time__, by user given value, for all `grease pencils`. If `timeline marker` is over a `keyframe`, that `keyframe` is the starting point of the whole block of `keyframes` that will have their X Position(frame number) modified.
* **No Selected Keyframe**(modified) - When there is no `keyframe` selected, but the user does not want to modify all `grease pencils`, he can select a `grease pencil layer` and the operation will be applied to all `layers` of the `grease pencil`, that the `selected layer` belongs to.If user selects `layers` from more than one `grease pencil`, then these `grease pencils` and thus all of their `layers` will be modified as well(except locked layers).
* **Selected Keyframe** - Pushes or Pulls `keyframe`s from `selected keyframe\s(including)` to +__time__ , by user given value, for all `layers` of the `grease pencil\s` that the `selected kefyrame\s` belong to.