Skip navigation

Correctly time a movie clip to a texture:

1. Create texture to hold movie clip

(1.5 Create a new Material to use as the texture. In the Material, click the Editor tab and turn on “Animate Preview” to see the texture update in the viewport)

2. Add movie clip to desired channel. In my case, I’m putting an image on a TV screen, so I’m clicking the little dots under Luminance>Texture and adding the movie file as the texture.

3. Click on the name of texture (or the dots), then select the Animation tab at the top of the Bitmap Shader

Click Calculate. This tells me how many frames I have. In this case, 2248.  “Timing” is used to tell the clip to start playing at a different time on the C4D timeline.  I know I want my clip to start when C4D is at frame 1260, so I put 1260 in Range Start.  If I want it to play one frame of movie for each frame of C4d, I have to do a little math:  I’m starting at 1260 in the timeline, my clip is 2248, so (1260+2248) my Range End needs to be set to 3508.

This assumes that C4D and my movie both have the same frame rate. (note that annoyingly, my 29.97 clip–effectively 30fps for simplicity) will read as simply “29”.

Update: When using an image sequence, select “NO” when it asks if I want to save the image to my texture folder. Otherwise, it will only show the first frame of the sequence.


To get the caps of an object connected to the hulls, select the object in the Object Manager, then choose Optimize. In R16, this is found at Mesh > Commands > Optimize.

You can also connect two objects by placing them under the Connect Object, which welds the objects together in a non-destructive way. The Tolerance level determines at what distance they’ll “snap” together. It’s good for snapping caps on extruded text, if you’re not needing any additional modeling, or if you feel like you don’t want to commit to the modifications you’re making.

When using the display tag to fade an object out, I kept getting a very not-smooth ‘pop’ in brightness of the underlying object as soon as the above object reached zero transparency. The lower object was darker until we finally hit zero transparency on the occluding object, then the lower object was suddenly bright.

Actual issue: The problem was that the lower object was reflective, and it’s appearance had two layers of the fading object applied to it: 1: the occluding object’s transparency, and 2: the reflection of the occluding object.

Fix: Add a Compositing tag to the occluding object and turn off “seen by reflection”. This only works, of course, if you don’t need the occluding object to be seen in the reflection of the shiny object.

Technically, I don’t understand why I have to do this. It still seems that a gentle fade should always end in a gentle fade, even if I’m seeing through the occluding object twice (once through it, once through the reflection of it in my shiny object). But I guess I’ll figure out why it’s this way later.


Many publishers have pretty old minimum levels of swf compatibility for Flash banner ads. I just encountered this when a publisher required swf version 10.1 or older. The problem is that the newest version of Flash (Flash CC 7/2014 at this writing) only saves out down to 10.2. The solution? Fortunately, we discovered that we could still open the file and export out of Flash CS5.5, using our AS3 code. Whew! For a minute there, I thought my client would have to go find an AS2 developer. Good luck with that!

Now, just to make a note for next time, here’s how we implemented dual clickTAGs.
(Note that the syntax of “clickTAG” may need to change between publishers.)

AS3 code that handles the button click (this is the most basic implementation):
//==== excerpt….===========//
public function clickHandler(evt:MouseEvent):void{
navigateToURL(new URLRequest(root.loaderInfo.parameters.clickTAG), "_blank");
public function clickHandler2(evt: MouseEvent):void{
navigateToURL(new URLRequest(root.loaderInfo.parameters.clickTAG2), "_blank");


These are the two lines we needed to change to hand the two URLs to the Flash when asked:
//===========HTML basics for testing:========excerpt…

<code> object type=”application/x-shockwave-flash” data=”main.swf?clickTAG=” width=”728″ height=”90″ id=”main” style=”float: none; vertical-align:middle”
param name=”movie” value=”main.swf?clickTAG=” /  </code>

(additional HTML code…)

New to ClickTAGs? Read on…
If you’re really new to clickTAG usage, here’s the gist:
Publishers want to be able to track when people clicked on their ads. They also may want to change the target URL. To do this, instead of hard-coding the destination URL into the Flash Actionscript, we ask Flash to get it from the HTML. So naturally, we need to modify not only our Actionscript code, but also provide those links in the HTML. Generally, the Flash developer isn’t responsible for making the HTML code, but it’s helpful to know how to at least get a HTML template going so you can test it.

On my mac:

  1. Open AVCHD file with Quicktime 10
  2. Select all clips and open
  3. For each opened clip, select File Export…
  4. Press return to save default “movie” format (does not transcode) (you can save to somewhere else here, if desired. I like to move them all when I’m done.)
  5. In finder, all the saved movies will be inside the AVCHD package, which you can view and move by selecting the AVCHD file, right-clicking, and selecting “show package contents”


There are pretty much zero brokerages that are both CFTC regulated (for US citizens) which also have their own version of Metatrader for the Mac. (Let me know if you know of one.) Of the non-CFTC ones that have a Mac version, I suspect they’ve prepackaged something similar to the solution I (finally) found below for running MT4 on my Mac.  If it ends up working out for you (i.e. profitable!), throw this guy some bitcoin!

Installing MT4 & 5 on Mac

His instructions:
1. Download WineBottler 1.7.x from
2. Copy WineBottler and to your Mac.
3. Start WineBottler.
4. From the “Download” Section, click “Metatrader 5”.
5. Give the App a name.
6. Don’t let the installer create a Desktop Shortcut.
7. Don’t let the installer run Metatrader after installation.
8. Wait 🙂 .
9. Done. Run Metatrader from “On My Mac” or from wherever you have installed the App to.

My Note: This installed a generic version, which I couldn’t use with MBTrading. I had to go to 
— new prefix (default)
–select to install: mbtrading4setup.exe
–choose “this is an installer”
–“bundle” checked
–“Silent Install” checked

…which installs the Wine configuration as well as packages it as an .app for me:

If you’re moving files over to it, it’s also noteworthy that your indicators and EAs are
tucked away in :


(p.s. I’m not intentionally promoting MBTrading. They seemed to get pretty good reviews, are US-based, but don’t have chat-help 24/5, which does. So, I’m paper-trading both of them right now. Let me know if you have an opinion on these or others. I’d like my Georges to be as safe as possible once deployed!)


Here’s a basic setup to attach a spline between two objects. When you move either of the objects, the spline will stay attached. For example, attaching a power line between two power poles.

Get Depth of Field going:

Render Settings: Turn on Physical renderer, and check Depth of Field.


Camera>Object: Adjust Focus distance to desired object.

Camera>Object: Not enough DOF? Try using a longer lens (focal length), then adjust Sensor size to resize the view.

Camera>Physical: Adjust F-Stop down to increase DOF. Unrealistic numbers (like 0.5) are fine if necessary.

on the second hand’s rotation, add the expression:

or if you want it to start at a particular rotation, use:

Thank you Dan Ebberts.

I’m in the middle of a project where the client said, “Let’s make the ones farther in the distance fade in opacity.”  Hmmm. I have 384 objects in my Comp!  Expressions to the rescue!  Paste this code into the existing Opacity of each layer that needs to be controlled.

//Use Z position range to control opacity
fullOnZ = -900; //z value where you want opacity to be 100%;
fullOffZ = 2700; //z value where you want opacity to be 0%;

num = 100-(100*(transform.position[2]+(fullOnZ*-1))/fullOffZ);

//this step allows you to keep existing opacity keyframes
//by adding our formula result to the existing opacity
num = num * (transform.opacity/100);

// done!
value = num;