PDA

View Full Version : Image sequence issue - animating LCD display ::



mats4d_
11-09-2005, 03:27 PM
Hello-

Ive been looking around for ways to do this easily, and im stumped.

I need to animate a device with an LCD screen, the LCD screen has a lot of combinations and submenus, I have tried creating separate objects for the screen and turning them off and ON with dissolve envelopes (a mess with 50+ screens)

Another attempt was to create an image sequence (synced to when the hand pushes the buttons to navigate this LCD screen), again timing is likely to be changed a few times, and its messy to go into AFX and output a .mov or 2000 frames image sequence.

I have tried just naming the actual frames where the LCD screen changes (ie : lcd001.pct - lcd340.pct - lcd545.pct but it will not recognize this as a sequence ( a lot easier than outputting 3000+ frames)

Any ideas on how to do this? It would be greatly appreciated !! :)

Matt

MonroePoteet
11-09-2005, 05:11 PM
You might use the sprite approach: arrange them in an X,Y array within a single large image (or a few), and then use a 1-frame envelope shift on the texture position to select the appropriate screen by specifying the X,Y position times the individual screen size within the larger image.

mTp

mats4d_
11-09-2005, 10:55 PM
wow, thanks monroe !

Didnt think of that, that is a lot easier to control if I need to tweak the timing.

Ill give it a go, im sure it will work 100%

Matt-

MonroePoteet
11-11-2005, 10:06 AM
To expand on the theme, you might even make the X,Y offset into the sprite map Expressions, using a Null to control which image is shown.

For example, if you have a 5x4 sprite map (5 screenshots across, 4 down), and a controller null called MyNull, then you could use:

(mod([MyNull.Position.Y],5) * <screenshot_width>)

for the X offset, and

([MyNull.Position.Y] / 5 * <screenshot_height>)

for the Y offset. The screenshot_width and screenshot_height are Lightwave dimensions (i.e. the size of the screen and screenshot images in LW), not pixels.

You'd have to be careful to position the Null exactly on integer boundaries or you'd see edge artifacts, but then you'd do the whole job by controlling a single envelope (MyNull's Y position) to switch images.

If you end up using multiple sprite maps (as I'd expect with that many screenshots), you could have multiple objects mapped to the multiple sprite maps, and use a range expression to dissolve them. Something like:

(([MyNull.Position.Y] >= 0) && ([MyNull.Position.Y] < 20)) ? 0 : 100

which would show that object when MyNull was between 0 and 19.99 meters up.

You'd have to modify the X,Y expressions to use a mod() function on the Y position and the overall spritemap size. If the sprite map size is 20 screenshots per map (as in this example):

mod(mod([MyNull.Position.Y],20),5) * <screenshot_width>

mTp