Code Monkey home page Code Monkey logo

rats-for-linux's Introduction

๐Ÿ€ RATS - Raz's Animator Tweaks 'n' Stuff ๐Ÿง€

GitHub Workflow Status GitHub GitHub release (latest by date) GitHub all releases

๐Ÿ“ฅ Get it from VPM! https://vpm.razgriz.one/ (make sure to install Harmony as well!)

Animator Window

โš  RATS is changing things that the Unity editor doesn't normally allow changing! It's doing a lot, so it might break things. Hopefully not, but please file an issue if it does ๐Ÿ’•

Some Harmony-based patches to Unity's Animator and Animation windows. It fixes some bugs, adds customization, and generally removes some of the annoyances of working with animators.

Also includes s-m-k's Unity Animation Hierarchy Editor. Originally forked from DJ Lukis' AnimatorExtensions

Installation

Tested on Unity versions:

  • 2019.4.31f1
  • 2021.3.22f1

VRChat Creator Companion

Visit https://github.com/rrazgriz/raz-vpm/blob/main/README.md and follow the instructions to add my Repository to VPM. You'll need to add the Harmony package if you don't already have Harmony in your Unity project.

Manual

Download the latest release package from the Releases page, and add to your project. You'll need Harmony, which you can get in package form from https://github.com/rrazgriz/harmony-vpm or from the source at https://github.com/pardeike/Harmony.

Features

Configure at Tools -> RATS -> Options. Settings are saved in EditorPrefs, so they persist across any projects that have RATS installed.

Compatibility: Disable certain Animator window fixes/behaviors to avoid conflicts with other tools. Not comprehensive, but should cover most common cases.

New Options

  • Customize Animator appearance! Node colors, text size, background color, grid size, and more!
  • Hold Ctrl to disable state snapping (or disable snapping by default)
  • Change Write Defaults setting for new states
  • Change Layer Weight to 1 on new layers
  • Change Transition Settings for new states
  • Show extra labels on animation states
    • Animation clip/BlendTree name
    • B if a state has State Behaviors
    • WD if a state has Write Defaults enabled
    • M if a state has a motion time parameter
    • S if a state has a speed parameter
    • Icons for Blendtree/Loop Time
    • Warning icons For empty states/animations
  • Hold Alt to view all labels regardless of setting
  • Animation Window: Show actual property name instead of "Display Name" in animation hierarchy
  • Animation Window: Show full path of keyframes
  • Animation Window: Reduce/Disable Indentation
  • Project Window: Show filesize, extension, and folder children in list mode

Tweaks/Fixes

  • Layer copy-pasting and duplication (including cross-controller) via context menu or keyboard shortcuts
  • F2 keyboard shortcut to rename selected layer
  • Instead of the annoying list scrollbar reset, get new or edited layer in view
  • Similarly scroll to bottom when adding a new parameter
  • Prevent transition condition mode/function resetting when swapping parameter
  • Highlight/select animator controller by single/double-clicking its path in bottom bar
  • Disable undo of "Paste Sub-Sate Machine" action as it leaves dangling sub-assets.
    • Manually delete pasted layers or sub-state machines to correctly dispose of majority (but still not all) of sub-assets!

Known Issues

  • Custom node textures disappear for a frame or two sometimes (entering/exiting playmode, script reload, scene overrides). If they disappear permanently, please let me know!
  • Icons/Indicators are not super visible in Unity Light Mode
  • Unsupported.PasteToStateMachineFromPasteboard copies some parameters, but does not copy their default values
    • It also does not have proper undo handling causing dangling sub-assets left in the controller
  • State node motion label overlaps progress bar in "Live Link" mode
  • Animation Window "Show Actual Names" requires selecting a different animation/object with animator to disable

Screenshots

Animation Window Project Window Settings Window

Future Ideas

  • Update CI to produce a proper listing of releases
  • Animation: Option to rename property names
  • Animation: Property name search (with "Add Property")
  • Animator: Drag animation onto State to change
  • Animator: Option to quickly disable loop time on states (right click?)
  • Animator: Add F2-to-rename on states
  • Right click: enable/disable loop time on selected animation clips
  • Utility window: Retarget animation paths for selected animation clips
  • Utility window: Multi-editing of states/transitions/state behaviors
  • Utility window: show list of all animations categorized by folder
  • Animation: Implement needle-tools-style drag-to-retarget on Animation paths
  • Animator: Add undo callback handler to delete sub-state machines properly
  • Animator: Clean up layer copy/paste (don't take up clipboard)

Credits

  • DJ Lukis.LT for the original utility script (MIT-licensed!)
  • Andreas Pardeike for the fantastic Harmony library (MIT-licensed!)
  • Pumkin and ScruffyRules for lots of help with figuring out Harmony (and Reflection in general)
  • Everyone else that helped test and give feedback!

rats-for-linux's People

Contributors

rrazgriz avatar scruffyrules avatar zenithval avatar uhkayla avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.