Ok - got it working...
First, I'd like to say that this project uses a **brilliant** method for creating an "inline" image sequence from parts of an image.
As a different (1080/60p) project, I will be referring to a 1920 x 1080 image and all pixels (full screen image) will be used.
The first thing to do is decide how many columns and rows you will be using. How much of an image you use is not a priority.
Divide the Width of the image by the number of Columns. [1920 ÷ 20 = 96]
Divide the Height of the image by the number of Rows. [1080 ÷ 15 = 72]
In my project, I'm using a 1920 x 1080 with 20 columns and 15 rows — the "full" image.
If we imagine for a moment the full image cut along the column and rows into "tiles", this is what the oscillating animation is going to do, starting with the upper left corner, sliding the image to the upper right corner with the sawtooth oscillator. When the waveform reaches it's peak, we will slide the image up 72 pixels and "scan" the next row. Repeat until we reach the bottom right corner.
The image will slide in a 96x72 pixel "window" (or "viewport") and each frame of the 20 x 15 = 300 frames will display a different piece of the image. What a wickedly cool way to create an "inline" image sequence!!!
Every object in Motion belongs to at least one group, a "global" top level group. You can make as many groups as you like and set 2D/3D properties of each one independently. Anyway, once you import/add your image, it is placed in a group. Select that group and in the Group inspector, set 2D and Fixed Resolution. For Fixed Width, set it to your calculated tile width. For Fixed Height, set it to your calculate tile height. For my project, I'll be using Fixed Width = 96 and Fixed Height = 72. Motion will not draw *anything* outside of the bounds of a 2D Fixed Resolution group and whatever "fills" it is our "tiled" image.
Since I'm going to be animating my image in this small viewport, I need to set up its starting point. To set up the upper left corner of my image, I already have to know that when tiling a Replicator, the "cell" occupying the top left corner is pinned in position at its Center point. So my first offset Position > X value is 1/2 the 96 width or 48. The Position > Y value needs to move the image down by 1/2 1080 - 36 or "-504".
Adding the Oscillator to image:
Right click on the Position > X parameter for the image and Add Parameter Behavior > Oscillate. The Amplitude needs to move the image from right to left so that the tile pieces will appear in left to right "sequence". The Amplitude will be the 1/2 the Width of the calculated Columns X Fixed Width (cell width). In this case, full sized, 1920 ÷ 2 and going from right to left - so negative or -960.
The Speed of the Oscillator will be however many cycles is required to "scan" the number of rows needed or simply the number or Rows. My project is 60p and 10 seconds long. I only need 20x15 (300) frames. To limit the animation to exactly 300 frames, I move the playhead to frame 300 (or 299 if you start your projects on Frame #0) and set an out point for the image's Group. That will set the same out point for all objects (and this behavior) inside the group.
The Oscillator always starts on 0. It needs to be adjusted so that the peak of the sawtooth wave starts on the first frame. In the Sheffield example, a 30fps project required a speed of 90. In my 60fps project, it will take a Speed of 2x90 (180) to create the same number of wave cycles. However, the adjustment to the wave peak will still only be -11 using the Start Offset parameter.
The easiest way to deal with the Speed parameter and Start Offset adjustments is to select the Oscillator behavior and open the Keyframe Editor (click the three linked diamond shapes at the bottom right corner of Motion's window.) You should see the waveform. Count the peaks. Set the Start Offset so that the first peak lines up on the first frame, then count. You should have Row peaks. The last frame should be the -Amplitude value:
To answer Karsten's question: the -11 is 300/15 = 20frames/2 = 10 frames. Since the Sawtooth waveform never really Peaks, but resets on the cycle's end frame, the Start Offset is adjusted by one more frame. That will not always be the case in other circumstances, it's "what works" in a 300fps 15 cycles animation. Same thing about the Cell Height adjustment - things in Motion are not always perfect. A sawtooth has a -Amplitude value but never fully attains the +Amplitude value due to the reset of the waveform.
To the image Position > Y, right click and Add Parameter Behavior > Ramp. The Start Value will be 0 and the End value will be the height of your "tile" times Rows. In my case, it's 1080 (72 x 15).
To the image Position > Y, right click and Add Parameter Behavior > Quantize. The Step Size will be the height of your group Fixed Height. In my case: 72. The rate at which Ramp moves the image vertically in Quantized jumps is simply *synchronized* with the speed of the Sawtooth oscillator. The quantized jump in Y position happens exactly when the sawtooth wave finishes one complete cycle.
I renamed my animated image group CardsBuild.
With CardsBuild group selected, type the K key to create a Clone.
The Clone is a completely rendered entity consisting of 300 frames of 96 x 72 sized images — and inline image sequence of pictures taken from our original larger picture.
Since the Clone is an image sequence (in this case - clones can be other things too) when we create a Replicator from it (with the Clone selected, type 'L'), we get extra parameters: Play Frames, Random Start Frame, Source Start Frame and Source Frame Offset. I'll come back to these. Turn off the "visibility" (checkmark to the left of "Clone Layer").
The Replicator:
Set the Shape to Rectangle and the Arrangement to Tile Fill (should be the default).
Dial down the Size disclosure triangle.
The Size will be the width of your image minus the width of your cell. In my case 1920 - 96 = 1824.
The Height will be the height of your image minus the height of your cell: 1080 - 72 = 1008. If you see a "crease" or dark line through your image, adjust this value to 1080.05 or very closely in that vicinity. (Not everything is "perfect" in Motion!)
Set the Columns and Rows to the numbers you calculated. I stayed with 20 x 15.
Set the Origin to Upper Left and the Build Style to By Row. For my project, I also checked 3D because I want my tiles to move in Z space.
In the Cell Controls section, find Play Frames and turn it off. When on, every cell will "play" every tile(/frame). You will also need to set the Source Frame Offset to 1.0.
You should now have a perfectly "re-assembled" picture.
The original project started fully assembled and breaks up with Random Motion. I'm going to make a change here to use a Sequence Replicator and assemble the image. Since I decided to change up the ending a little bit, I also checked Additive Blend in the Replicator Cell Controls.
To the Replicator object, I added a Behaviors > Replicator > Sequence Replicator. For the Parameters I:
Add > Rotation; Add > Opacity; Add > Position.
I dialed down the Rotation disclosure triangle and for X, randomly dragged down to about -1370; for Y randomly dragged up to about 1800; for Z randomly dragged down to -630. None of these values need to be explicit - to translate, the X rotates approximately 3 1/2 to 4 times; Y rotates ~ 5 times; and Z rotates approximately 2 times. Plus or minus directions also do not matter.
For the Sequencing Control, I set the Sequencing to "From".
Unit Size to Custom.
End to 100%.
Spread to 300.
Traversal to Decelerate.
As a final touch, I keyframed the Replicator Size parameter from 20 to it's final 1824 value.
The result of this project can be seen here:
Card Dance demo reworked for full HD - YouTube
The project files can be downloaded here:
https://fcpxtemplates.com/ngtopics/cardDance-reworked.zip
[I need to explain one more thing: after importing the original image, I cloned it to use as the animated image. I was using it to compare positions with the stationary original.]
I can definitely see why Patrick Sheffield had a problem writing about this... it's a difficult subject to explain. Easy if you already know the technique involved.
—I hope I was able to clear things up.