Looking for a solution for a complicate movement...

Hi,

I want to move a camera around an object, which in whole does not
move in space but has rotating and moving parts. Think of a retro
design of a motor block for example… :slight_smile:

One part of this motor block should always be in sight (a wheel).
Since blender does not support “Picture in picture” technique as found
on some TV sets, i positioned a mirror in front of that wheel, which
should reflect the picture of that wheel always back to the moving
camera.

The problem is: When I use constrainst or parenting the mirror’s axis is
pointing always DIRECTLY to the wheel or the camera, so either the
camera does not “see” the wheel or constantly itsself.

The camera should point to “something” which always devides the angle
between wheel and moving camera in a half according to the law of
reflection.

How can I achieve this trick ???

Thank you very much for asny help in advance !
Have a nice day!
mcc

Short of a python script, I’m not sure that is possible. However, to get the ‘picture in picture’ effect should be very doable. What I would consider doing is making the render in two parts: one of the always-visible wheel by itself, and then one of the rotating whole, where the camera has a small rectangle playing that movie in the corner, staying right in front of it. I used a technique similar to this to make a translucent ‘map’ of where in their orbit two spacecraft were during an animation. There may be better techniques than a rectangle playing that movie, such as an actual alpha cutout (certain ways you set up zbuffering can be used to cut ‘holes’ in an animation), followed by putting the compositing tool to work. (That could actually be set up to render all at once). There are many ways to do it, in fact. :slight_smile:

???:confused:
It’s hard for me to picture the scene as you described it.
So we have this object with moving parts.
The camera rotates around it and is set to track the object so that the camera view is always facing the object, doing a flyaround it.
Plus you want a part (wheel) to be always visible, sort of an inset animation in one part of the scene, so you are using a mirror and having all these problems.
Why not render two animations and composite them later? One with the flyaround, and the other with a fixed camera pointed to the wheel?
Or if you are feeling adventurous and want to do it in one go, perhaps you could duplicate your machine, scale it down and have it track and follow the camera. So that it is always stationary from the camera viewpoint.

Yep. Sounds complicated, alright. Why not simplify it? Perhaps a different way of looking at it?

First, put the camera where you would want the picture-n-picture video footage to come from, and render the animation. Save this.

Then, now that you have your picture-n-picture “feed”, put a plane directly in front of the camera, at the size you’d want your picture in picture frame to be, make it shadeless and untraceable, parent it to the camera, and put a video texture on it. Then no matter where you move the camera to, the inset video will be frame-locked and always where you want it.

That’s just one way, I can think of a couple more easier ways than trying to use cascaded trackto contraints…

Heavy thats exactly what Aurrin already said…

Hi,

thank you all very much for the “”“mail bombing”"" to my initial question
(watch those many "'s :slight_smile: :slight_smile: :slight_smile:

Yes, rendering twice and put the first video into the second is a good idea,
but it double rendering time…sigh.

The “picture in picture” technique was initially only meant to describe
what I want to achieve…but now I will check it out as another way to do
it.

What I really want is this “moving mirror thingy” … its looks a little more
better, since a “pictiure in picture” is recognized as a “seperate thing”
(“another program on TV”). Watching a picture of moving mirror is
more recognized as “same part of the animation/scene”.

is this possible? :

I doublyfy the circle path, which is the track of the camera in question.
Then I attach an empty to it and reverse the direction of that circle path.
The mirror gets now two contraints: The real camera and the empty,
both with influence 0.5.

This is not checked! It just came into my head…

What do you think ?

[EDIT: Sorry…no my idea is complete rubbiish…need one more
coffee…]

keep hacking!
mcc

I

http://www.filehosting.cc/download.php?id=EFABEE2A
Here’s a simple mockup of what I meant by duplicating your machine and parenting it to the camera to fake the picture in picture effect. Download the blend file by filling the field with the number in the pic to the left of it (the one with the submit button below. Then click the submit button. The link will then be given after a few seconds. Click the download file link to download the complextracking.blend file.
Press Alt A to play the animation. You can view the animation from a different perspective or from the camera view to get the idea. Sorry for the crude models, but it was just a test for a concept, anyway…

Hi grafix,

thank you very much for your help and the file…but I cannot download it.

The reffered page shows me the name and size of the file and a
picture of three numbers to log in, which I did.
But nothing happens further more…

I enabled Java scripts, cookies, “send refferer” and switched off my
securing proxy…nothing helps.

Could you send me that file via private mail ?

Thanks a lot again! :slight_smile:
mcc

That’s pretty slick.
How badly would/does this effect render time?

Alternatively, you could render it from one side, and then when you rendered the rotating video you could parent a plane to the camera, which had the video of the other side showing on it.

Does anyone know of an alternative way of posting .blend files?
I used to put them in h4x’s site:
http://h4x.snipanet.com/blender/
but it seems to be down now…
Or maybe someone could host it temporarily for mcc…

Render times. I would think it should be faster than using mirrors or rendering the scene twice. Plus the file would be smaller since you’re not adding a video file to it. But I’m not sure.
One disadvantage is you’re stuck on the ortho camera. Turning off ortho would distort the “fixed to the camera” duplicate…

Hi,

@grafix: I got the file in the meantime! I used some other browsers and
finally konqueror did the job. Thank you very much for your efforts !

I tried and tried and came across a not perfect but half working solution
for the problem:

Suppose you have one camera moving around an object. The path, a
circle, should be plane so not “3D-enabled”. Set one round for – say –
360 frames.

Now duplicate the circle and assign exactly double the steps to it as
the original circle has.

Assign a emtpy to the second cricle and assign a constraint to
a mirror in the center of both circle which “Track to” that empty.

This works for a limited range of angle for the camera…

May be there is another, more perfect way to achieve this ?

Keep hacking!
mcc

I’m still not sure I understand you, but here… see what this does for you. I followed your example almost exactly.

There’s 3 nested constraints with the mirror-tracking empty also following the camera path, so you can still adjust the empty for tilt and angle, but still have the “PIP” stay in the general area you want. Should give you some ideas, if nothing else…

http://www.savefile.com/files/1239814

I think I am not understanding exactly what is wanted either.

If it is a mirror that also rotates around the object showing the ‘other side’ as the camera rotates, then that would be easy.
http://hdiss.net/bpeters/rotatemirrortrack2.blend

If it is a mirror that stays in place, but keeps a reflection angle between the object and camera, then that is also easy except that you cannot do a full 360 with the camera.EDIT made it so you can go 360 while still reflecting only one side of the cube.
http://hdiss.net/bpeters/rotatemirrortrack.blend
The idea behind my solution was that the mirror has to face a point that lies on the line between the cube and the camera, so I place an empty at the cube, then restrain the empty to copy loc of camera, then adjust the influence until the angle is correct. The lowering and raising of the mirror was so when the camera was on the far side of the cube, the cube would not obstruct the view, luckily didn’t have to animate the influence of the constraint.

If as stated in the first post, one part of the object is always visible then I think Grafix’s solution is your best bet, I did not feel like his duplicate of the machine was a seperate object, I thought it was perfect, and like it the best.

I think you may have a bit of a misconception about render time, too. First off, composite rendering shouldn’t take substantially longer to do. Render time is based on number of calculations required to produce each individual frame. Thus, it really does not matter so much whether you make the calculations for the wheel in a mirror or in a seperate render: it will take about the same amount of time. What will add to your render time is the raytracing needed in order to make the mirror work. In order to do that, it must not only calculate what the mirror sees, but also the reflection angles involved in relaying that picture to the camera. In general, raytracing will substantially slow a render’s time. I would advocate either a two-step render or a composite render, both producing the ‘picture in picture’. But if you really want the mirror to always face the camera, what you probably need to do is just build an IPO curve that will always reflect to the camera. I don’t think there’s a constraint that will produce the effect you want, but with a bit of well-done geometry, it can be accomplished.

Or, at the cost of a less polished look, you could probably do keyframing and let blender try to calculate the inbetween steps. Though, unless you manually edit the IPO curves, it probably will not match the camera’s movement exactly. (The reflection would appear to drift in the mirror.)

As an alternative, you could make it like the motor block is in one big room with a huge ray-traced mirror for one wall. Not a perfect solution for what you seemed to want, but not as contrived-looking as the moving mirror and certainly very easy to implement.

Well, I did a bit of the math for you, and here’s what I found out. The mathematical formula for the mirror’s angle should be:

angle = 1/2 * arctan( r * sin(theta) / (rm + r * cos(theta) ) )

Where:

  • r = the radius of the camera’s path
  • rm = the distance from the center of the camera’s path to the mirror’s location (presumed further away than the camera)
  • theta = the angle of the camera’s position

This assumes that zero degrees for the camera’s position is directly across from the mirror, with the mirror essentially hidden behind the part. (You could move the camera slightly above the plane of the object and mirror, and tilt the mirror slightly to reflect to it, and that should not change the solution noticably.)

If you can keep it entirely in-plane and set the IPO for the angle of the mirror to match a plot of that function, it will appear to do exactly what you want. You’ll probably want some sort of plotting tool, like Deadline or the Windows XP Powertoy calculator, and you’ll have to be very careful with the conversions between degrees and radians.

Hi all !

I am very happy for all your replies ! What a support ! :slight_smile: :slight_smile: :slight_smile:

@Heavily Tessellated,@Hazard: I will try to explain my problem
with other words (I am not a native English speaker, so be patient,
please… :slight_smile: :slight_smile:

Movements are described relative to “the world” herre, if not otherwise
stated. Objects are given as examples only.

Suppose you have a dice. “5” up, “2” down, all other faces to north,
east, west and south.

The dice is not moving in any way.

Then there is a camera moving around this dice on a more or less
circular path – there is no distinctive “end” or “start” and the
nurbs circle used as path is deformed in 3D space.

Finally there is a mirror, which should reflect the “6” back to the camera
regardless of the position of the camera.

The center of the mirror is fixed in space, but the mirror can rotate
around its center.

This is the setup.

As Aurrin :slight_smile: has already find, there is more complicate relationship
between camera movement and mirror movement then a straight-
forward-attaching of one constraint.

I was searching for a setup, which does this math “mechanically” by
an intelligent combining of some constraint dependencies.

@Hazard: …and the winner is: rotatemirrortarck.blend (TADA!) :slight_smile:
Yes, this setup is nearly to 100% that, what I was searching for.
GREAT!

I am sorry for the misleading “picture in picture” nameing.
I mentioned this only to explain the effect described above.

@grafix: If I will have a real “picture in picture”-effect, I surely will
take your solution, grafix!!! The file is stored on my HD for later
use. :slight_smile:

Thanks to you all again for the great support ! :slight_smile:
Keep hacking!
mcc

Something you said got me to thinking, and then experimenting…

In fact, it is possible to do this with just a couple of constraints on the mirror. First, parent the mirror to an empty with the x axis pointing out from the face, and the z axis pointing up.

Now add two constraints to the mirror’s pointing-guide empty:

Track To:
Target: OB: (the item you want shown)
To: X Up: Z
Influence: 0.5

Track To:
Target: OB: (the camera)
To: X Up: Z
Influence: 0.5

In-plane, this will always generate a perfect reflection. If you move it out of plane, it will start to skew a bit, but it’s still close. I feel like an idiot for not having thought of this earlier.

(Not having looked through the blend file you chose, I don’t know if that’s what he did or not. Just thought I’d tell you.)

Hi Aurrin,

Thank you for your reply! It seems to be different from the initial
working setup…unfortunately I currently have a questions
regarding your setup:
What initial position has the mirror (the mirroring face of it) when
parenting the empty ?

I tried your setup and my mirror dances a dirty dance and reflects
what is in its way…but…hrrmmm… :wink:
(I am sure it is simply a misconfiguration
of my setup and has nothing to do with your idea…)

Need more input, please ! :slight_smile: :slight_smile: :slight_smile:

Keep blendering!
mcc

Okay, I’ve set up a simple example file that should let you see it. All of the actual constraints are set on the empty MirrorPointingEmpty. You could do it without an extra empty, but I find that empties help you organize a scene, or make it more obvious what you’re doing. In this case, it leaves no doubts about what axis is being pointed where. Just hit the play button on the timeline to see it all in action.

enginemirrorexample.blend