dorkhub

boneDynamicsNode

Custom Node Plugin for Simple Bone Dynamics in Autodesk Maya.

akasaki1211
C++28740 forksMITupdated 1 week ago
git clone https://github.com/akasaki1211/boneDynamicsNode.gitakasaki1211/boneDynamicsNode

boneDynamicsNode

Maya License: MIT

boneDynamicsNode is a custom node for Autodesk Maya that enables dynamic simulation on joint chains. It is designed for easy integration into rigs and supports features such as collision handling, angle limits, target pose manipulation, and more.

Warning

This plug-in uses internal-use Maya node IDs:
0x7b001, 0x7b002, 0x7b003, 0x7b004, and 0x7b009.

✨ Features

  • Simple integration with standard Maya joints
  • Multiple collision types: sphere, capsule, infinite plane, ground, and mesh
  • Dedicated collider nodes and visualizer node
  • Python helper package for scripted setup
  • Angle limits
  • Target pose control
  • Transform cancellation for specific nodes
  • Per-section scaling
  • Turbulent wind
  • Support for branching structures

🔧 Installation

Download the release zip from the Releases page.

After extracting the zip file:

  1. Copy the boneDynamicsNode.mll file for your Maya version from the plug-ins folder to C:\Users\<USERNAME>\Documents\maya\<MAYAVERSION>\plug-ins.
  2. Copy the scripts folder to C:\Users\<USERNAME>\Documents\maya.
    • The scripts folder installs the bdn Python helper package and AEboneDynamicsNodeTemplate.mel.

For additional instructions, refer to the Installation wiki page.

🖥️ Platform Status

  • Windows: Developed and tested on Windows. Pre-built plug-ins are provided for Windows.
  • Linux: Build verified under WSL. Runtime testing in Maya on Linux has not been performed.
  • macOS: Not tested.

🚀 Try it out

Please try running the following script. It creates a single-section joint with bone dynamics applied.

from maya import cmds

cmds.select(cl=True)
bon = cmds.joint(p=[0,0,0])
end = cmds.joint(p=[10,0,0])

import bdn
bdn.create_dynamics_node(bon, end)

cmds.currentTime(1)
cmds.select(bon)

Important

Please set "Playback speed" to Play every frame.

Refer to Quick Start and Basic Usage for details.

📖 Documentation

Full documentation is available in the wiki:

📦 Individual Plug-ins

If you only need to open and evaluate scenes that are already set up with boneDynamicsNode, the main .mll plug-in file is enough.

Pre-built boneDynamicsNode.mll files are available in the plug-ins directory. Download the file that matches your Maya version and place it in your Maya plug-ins path.

Click "Download raw file" from the linked file page.

If you want to create new setups using the bdn Python helper package or use the Attribute Editor template, follow the instructions in the Installation section.

more like this

sandbox

A sandbox game created in C using raylib, featuring various types of falling pixels, such as sand or water. (more in th…

C52

search

search projects, people, and tags