Jump to content

[3dsMax] Mod Util Maxscript


blabba

Recommended Posts

Sup LL! Been awhile since I've posted something new here.

 

My latest endeavour has me on a scripting quest in order to make some tools to streamline my workflow for Project Citrus.

So I present to you some 'Mod Utils' for 3dsmax users. Currently only Has 1 specific utility, which is MaxSlide an alternative to Outfit Studio.

 

 

Requirements:

- 3DSMax (Technically Any version above 2009)

- 3DSMax Nif Plugin.

 

Current Features:

- MaxSlide 1.0: Import/Export BodySlide Projects (.nif/.BSD/.XML) directly from 3dsMax

 

Current Limitations:

- Cannot import/export Zap Sliders

- Export Progress Bar not functional

- Probably bugs aplenty, since I haven't had much time to beta test myself.

 

Installation:

1. Place Scripts folder in your 3dsMax install directory

2. In 3dsMAX click MaxScript icon and 'run maxscript' and select BodySlideutils.ms

 

Bug Reports/Feature Requests are welcome and encouraged. I don't have as much free time as I used to but I'll try to get through them as I can.

I'll still be working on this script this weekend to work out and implement the zap slider support and some other features.

 

I'll post more legitimate tutorials as I can, but for now the tooltips should more or less describe everything you need.

Scripts.rar

Link to comment

Sweet, it's happening :D

 

On a related note, any specific import settings I should be using for the mesh? Like seams, skeleton and stuff?

 

I noticed the file includes XPSME 2.05, but for some reason, it has 'less' nodes/bones compared to the Nif version one (the nif version when imported has belly, vagina, etc, while the Max included one is lacking those). Using Max 2011 btw (not sure if this affects it).

 

Also, not sure, but I keep on getting this error:

Unknown property: "GetChildrenByTagName" in (xmlNode tag:"SliderSet" parent:dotNetObject:System.Xml.XmlElement DotNetNode:dotNetObject:System.Xml.XmlElement) <<
Link to comment

 

Sweet, it's happening :D

 

On a related note, any specific import settings I should be using for the mesh? Like seams, skeleton and stuff?

 

I noticed the file includes XPSME 2.05, but for some reason, it has 'less' nodes/bones compared to the Nif version one (the nif version when imported has belly, vagina, etc, while the Max included one is lacking those). Using Max 2011 btw (not sure if this affects it).

 

Also, not sure, but I keep on getting this error:

Unknown property: "GetChildrenByTagName" in (xmlNode tag:"SliderSet" parent:dotNetObject:System.Xml.XmlElement DotNetNode:dotNetObject:System.Xml.XmlElement) <<

 

Yea I forgot that there's some vanilla xml's in the new bodyslide that you have to manually fix (What xml were you trying to open?)

 

As for import settings, you should have your nif import settings preset to not import skeletons when importing the meshes (Or just leave the noprompt checkbox unticked to set it manually for yourself). And the seam/no-seam stuff you should actually ignored for now. I'm re-writing that part completely to make it more user friendly and even easier (well re-writing the whole thing TBH for some major performance and feature upgrades)

 

The included XPMSE skeleton 'seems' to have less bones because I sorted the bones by layers. If you look at your layer manager, you'll see a whole bunch of layers sorted by bone types. (The names of the layers tell you what type of bones are in that layer) by default when you open up the max file only the basic layers (BBP bones and vanilla body bones) are set to visible everything else is hidden.

Link to comment

Oooh, ok that makes sense, didn't check the bone layers.

 

Not sure, I just selected the default Bodyslide folder, with a default install of CITRUS (both fresh install) and double clicked the first option that it shows me (CITRUS BETA 2.0).

 

Also, lol, seems like the error was because I didn't import the bones beforehand, silly me ;P, but now that I did, I'm getting this issue:

Runtime error: Attempt to access deleted <MixinInterface> <<

BTW, I installed the XMLStruct_v1.2 file that you mentioned in the CITRUS thread, is this contributing to the issue at hand per chance (it's in my Startup Script folder)? Also, I didn't play around with any other options, just the import one for now in the Script window.

Link to comment

Oooh, ok that makes sense, didn't check the bone layers.

 

Not sure, I just selected the default Bodyslide folder, with a default install of CITRUS (both fresh install) and double clicked the first option that it shows me (CITRUS BETA 2.0).

 

Also, lol, seems like the error was because I didn't import the bones beforehand, silly me ;P, but now that I did, I'm getting this issue:

Runtime error: Attempt to access deleted <MixinInterface> <<

BTW, I installed the XMLStruct_v1.2 file that you mentioned in the CITRUS thread, is this contributing to the issue at hand per chance (it's in my Startup Script folder)? Also, I didn't play around with any other options, just the import one for now in the Script window.

 

Yea you should get rid of the old xml struct, I copied the library and expanded upon it with some of my own functions, it's included in the new startup script in the script package from here.

Link to comment
  • 2 weeks later...

It's wonderful. But i got MAXscript Rollout Handler Exceptio error when try to import any projects.

And the script was stuck here:

 

 

fn createMorphers ShapeNodes TempSliderNodes =
(
MorpherCount = ((TempSliderNodes.count/100) as float)
if(MorpherCount > 1.0) then
(
for currentShapeNode in ShapeNodes do
(
local BodySlideMorpher1 = Morpher()
local BodySlideMorpher2 = Morpher()
BodySlideMorpher1.name = "BodySlide 1"
BodySlideMorpher2.name = "BodySlide 2"
ObjectName = currentShapeNode.getText()
TempSelect = GetMeshObjectByName ObjectName
addModifier TempSelect BodySlideMorpher2 before:2
addModifier TempSelect BodySlideMorpher1 before:2
)
return 2
)

else
(
for currentShapeNode in ShapeNodes do
(
local BodySlideMorpher = Morpher()
BodySlideMorpher.name = "BodySlide"
ObjectName = currentShapeNode.getText()
TempSelect = GetNodeByName ObjectName
addModifier TempSelect BodySlideMorpher before:2
)
return 1
)
)

 

 

I'm using max 2012 x64 with theFigment's nif plugin 3.7.3. Thanks for your help!

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...