Skip to content

Commit

Permalink
Implemented a new NURBS output plug, added icons, AETemplates and a 2…
Browse files Browse the repository at this point in the history
…025 variant to github actions (#27)

* Added a nurbs output plug (#3)

* added a nurbs data output plug + cleanup

* Nurbs output, cleanup and AETemplates

* Updated xcode in github actions

* New icons + workflows & mod changes

* Fixed plug-in version in pluginMain.cpp

* Rolled back some experimental changes

* Changed knots logic for output NURBS

* Added twistTangent icon and dpi icons
  • Loading branch information
mdilena authored Jul 23, 2024
1 parent 4b0e19a commit eafd72d
Show file tree
Hide file tree
Showing 31 changed files with 4,775 additions and 109 deletions.
15 changes: 13 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ jobs:
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2023/Autodesk_Maya_2023_3_Update_DEVKIT_Windows.zip"
- maya: "2024"
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2024/Autodesk_Maya_2024_2_Update_DEVKIT_Windows.zip"
- maya: "2025"
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2025/Autodesk_Maya_2025_1_Update_DEVKIT_Windows.zip"

steps:
- name: Checkout code
Expand Down Expand Up @@ -98,7 +100,7 @@ jobs:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '13.4'
xcode-version: '14.3.1'

- name: Configure CMake
run: |
Expand Down Expand Up @@ -130,6 +132,8 @@ jobs:
include:
- maya: "2024"
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2024/Autodesk_Maya_2024_2_Update_DEVKIT_Mac.dmg"
- maya: "2025"
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2025/Autodesk_Maya_2025_1_Update_DEVKIT_Mac.dmg"

steps:
- name: Checkout code
Expand All @@ -144,7 +148,7 @@ jobs:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '13.4'
xcode-version: '14.3.1'

- name: Configure CMake
run: |
Expand Down Expand Up @@ -179,6 +183,8 @@ jobs:
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2023/Autodesk_Maya_2023_3_Update_DEVKIT_Linux.tgz"
- maya: "2024"
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2024/Autodesk_Maya_2024_2_Update_DEVKIT_Linux.tgz"
- maya: "2025"
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2025/Autodesk_Maya_2025_1_Update_DEVKIT_Linux.tgz"

steps:
- name: Checkout code
Expand Down Expand Up @@ -245,10 +251,12 @@ jobs:
# ~/modules
# /TwistSpline
# /<os_name>-<maya_major_version>
# /icons
# /plug-ins
# TwistSpline.mll
# /scripts
# *.py
# *.mel
# /TwistSpline.mod

with:
Expand All @@ -262,6 +270,9 @@ jobs:
cp ./TwistSpline.mod modules/
mkdir -p modules/TwistSpline/scripts
cp -r ./scripts modules/TwistSpline
mkdir -p modules/TwistSpline/icons
cp ./icons/*.png modules/TwistSpline/icons
cp ./icons/*.xpm modules/TwistSpline/icons
zip -r TwistSpline-${{env.RELEASE_VERSION}}.zip modules/
- name: Upload distribution
Expand Down
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ Internal testing hasn't found any more major bugs, so this is now a *BETA* relea
This gif demonstrates the smoothly interpolating pin values for this test setup.
Any control can be pinned with an arbitrary value at any time.
Not shown: You can unpin *both ends* as long as at least one control has weight.
![Stretching Demo](https://tbttfox.github.io/Images/TwistSpline_StretchDemo.gif)
![Stretching Demo](images/TwistSpline_StretchDemo.gif)

This gif deomonstrates the smoothly interpolating twist values (and their interaction with position pinning)
Again, any control can pin its twist value, and twist solves smoothly through length preservation
![Twisting Demo](https://tbttfox.github.io/Images/TwistSpline_TwistDemo.gif)
![Twisting Demo](images/TwistSpline_TwistDemo.gif)

Not Shown: The Rider node can constrain between multiple splines. This means that a tool could easily be written to build and switch to another spline. For an artist, this would give the ability to add or remove spline controls on the fly in-scene.

Expand Down Expand Up @@ -159,52 +159,52 @@ Note: Despite its name, this isn't actually implemented as a constraint, but it
| --- | --- | --- |
|rotateOrder (ro) | enum | XYZ |
|&nbsp;&nbsp;&nbsp;&nbsp;`Enum of the rotation order standard to Maya`|
|globalOffset (go) | double | 0.0 |
|globalOffset (go) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;`A value added to all input parameters. This shifts everything connected to this constraint along the spline.`|
|globalSpread (gs) | double | 1.0 |
|globalSpread (gs) | double | 1.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;`A value multiplied by all input parameters. This spreads everything out (happens before the offset)`|
|useCycle (uc) | | false |
|useCycle (uc) | | false |
|&nbsp;&nbsp;&nbsp;&nbsp;`Whether or not to cycle the parameters once they go past the end. If not, they extrapolate linearly.`|
|normalize (n) | boolen | True |
|normalize (n) | boolen | True |
|&nbsp;&nbsp;&nbsp;&nbsp;`If true, then the input parameters are remapped so that (0, normValue) maps to (0, restLength) of the spline`|
|normValue (nv) | double | 1.0 |
|normValue (nv) | double | 1.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;`The remapped maximum value when normalizing`|
|inputSplines (is) | compound | n/a |
|&nbsp;&nbsp;&nbsp;&nbsp;`The group that is a spline and its corresponding weight.`|
|&nbsp;&nbsp;&nbsp;&nbsp;spline (s) |
|&nbsp;&nbsp;&nbsp;&nbsp;spline (s) |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`An input spline`|
|&nbsp;&nbsp;&nbsp;&nbsp;weight (w) | double | 1.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;weight (w) | double | 1.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The constraint weight of that spline`|
|params (ps) |
|params (ps) |
|&nbsp;&nbsp;&nbsp;&nbsp;`The parameters for the constraints, and their parent inverse matrices`|
|&nbsp;&nbsp;&nbsp;&nbsp;param (p) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;param (p) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The parameter where an object will stick to the spline.`|
|&nbsp;&nbsp;&nbsp;&nbsp;parentInverseMatrix (pim) | matrix | identity |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The parentInverseMatrix of the object sticking to the spline`|
| | |
|outputs (out) |
|outputs (out) |
|&nbsp;&nbsp;&nbsp;&nbsp;translate (t) | double3 | n/a |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output translation`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translateX (tx) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translateX (tx) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output translation X Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translateY (ty) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translateY (ty) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output translation Y Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translateZ (tz) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translateZ (tz) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output translation Z Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;rotate (rot) | double3 | n/a |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output rotation`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotateX (rotx) | angle | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotateX (rotx) | angle | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output rotation X Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotateY (roty) | angle | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotateY (roty) | angle | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output rotation Y Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotateZ (rotz) | angle | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotateZ (rotz) | angle | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output rotation Z Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;scale (scl) | double3 | n/a |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output scale`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scaleX (sclx) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scaleX (sclx) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output scale X Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scaleY (scly) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scaleY (scly) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output scale Y Component`|
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scaleZ (sclz) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scaleZ (sclz) | double | 0.0 |
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`The output scale Z Component`|

51 changes: 42 additions & 9 deletions TwistSpline.mod
Original file line number Diff line number Diff line change
@@ -1,26 +1,59 @@
+ PLATFORM:win64 MAYAVERSION:2022 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:win64 MAYAVERSION:2022 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: windows-2022
[r] scripts: scripts

+ PLATFORM:linux MAYAVERSION:2022 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:linux MAYAVERSION:2022 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: linux-2022
[r] scripts: scripts

+ PLATFORM:mac MAYAVERSION:2022 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:mac MAYAVERSION:2022 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: mac-2022
[r] scripts: scripts

+ PLATFORM:win64 MAYAVERSION:2023 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:win64 MAYAVERSION:2023 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: windows-2023
[r] scripts: scripts

+ PLATFORM:linux MAYAVERSION:2023 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:linux MAYAVERSION:2023 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: linux-2023
[r] scripts: scripts

+ PLATFORM:mac MAYAVERSION:2023 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:mac MAYAVERSION:2023 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: mac-2023
[r] scripts: scripts

+ PLATFORM:win64 MAYAVERSION:2024 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:win64 MAYAVERSION:2024 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: windows-2024
[r] scripts: scripts

+ PLATFORM:linux MAYAVERSION:2024 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:linux MAYAVERSION:2024 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: linux-2024
[r] scripts: scripts

+ PLATFORM:mac MAYAVERSION:2024 TwistSpline 1.0.0 TwistSpline
+ PLATFORM:mac MAYAVERSION:2024 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: mac-2024
[r] scripts: scripts

+ PLATFORM:win64 MAYAVERSION:2025 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: windows-2025
[r] scripts: scripts

+ PLATFORM:linux MAYAVERSION:2025 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: linux-2025
[r] scripts: scripts

+ PLATFORM:mac MAYAVERSION:2025 TwistSpline 1.1.0 TwistSpline
[r] icons: icons
plug-ins: mac-2025
[r] scripts: scripts
Binary file added icons/riderConstraint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit eafd72d

Please sign in to comment.