Help with plugin installment Simplex

Hi,

trying to install https://github.com/blurstudio/Simplex plugin
Got stuck when executing the command gives missing simplex_maya.mll error in plug-in folder.

Thenks for the help!

Have you installed the plugin? That repo you linked is only for the UI code.

1 Like

Hi!
Thanks fr the reply.
No, i have not installed anything besides the one above.
I looked the solver link before, but i don’t quite understand the process and the instructions.

-edit-
I have now installed cmake (don’t know what it is nor what to do with it…)
Instructions say " Make sure you can run cmake from the command line. Look online to show you how"
Not sure what it means, tho.

Running mayaConfigure.bat gives following result:

C:\Users\XXX\Documents\maya\2018\SimplexPlugins-master\mayabuild_2018>cmake -DMAYA_VERSION=2018 -G “Visual Studio 15 2017 Win64” …
‘cmake’ is not recognized as an internal or external command,
operable program or batch file.

C:\Users\XXX\Documents\maya\2018\SimplexPlugins-master\mayabuild_2018>cmake --build . --config Release --target INSTALL
‘cmake’ is not recognized as an internal or external command,
operable program or batch file.

C:\Users\XXX\Documents\maya\2018\SimplexPlugins-master\mayabuild_2018>pause
Press any key to continue . . .

Hi there! I wrote Simplex.
As Bob said, there are 2 repositories for simplex now. One contains the code for the simplex_maya.mll plugin, the other contains all the code for the UI required to make systems. It has, unfortunately, been a while since I’ve had time or motivation to work on the instructions.

CMake is a program that helps make other programs (or in this case, plugins). It handles a lot of the complex junk that you have to deal with when compiling.

The reason that running mayaConfigure.bat is failing is because you can’t run cmake from the command line. That bat file is just a bunch of cmake command line commands. The easiest way to fix that is probably just reinstalling cmake. There’s an option in the installer talking about “PATH”, and you want to make sure “Add CMake to the system PATH for all users” is checked. That will ensure that if you open a command prompt (winKey+R, then type cmd into that box), when you type cmake into the cmd window it won’t say 'cmake' is not recognized as an internal or external command

Feel free to DM me if you need more help

2 Likes

Great!
DM sent. Thanks!

Good timing on this thread as I was just looking at your tool. It’s been awhile since I’ve used BCS and was hoping to take your tool for a test drive. If you ever get around to it, I’d love to see a short demo. Doesn’t have to be fancy. Just a quick run through of the setup and features. Looks great. Can’t wait to test it out.
Cheers,
-Sean

I’ve got some videos that walk through an older version of simplex. Most of this stuff is still relevant.

And I forgot to edit out waiting for an export … Oops [edit: Fixed]
ehh, this is for an older version of simplex. I’ll get the next one correct.

If this video is ever taken down, just check Simplex github page for a newer version. Also, I’ll try to remember to update this link

2 Likes

Awesome, thank you :slight_smile:

Edit: Just watched your video. Holy crap, Tyler! Incredible!! Way more intuitive then BCS and looks way more powerful too.
Thanks again for the demo and tools.

1 Like

Thanks. I really appreciate it.
One other thing you can mess with: the slide values of the combo inputs don’t have to be -1 or 1, they can be any number in between. It’s not an RBF, but you can get similar results. (It uses barycentric weights calculated in N-Dim simplices, hence the name “Simplex”).

2 Likes

HI tfox_TD : first of all, many thanks for sharing such awesome pluging.
I’d really love to try it, but I couldn’t succeed in installing it, I downloaded and install both Cmake and virtual studio, edited the bat file, but when I try to compile it I had bunch " fatal error C1083" :

src\lib\utils.h(24): fatal error C1083: Cannot open i
nclude file: ‘rapidjson/document.h’: No such file or directory

Do you have any idea what I"m missing please ?

thanks in advance !

Yeah, that’s because you need both rapidjson and eigen to make compile the plugin. Those aren’t included when you just download the .zip file. If you had used a recursive git checkout to download the code, it would automatically be included for you.

If you look here: https://github.com/blurstudio/SimplexPlugins/tree/master/include
you’ll see links to the two dependencies. Download them, and put them in that same folder on your computer.

In the future I will definitely update the directions to make that clear. And at some point I’ll have to figure out how to get CI working (or at least put up some releases), but now is not that time :slight_smile:

1 Like

Awesome ! thank you so much ! I could get the pluging.

once again thank you so much for all your time, you are a love !

Hello Tyler!

I have been using Simplex for about 6 months now. And I have to say that Simplex has made light work of everything I have thrown at it. It is super easy to use, and very reliable. Thank you for making it available!

I am diving into the corrective interface that you mention at the end of your walk through video. I am able to output the corrective references. But I am stuck trying to apply the correctives to my smpx file. Looks like I need to create a py version of the smpx. But I am missing the pysimplex module that is imported from applyCorrectives.py. I do not see it in any of the repo’s. Help!

Thanks!

That’s great to hear!
And yeah, there is a python interface to the simplex solver, part of the SimplexPlugins repo

Running pythonConfigure.bat should build the .pyd file you need.

1 Like

Ah ha. I missed the pythonConfigure. I am able to continue now. Thank you so much for your reply!

thank you for your great plugin ! it works great…but i cant save the smpx file, i have this error. any idea ? : File “C:/Users/Utilisateur/Documents/maya/2022/scripts\simplexui\items\simplex.py”, line 1244, in exportAbc

arch, abcMesh = buildAlembicArchiveData(path, self.name, jsString)

TypeError: buildAlembicArchiveData() missing 1 required positional argument: ‘ogawa’

Glad I could make something useful to you! And welcome to the forum!
Aaaanddd … that looks like a bug. Oops :blush: I’ll get that fixed when I get back to work on Monday (edit: The fix is live on github)

If you’re not willing to wait for me to update, then it should be as easy as changing line 1244 of simplex.py from
arch, abcMesh = buildAlembicArchiveData(path, self.name, jsString)
to
arch, abcMesh = buildAlembicArchiveData(path, self.name, jsString, True)

Just add that , True with the capital T, restart Maya, and you should be good.

1 Like

Thank you so much tfox_TD ! working good now :slight_smile: ( and thank you for the tips). I have some questions regarding the interface, but I’m not sure if this is the right place to ask. I’ll just ask one: when I create controllers to activate blendshapes (via set driven keys), everything works fine and the combinations activate perfectly, but the slider values in the Simplex interface remain at 0. This is problematic when testing a ROM and retargeting complex poses. If I want to add a new combination, I have to manually reset the slider values by juggling between the Maya BSnode and the Simplex interface, and it can quickly become a very long operation when there are a lot of blendshapes and they have to be found one by one in each node. If the slider values were displayed at the same time as those of the Maya blendshape node, I could just select the sliders to make the combination. If this question is not relevant here, I will delete it.

Don’t worry. Ask away!

Hmm. sounds like there’s a misunderstanding (or at least a mis-naming) of how Simplex works. You shouldn’t be touching the Maya blendshape node at all.

Simplex creates 3 nodes. A control node (ending with _CTRL), a logic node (a custom node I wrote), and a regular Maya blendshape node.

The control node is there to be interacted with. If you’re setting any keys or connections on anything, it should be on the control node. There’s nothing inherently special about it (it’s just a transform node with a bunch of custom attrs), but it is required to make the system work.

The control node is then connected to the logic node. The logic node gets all of the slider data via connections from the control node, and then also gets all of the data from the UI, like what kind of interpolation you’re using for intermediate shapes, or what sliders are connected to what combos, etc. It reads all that data, and figures out which blendshapes should be turned on to which values.

Then the outputs of the logic node are connected to the individual shapes on the blendshape node.

On top of that, the UI is there to manage the creation and manipulation of all of those connections.


If you’re doing your shape work via a ROM, you may have to get some extra scripts. We don’t use ROMs for sculpting too often at work, so I haven’t had any internal requests to build in support for that workflow. That’s not saying it couldn’t be added, just that it’s not currently there. A quick script that reads the values on the CTRL object and set those values back in the UI would probably be the minimum to get you working. Here you go:

from simplexui import SIMPLEX_UI
from maya import cmds

if SIMPLEX_UI is not None:
    smpx = SIMPLEX_UI.simplex
    vals = [cmds.getAttr(sli.thing) for sli in smpx.sliders]
    smpx.setSlidersWeights(smpx.sliders, vals)
    SIMPLEX_UI.repaint()

Unfortunately I wasn’t able to write an automatic system for that when I first wrote the UI (at least not a performant one), but it’s something I’ll revisit when I have some time.

1 Like

Thank you very much for the detailed explanation! I understand better now. Thank you also for the script that works perfectly to retrieve controller information. And finally, thank you for the v3.03 update! I don’t know what else to say except to thank you for your work that will allow me to go further in my rig creation! Thank you.

2 Likes