Code Monkey home page Code Monkey logo

seexprmeshmaya's Introduction

SeExprMeshMaya

Polygon deformer node plugin for Maya that using Disney's SeExpr

Introduction

This plug-in is allowed you to edit meshes with Disney's SeExpr language.
You can develop your unique mesh deformer, furthermore, can coding just the method without troublesome C++ codings and plug-in declaration.

What's SeExpr?

Walt Disney Animation Studios: SeExpr
SeExpr is a expression language and the library developed by Disney.
It's a simple and easy, but has enough functions what you want in your daily work.
You can find it from here.

Build

I developed this plug-in on Linux and I don't have any environment.
So I didn't build it on Win/Mac environment.

If you are a user of Maya2013/Linux and Windows, you can use pre-compiled binaly.
Please download it from here.

Windows version is built by Takkyun.
Thank you!

Linux

  1. Download the source.
  2. Unzip and cd to src directory.
  3. Edit the Makefile for your environment.
  4. run make

This plug-in uses OpenMP. So it's compiled by gcc4.2 or higher.

Install

On Linux, the simplest way is make install after Makefile modification.
If you don't want it, you have to move some files to specified path.

  • build/SeExprMesh.so to any MAYA_PLUG_IN_PATH directory.
  • scripts/AESeExprMeshTemplate.mel to any MAYA_SCRIPT_PATH directory.

Usage

  1. Start Maya

  2. Open Plug-in Manager from Window > Settings/Preferences > Plug-in Manager.

  3. Load SeExprMesh.so(mll).

  4. Select a mesh.

  5. Execute seExprMesh command.

seExprMesh;

  1. You can find seExprMesh node from the network.

Attributes

enable

Do process or not.

outType

You can select some output type.

  • Position
  • Normal
  • Color
  • uv

color and uv is processed on current colorSet or uvSet.

seExprStr

Enter your SeExpr expression here.
In this field, you can use extra attributes as SeExpr variable directly.
But it's just limited float and vector.

envelope

Deformation influence.
0 is no deformation, 1 is full.

time

You have to connect here from time1.outTime if you use time or frame local variable.
This parameter drives all time value on the node.

inMesh

The mesh be processed.

outMesh

Processed mesh.

ctrlMesh

Additional control mesh.
If you want to use closestPoint() or closestNormal(), have to connect any mesh.

inMatrix

If you want to move the object by its transform, and follow the deformation, you should connect matrix attribute here.
Furthermore, this attribute is shown in Attribute Editor.
Because when you unconnect it, its values may not reset right.
Then you have to clear the unnecessary values manually.

Local Variables

P (vector)

Position

N (vector)

Normal

Cd (vector)

Vertex color

u (scalar)

Texture U coord

v (scalar)

Texture V coord

time (scalar)

Current time in second

frame (scalar)

Current time in frame

Additional Functions

closestPoint(pos)

Get closest point position on ctrlMesh from given pos.

closestNormal(pos)

Get closest normal on ctrlMesh from given pos.

Contact

If you have some ideas, or found bugs, please tell me it.

mail: taikomatsu AT gmail.com (Please replace AT to @)

seexprmeshmaya's People

Contributors

taikomatsu avatar

Watchers

Charles Wardlaw 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.