vicar
14-08-2006, 09:57 PM
Hello All !
I wonder if somebody would be so kind as to point me closer to the solution of the particular MAX Script issue I have.
Using Max 6, I need a precise control over a video file bitmap starttime property (found in "Time" rollout of the Material editor).
That property is not animatable directly in Max 6 :(, so I wrote a tiny script that manages what I want to achieve, but only at viewport level.
Here's a script :
*************************************
unRegisterTimeCallback startFrame_add
fn startFrame_add = (
if mod sliderTime 100 == 0 then (
meditMaterials[1].material1.diffuseMap.starttime += 25
)
)
registerTimeCallback startFrame_add
*************************************
I know it's very crude, but as said - it works as a "proof of concept".
What it does is : Every 100 frames the start time (offset) of a video file placed in difussion channel of my object material is set back by 25 frames.
I won't bore anybody explaining just why do I need such effect, suffice to say the script above works, but just in the viewports.
It does not execute at render time, however :(
I know I am missing something vital to do with a different type of callback mechanism, but after trying out several routes I am none the wiser still ...
Can anybody think of how to implement a script that will have the same result, but at reder time ?
(And before anybody suggests to edit my source Video file in the first place prior to using it in Diffuse channel - Thank you, but it would be very unpractical in my case as I need to use several varying segments of it with different delays)
Your help will be much appreciated !
Thank you.
I wonder if somebody would be so kind as to point me closer to the solution of the particular MAX Script issue I have.
Using Max 6, I need a precise control over a video file bitmap starttime property (found in "Time" rollout of the Material editor).
That property is not animatable directly in Max 6 :(, so I wrote a tiny script that manages what I want to achieve, but only at viewport level.
Here's a script :
*************************************
unRegisterTimeCallback startFrame_add
fn startFrame_add = (
if mod sliderTime 100 == 0 then (
meditMaterials[1].material1.diffuseMap.starttime += 25
)
)
registerTimeCallback startFrame_add
*************************************
I know it's very crude, but as said - it works as a "proof of concept".
What it does is : Every 100 frames the start time (offset) of a video file placed in difussion channel of my object material is set back by 25 frames.
I won't bore anybody explaining just why do I need such effect, suffice to say the script above works, but just in the viewports.
It does not execute at render time, however :(
I know I am missing something vital to do with a different type of callback mechanism, but after trying out several routes I am none the wiser still ...
Can anybody think of how to implement a script that will have the same result, but at reder time ?
(And before anybody suggests to edit my source Video file in the first place prior to using it in Diffuse channel - Thank you, but it would be very unpractical in my case as I need to use several varying segments of it with different delays)
Your help will be much appreciated !
Thank you.