I want to translate a selection of points along the camera ray in Cinema 4d.

The desired effect is to have the points retain the same screen based 2d position but change there 3d world position.

How is this done in cinema 4d? I'm missing the terminology to search it.

Here is an image to help describe... enter image description here

  • so the object is rotating and flying towards the camera at the same time? – Luciano Sep 11 '18 at 9:05
  • no, the points (vertices) are moving independently towards the camera's origin. – Ross Sep 11 '18 at 13:16
  • it would allow for planning something like this: youtube.com/watch?v=vQaoVDrMjPE – Ross Sep 11 '18 at 13:18
  • Scale the points from camera location. – joojaa Sep 12 '18 at 3:53
  • @joojaa ah-ha! Yes that'd work. How do you do that? – Ross Sep 12 '18 at 13:48

(This answer was rewritten after the questioner rewrote the question)

If we do not change any properties nor the placement of the camera, the only theoretical solution principle is the following:

for every moving point and all three XYZ world coordinates calculate the following formula

P = Po + ((Po - C)/Dv) * V * t

P = the xyz coordinate of the point at the moment t

Po = the initial xyz coordinate of the point

C = the xyz coordinate of the camera

Dv = a constant, the distance where the escaping velocity should be =V

V = a constant, the effective escaping velocity in the midpoint of the image, negative V means moving towards the camera.

t = the running time, 0 = the start of the sequence

The same without any formulas: Keep the placements relative to the camera proportional to the time, every point moves to the direction which it initially had in relative to the camera and the velocity is proportional to the initial distance between the point and the camera

The points move towards the camera and they reach the camera at the same time. That time is Dv/V; to get positive time, negative it, if V is negative.

NOTE: there's no need to have constant V, it's enough to use the same V in the calculation of one frame.

I have no 3D animation software. Thus I have no idea how to program this to Cinema4D. Sorry!

  • My desire is to move the points along the ray from the camera — there by the point's world position changes but not it's screen-based 2d position. It's an effect. Sorry if my question is poorly worded; I've refactored it. – Ross Sep 11 '18 at 7:41
  • I really appreciate you taking all the time to answer the question. But I'm asking how to do this in Cinema4d which is an app, rather than a theoretical solution. – Ross Sep 11 '18 at 13:15
  • @Ross You need someone who understands Cinema4D and can use it. Unfortunately I'm not one. But thanks for the interesting thinking puzzle. – user287001 Sep 11 '18 at 13:20

As @joojaa points out, the answer is to scale the points from the cameras origin.

There may be better ways to do this; one way is:

  1. Create a null point at the camera's origin
  2. Select all the points to be moved and null point
  3. Select the scale tool
  4. Type 'l' to select the axis origin, and select the null point
  5. Scale

Screen capture

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.