Viewpoint Developer Central    Viewpoint Forums    Viewpoint Forums  Hop To Forum Categories  Viewpoint Modeling    3ds max Visibility Track

Moderators: e_phoenix13
Go
New
Find
Notify
Tools
Reply
  
-star Rating Rate It!  Login/Join 
Member
Picture of Dustin Brown
Posted
I have many objects in an animation that share materials. If I want to make one of them transparent, I have noticed that have to do this through the material. Viewpoint doesn't seem to recognize opacity info from the Visibility track in max.

The problem with this is that if I make a material called "stainless_Steel" 50% transparent, then everything with that material on it will go 50% transparent where ever that material is applied.

The only option I can see is to create a Material for every single object in my animation.

I've got to be missing something, surely this isn't the case is it?

How can I control the opacity of an object on a per-object level in 3ds max, rather than a per-material level.

LightWave has an Opacity channel that Viewpoint recognizes. Why doesn't Viewpoint recognize 3ds max's Visibility track? They serve pretty much the same function.

Regards,
Dustin Brown
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Admin
Posted Hide Post
Hi Dustin,

Instead of setting the opacity on the material, try setting it on the object instead. However, you must set object opacity in VET since it does not recognize object-level opacity you set in Max.

Regards
 
Posts: 1188 | Registered: January 08, 2003Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Dustin Brown
Posted Hide Post
Thanks for your reply. The problem with that is we have an art team and a programming team. I would have to make some sort of opactiy timing sheet for the programmers to follow.

The best way I've found, which gives me (the artist) cotrol over the opacity animation directly in 3ds max, is to create Tracks Sets in Track View. So if I've got a different MultiSubObject Material applied to every object in the scene, I can make a Track set out of every opacity channel within a MultiSubObject Material and call that set "car" or "porchLight" or whatever the object happens to be. That way I can control all of that object's opacity channels at the same time.

It's a workaround.

- Dustin
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Admin
Posted Hide Post
Hi Dustin,

In this case, I'm afraid you are right. If you want objects that have the same material to be transparent at different times, and you can't use object-level opacity, then you're going to have to split the materials into different materials.
 
Posts: 1188 | Registered: January 08, 2003Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Admin
Posted Hide Post
Dustin,

You could try setting it up in 3DS Max the way you usually do by targeting the materials. Then, when the programmers bring it into VET, they can replace the targets for the opacity in the TimeElem from the materials to the objects themselves. Do you think that would work? At least that way you wouldn't have to give them an opacity timing sheet where they'd have to set up the opacity animations from scratch in VET.
 
Posts: 1188 | Registered: January 08, 2003Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Dustin Brown
Posted Hide Post
I'm not sure what you mean by "targeting the material", but yeah there are a couple of ways I could do it, but each has it's own down side.

1) For every object in my scene I could create a box; an Opacity Box if you will. I could then perform my opacity animation on the boxes. The programmers could probably just duplicate that animation, at the object level, for the real objects. So if I have "porchLight", which is the actual porch light, I would also have "porchLightOPAC", which is a box holding porchLights opacity animation; "car" and "carOPAC", etc.

2) Another thing that MIGHT work (I need to test it) is to wire the all the opacity tracks within a given MultiSubObject material to ... anything really: A visibility track, the X Rotation of a null/dummy, or whatever. I'm pretty sure that will work in max, I just don't know if it will cross over to VMP or if the wire will get sniped, so to speak, during the export.

Thanks again for your help!

- Dustin
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Dustin Brown
Posted Hide Post
Just did a test of the wireing. No dice, it doesn't cross over. :)

- Dustin
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Dustin Brown
Posted Hide Post
Up till now I've just been doing static tests.

I just did another test where I tried animating the Opacity channel in max. All that seems to cross over is the opacity value at the first frame. It stays stuck like that.

Am I missing something?

Thanks,
Dustin
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Admin
Posted Hide Post
No. Unfortunately, you are not missing anything. I was just informed opacity animations on neither the object nor material level will import. I sent what turned out to be a bit of a dissertation to engineering on how silly something so basic should not be supported. But they're really tied up right now with the new vmp release and the new mac vmp. So we shouldn't get our hopes up that it will be remedied any time soon.

For now, the best thing to do is target dummy objects with the opacity values you need. For example, you have one dummy object per material fade timeline. In Max, wire the opacity animation values both to the material (so you can see in Max), and to one of the dummy object's properties such as x translation (be sure to use a property that can import to VET such as translation).

After bringing it into VET and publishing the MTX, tell the programmers to swap the targets from the dummy objects' translate x values to the material or object opacities. This should be the easiest way. We actually use this sort of workaround when doing complex camera animations in our projects.

Regards
 
Posts: 1188 | Registered: January 08, 2003Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Dustin Brown
Posted Hide Post
I apprecaite your looking in to the matter for me.

This isn't too bad of a workaround. It's not as direct as what I'm used to being able to do out of LightWave, but it's better than nothing.

Correct me if I'm wrong, but wouldn't I have to wire the dummy in such a way that the ratio was 1:1? What I mean is that X=0 for the dummy would yield 0% for the materials opacity, and X=+100 for the dummy would yield 100% for the materials opacity. It seems like it would have to be this way, so the programmer would be able to copy and paste the values.

I ask, because I was considering makeing it a .1:1 ratio, where +10X for the dummy would be 100% for the material, so I wouldn't have to move the dummy as far. I can't see how this would be very helpful to my programmer though. He might throw something at me :)

Thanks again,
Dustin
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Admin
Posted Hide Post
Actually, it would have to be translated to VET as such:

In max, opacity values are 0 to 100.

In vet, opacity values are 0 to 1 (values in between are decimals).

So in max, you simply have to put the math logic in the wire parameter to divide by 100 before wiring the value into the dummy object. This should also resolve your problem with moving the dummy object too far.

Regards
 
Posts: 1188 | Registered: January 08, 2003Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Dustin Brown
Posted Hide Post
For anyone who's interested in doing what we've been talking about here, I've attached a sample 3ds max project file, created in 3ds max R8.

The current expression driving the wire parameters is simply X_Position, but you can change it depending on what relationship you want between the channels. It could (X_Position)/5 or (X_Positon)*100 or whatever you want.

Where the programming is concerned, you'll probably want to remove any opacity information from the material level, and focus on the object level opacity. Transfer all of the timing from the box's +X translation to the teapot's object level opacity.

And yes, I realize the teapot doesn't have a handle. I thought it fitting since VMP offers opacity animation but no way for us to directly utilize it out of max :)

- Dustin

opacity.rar (63 KB, 35 downloads) 3ds max file: wired opacity animation
 
Posts: 33 | Registered: August 08, 2005Reply With QuoteEdit or Delete MessageReport This Post
Member
Picture of Admin
Posted Hide Post
Very fitting indeed! I like the symbolism! ;-D

Thanks for taking time to post this for other developers, Dustin!

Regards

This message has been edited. Last edited by: Admin,
 
Posts: 1188 | Registered: January 08, 2003Reply With QuoteEdit or Delete MessageReport This Post
  Powered by Eve Community  
 

Viewpoint Developer Central    Viewpoint Forums    Viewpoint Forums  Hop To Forum Categories  Viewpoint Modeling    3ds max Visibility Track