Skip navigation

Tag Archives: 3d

Those tools are ready to use but not yet implemented. They are completly working but we are waiting to implement them in good condition maybe on coming productions.

All those tools are based on action script class file (.as) that mean they are using same code it’s faster and can help you to make improvement on all tools in same time.

Slider:

This slider is fully working with morphers (or anything else need to use slider) you have spinner and slider integrate in same tool, the percent number is can be modified by user directly with keyboard. This slider is based on specific class that mean all slider you can create are running from same peace of code it’s really faster than usual sliders in 3dsMax.

Flash based Slider

Flash based Slider

Blend Shape tool:

This tools is completely awesome and faster than everything i created before. If you are looking in dotnet tool you can quickly see many problems while using them, slower performances, graphical issue with with the cursor.

Flash based square blend shape

Flash based square blend shape.

Here is a sample of what i made with this UI system.

This UI can automatically detect characters in scene without any datas saved. They are detecting the character’s .bip.

All those settings and parameters are working around 3dsmax’s biped.

All common tools need to work quickly in expert mode (full screen viewport)
You can find TCB tool with XML presets local for each users.
Biped’s copy past tool. Specific scale tool.
Hand position preset with copy past include.
All layers and Named selection set of the current character.
Quick smooth enable disable for the current character, hide unhide bones, hide unhide facial, freeze unfreeze modeling, hide unhide modeling.
The most visible is the synoptic to chose quickly your bones without them visible, this synoptic include shift+click to add more bones, right click to select symmetrical / opposite / select all spine, double click to select all childrens.

the first UI's tab (the common one)

The first UI's tab (the common one)

The most interesting part is the facials preset’s tab based on database with xml saved for every characters, with thumbnail pictures in two sized. When clicking on the thumbnails the expression is apply on the characters with all settings include: morphers, eye’s target positions, pupil’s scale value and more…

Facial presets UI's tab

Facial presets UI's tab

All those screen print are taken from my incoming Demo Reel.

We know how to send a simple call from flash to 3dsMax now we wanna know how to receive and this call inside 3dsMax.
This is not the best way to do that but a good example to have a quick understand of how it works.

First we have to put inside the rollout that host the .swf an listener for all fscommand it’s exactly like the Click

Eventlistener inside Flash viewed in part 3.

on flashhosteur FSCommand cmd args do
(
flash_FSCommand cmd args
)–End Of flashhosteur FsCommand

This command call a function used to filter all fscommand and find the good function to call using a case of.

fn flash_FSCommand cmd args =
(
–format « flash_FSCommand -> % %\n » cmd args
case cmd of
(
« AnimateToggle »:
AnimateToggle args
)
)

Here the case of will read the command argument receive from the fscommand if this cmd correspond to one of the cases it will

read the line just after in our case call another function inside our script.

The fonction called is :

fn AnimateToggle args =
(
if (args == « true ») then
(
animButtonState = true
)
else
(
animButtonState = false
)
)

This function examine the arg value sent by the fscommand.
In simple english this function is doing this:

If fscommand called AnimeToggle, the fscommand send to this function an argument, if this argument is equal to true then turn the animate mode to on else turn it to false.

To toggle animate mode we can simply in the case of:

« AnimateToggle »:
max tool animmode

But the goal is to show you how to use function to call inside an fscommand call. This will be very usefull when making more complicated things.

Here is the final .ms code at this step:

try(destroyDialog flash3dsMax_Explain)catch()  –if opened
try(destroyDialog flash3dsMax_Explain)catch()

fn AnimateToggle args =
(
if (args == « true ») then
(
animButtonState = true
)
else
(
animButtonState = false
)
)

fn flash_FSCommand cmd args =
(
–format « flash_FSCommand -> % %\n » cmd args
case cmd of
(
« AnimateToggle »:
AnimateToggle args
)
)

rollout flash3dsMax_Explain « Flash / 3dsMax Explain »
(
activeXControl flashhosteur « {D27CDB6E-AE6D-11cf-96B8-444553540000} » pos:[0,0] width:500 height:500 releaseOnClose:true

local SwfFile = « C:\\Users\\eddy\\Desktop\\flash3dsMax_explain\\flash_explain_03.swf »

on flash3dsMax_Explain open do
(
try
(
— initialise activeX object
flashhosteur.movie = SwfFile
)
catch
(
— retry
flashhosteur.movie = SwfFile
)
)

on flashhosteur FSCommand cmd args do
(
flash_FSCommand cmd args
)–End Of flashhosteur FsCommand

)
createDialog flash3dsMax_Explain « Shockwave Flash Input Test » width:500 height:500

As all 3dsMax users know there’s two big tools to organize and named groups of objects: Layers and Named Selection Sets. After longtime using max i create a workflow using those two tools to increase your rapidity and improve interactions of you tools with objects.

Differences between Layers and Named Selection Sets:

Layers:

Layers are the most used selection sets in 3dsMax because it’s a ready to use tool with different pre-establishe options like « Hide/Unhide, Freeze/Unfreeze, Renderable Toggle, Edit Object Color, Radiosity Inclusion toggle »

Why Ready to use?!

Contrary to Named Selection Sets you do not have to create scripts to makes Layers working in your workflow by default you they are merged when you merged objects likewise if you duplicate and object Layers will put the duplicated object in the same layer than the original object.

Here is a small pic to explain interaction between layers and Objects

An object cannot be in more than one layer at a time. (the boxs with red border are Layers with object inside, the box with green border is an empty layer.)

Named Selection Sets:

The advantage of named selection sets is the fact that an object can be inside all Named Sel Set you want at a time.

An object can be inside all Named Selection Set you want at a time.

Here is a small pic to explain interaction between Named Selection sets and Objects

Named selection sets is unfortunately used for quick selection creation and used because those selections are just for a scene and cannot be merged from another scene. For example if i merged a set of teapot who are in a Named Sel Set named « Teapots » the name sel set « Teapots » will not be merge you will have to create it again.

There’s a workaround for create two scripts:

– A script to save Name Selection in scene as string in object properties.

– A script as a callback used to merge Named Selection Set with objects based on strings saved by the previous script.

Another disadvantage is remaining the fact that if you duplicate an object it will not be putted in same named sel sets that the original object is. The workaround for that is:

– A script as a callback to put a duplicated object in the same named sel set than the original object is.

Now how to work the best way with those two tools:

I used to work with layers for part of selections that do not interfere with another part like if i have a rigged character i will create a layers for bones, a layer for facial setup, a layer for character model etc… On top of that i will make a named Selection set for all setup, a named selection set for all model, another one for all the character model and setup and another one for all characters in scene. The last Named Sel Set will be populate by other character if they are merge and have same Names in Named Sel Sets like « CHARACTERS » in each character scenes.

This pic is a simplified worflow sample.

It's a simplified worflow sample, you can easily imagine the logic of this workflow. (boxes with red border are layers, boxes with blue borders are Names Selection Sets and boxes with Grey borders are objects category)

As you see layers are used to make different and complete distinct parts and named Sel Set used for more global sets. Those settings are interesting to interact with others tools inside a production pipeline like rendering, animation, layout and more the goal is to make the faster and logical workflow based on easy selections sets.

If you have another workflow please share it with us!!

This is my first concrete post and we will start with a big part how to connect flash with 3dsMax using simple action script.

-History:

I’ve started this integration based on Jo Plaete search in connection between Softimage XSI and Adobe Flash. I have done different interface in autodesk Softimage that i will show you later.

As a global TD at Blue Spirit Studio i was looking to make Animations UI for different series. The first One was for Kaeloo (series by Cube Creative and Blue Spirit Studio concept and direction by Rémi Chapotot). For this series we (Sebastien Albert and Me) made an interface in maxscript of which we were not completely satisfied by this one, we tried many techniques like DotNet, object based setup like joystick directly in scene. After all test it was clear flash UI was the good technology and during this search process i was looking at home how connect flash and 3dsMax and make it communicate in both direction and found solutions that i bring at Blue Spirit Studio. This technology is actually used on one series named « Les Petites Poules » adapted from the comics of Christian Jolibois, Christian Heinrich / Marine Locatelli, Patrick Régnard produced by Blue Spirit Studio directed by Jean-Luc François and will be used on coming series and movies with any improvements.

I will explain this concept by many steps and this post is the first one:

-Why an home made Animation UI?!

-All the characters in the company i’m working in are made around biped. If  you work with biped you have to use the motion tools for biped but this UI is very slow and poor that why using an different UI can be a big Plus.

– It’s a good tool for long production laps, like series where animators have to makes Seconds and seconds animation by day.

-Why using a flash UI in 3dsMax?!

-Easy UI creation: You can easily create your own look, design using vectorial components.

-Large community for Flash and ActionScript.

-Fast and powerful Language as ActionScript 3.0 that is an object oriented programming language allowing for more control and code re-usability when building complex Flash applications.

– Easy animated UI.

-Easy way to access to web’s 2.0 concept and most interesting access to Enteprise 2.0 (concept explain here). This concept is my goal because i really think CG company s are good places to apply this concept.

-Small flash tools can be integrate in a maxscript UI like DotNet tools.

-When working with flash and 3dsMax can be a problem:

-Actually there’s no flash player supporting 64bit that can be a problem in any cases.

-If you have text inside swf and have to edit it by default it’s impossible because 3dsMax accelerators are on and block other interactions i made a workaround for that too.

-I do not found how to pass directly more than one variable from 3dsMax to Flash and from Flash to 3dsMax but i found an workaround that i will explain later.

-It’s complicated to work on two software in same times but if you used to work with classes it can be easier using simple code editor like notepad ++ with class you can debug and change code in you UI directly in you code editor.

This is the first post of many post that will follow (i hope).

First I want to make my apologizes for my English because i’m French but i want this blog is accessible for everyone and English is the good language for that.

I will try to put all my key advancement of my different WIP and make any explanation of my different search advancement.

First i will introduce myself:

My Name is Eddy Lowinski I’m actually Global TD in a company who makes  Animation Series and movies. I’ve started 3d longtime as self-taught person when i was teenager. When my time to choose my studies comes i choose to make CG studies to materialize everything i learned before. Here i was at school for 4 years and i found my actual job during my training.

So this is the story of the beginning (very quick story).

I hope you will follow this blog and enjoy it.