Filmstrip animation: texturing/modeling tips?

i would like to create an animation in which a filmstrip scrolls by, with each “frame” in the strip having an individual video playing. like this:

firstly, any advice on how to model the film itself? i will need it to curl, so should i use a curve? a textured plane? should i model each “hole” on the sides or use a texture? any suggestions greatly appreciated…

secondly, for texturing the film, is there a way to automaticlly assign the video, or i would have to assign each face an individual material with a new video texture? is there a way to perhaps model just one frame and use an array or something to seamlessly extend it, similar to the “Add Chain” in 2.5?

Thanks in advance for any insight!

there was a tut on BN about modeling a whole film strip scene for a virtual cinema. For that example, that was just a plane angled away from the camera with an animated texture.

As far as the image itself, if you compute how many images are on screen at a time, then define that many planes and texture them using an offset, so that plane 1 plays a sequence that has frame 1,1,1,1,1,6,6,6,6,6,… and frame 2 is a sequence 2,2,2,2,2,7,7,7,7,7,12… etc. so that it plays frame 1 for 5 frames, then zips around to be strip 6 position …as all of them do. Or, write a script :slight_smile:

Thanks for replying!
i cant seem to find the tutorial, do you by any chance have a link?

i dont really understand what you mean by the image sequence…each frame of the film strip has to be playing an individual video as it scrolls by. can you please clarify?
thank you very much!

My impressions:

  1. The film strip should be a long segmented plane set up with the structure of the faces optimized for your materials/texturing, i.e., the faces should match the areas where different materials are applied. so you can use face boundaries effectively.
  2. Create one frame of the film strip and get it textured correctly, making sure your video texture(s) fits properly in the faces it’s assigned to. I’d use an alpha texture for the sprocket holes, much simpler than modeling them.
  3. Once one frame of the strip is finalized, use an Array modifier to extend it as needed, then Apply the modifier.
  4. Apply the other video textures to the appropriate frame sections, and test them,
  5. Use a Curve modifier to create the undulating shape on the flat film strip. This may require a lot of tweaking to make sure the frames don’t “stretch” from being curved.
  6. If animating the curve, pay attention to possible texture stretch issues

that is about what i was aiming for, my biggest concern is as you say having the array separate each frame by the curve modifier so it doesn’t look like a continuous tape. i guess ill try to play around with that…

as for the texturing, you suggest that i create a texture in photoshop or something, apply to one frame only, and use the array to extend it?

When creating the initial “prototype” frame, include parallel subdivisions along the length of the frame so it has segments that can flex well when a Curve modifier is used. Use the single prototype frame to solve all your texturing issues, using the same textures you’ll eventually apply along the full length of the strip, including the video textures – you’ll have to do this one at a time for the single frame, but in the process you’ll be setting up all the materials you’ll need for the full-length strip. As I see it you’ll need one material for each video frame area (remember that there is a limitation on number of materials, though).

Use the Array modifier to create the full-length strip by duplicating the prototype frame, but leave it un-curved as yet. When you Apply the Array modifier, make sure the seams between the array segments are welded.

Select the “picture area” parts of the multiple frames (one frame at a time) to apply the pre-produced & tested video texture materials. They should fit OK if the proper mapping options were chosen for the prototype.

Add the curve modifier and adjust if any texture-stretching occurs.

hmm… perhaps I would use a different approach.

I’d take each frame and select it in the mesh then unwrap that frame flat in the UV editor. Just do them one at a time making sure that the frame fills the image/movie you want to use.

Then I’d create the film strip with alpha over using nodes just add it to the movie you want t use and render them out to png’s in a folder so you don’t have to deal with patching it all together at once. Now you should have a set of split out frames in a folder with the film strip rendered over the movie and with alpha.

The rest is simple. For each square of your film strip in the mesh create a new material. Add the rendered film strip part and make sure to assign it to the mesh via it’s UV coordinates that you have already set up. Each one should now show in it’s assigned square. If you curve the square the movie should deform properly with it.

chipmasque: thank you very much for the detailed response. i already made a quick test using an alpha texture and a straight array…works beautifully. i now have to try with videos in the frames…

deathguppie: sorry, im not really sure i get it…ur saying i should render out the individual frame videos first, and then assign it to the deformed filmstrip? how will that be different?

Might be easier to set these up on a single frame before creating the array, using texture mapping options that will work once the array is made. Since the frame is flat it shouldn’t be a problem. Each video material may need its own values to get it to fit properly in the frame – depends on the video sources.

BTW, one thing to keep in mind – actual video sources (like .avi files) can be problematic when used as textures, because of the compression schemes they usually use. Better to write these out as .PNG image sequences for use as textures (raw .avi can work but it’s usually bloated in file size). Blender can write out the movies, or use a utility like Virtual Dub (it always does a good job imo)

thanks, you are right i realized that and did a test with video textures first. it first got stretched across the array but i fixed it by using repeat in the image texture settings…
thanks for the tip about video files, thats a good idea…ill probably just use the VSE to render a png sequence…thanks again for all your help! (i might still need more…so stay tuned! ;))