@solo said:
Martin, to be honest, I looked at the tutorial and a fog of stupidity overcame me ...
Thank you! That's not good news, but it's exactly what I need to know.
@solo said:
Martin, to be honest, I looked at the tutorial and a fog of stupidity overcame me ...
Thank you! That's not good news, but it's exactly what I need to know.
@thomthom said:
The
ShadowInfo
class? http://code.google.com/apis/sketchup/docs/ourdoc/shadowinfo.html
You are a great resource! Many thanks.
@pixero said:
How are you solving slow ins and speed ups for realistic camera movement?
What are "slow ins and speed ups"?
Everything I do is controlled by a "conductor" who checks time and adjusts the delay once a second. Theoretically, this means that your very fast machine runs at the same rate as my slow machine. In practice, the conductor gets it pretty close: within about a second per minute.
I'm searching for the data in the Shadow Settings window in the API. Searching, ...
Yo, guys. It's a lot of trouble to make this. Worth my time?
Edit: feedback negative, got to redo this. There is now a very heavily annotated script available here
For those who learn best from step-by-step tutorials, I've put one up here:
http://www.martinrinehart.com/models/rubies/walkthrough.html
Timing: 3 tests ranging from 31+ to just under 33 for a 32 second model. (Stupid me: was setting start time at go. Now setting it, correctly, when you click to start.)
@driven said:
Where is the WD container generated/sized?
In the Conductor initialize()
method, sketch_talk_motion_classes.rb
, line 217. Then position fiddled in video_player.html
in the <body> tag. This is what I want:
@driven said:
@martinrinehart said:
Video Player now included in very early stage. It pauses and resumes play.
pause and resume work, no < << ; >> > [but you didn't say there was..]
john
Start/End should be cake. Back, For'd? Hmmm. Timing tho is more worrisome. Did three tests, none of them using pause/resume: 22, 32 and 40 sec. (All should have been 32.)
Does Video Player look OK on Mac? Had to play tricks to get it to look right in MSIE.
Video Player now included in very early stage. It pauses and resumes play.
It seems to argue with the timing software. I'll look into that tomorrow. I think what's needed now is a tutorial for creating walkthroughs.
SketchTalk++ embedded in the Ruby Console Pro has everything an architect needs to create a building walkthrough, with one exception:
You've got what you need to open and close doors, drawers, etc. You can move, pan, zoom the camera. So you might want to go here while I get this little gizmo hooked up.
Edit: Early version of Video Player now included. Just pauses/resumes.
@driven said:
I did a quick[ish] hi-poly test 1.5 million edges and it slowed down to 01:27.8 min
Take it easy! Your conductor's probably becoming neurotic because he can't get the job done.
Seriously, its good to find the limits. We could actually model the lawn, showing it grow. Would have to do something more clever than modeling each blade separately.
@mptak said:
I so love what you are doing!!!!! How do we get this into the hands of kids ...
Hmmm. Good thought. First, though, a little controller thingie and we've got a really nice walk-through capability for the architects.
New SketchTalk for controlling and animating the camera!
There are six new methods, each with two forms but they are very regular. (Before you can use this you have to go buy a folding chair with the word "Director" stenciled in very large letters on the back.)
Now, the things you need to know about the new functions. First, they all start with "c" for camera.
Second, they continue with "e" for camera eye, "f" for camera field of view or "t" for camera target. Now you know four things: start with "c" and then specify "e" for eye, "f" for field of view or "t" for target.
The fifth thing you need to know is that they each have an optional third letter "m" for movement. The cem()
and ctm()
functions move eye and target by a vector from their current location. The cfm()
function adds the specified number of degrees to the current field of view. (Higher degrees==zoom out.)
You set the eye with ce()
, just once. From then on use cem()
. Similarly, you set the field of view once with cf()
. From then on you change it with cfm()
.
The sixth, and last, thing you need to know is that they are like the move, scale and rotate methods. You provide a single value if you just want the thing to happen immediately. You append start and stop second specifications if you want it to be animated. (My personal most common mistake: forget to put 'go' in the script and wonder why nothing happens.)
The first value for ce()
is a Geom::Point3d
object. That is too much trouble to type, however. Just use a [r,g,b]
array. Ditto for ct()
. Ditto for the Geom::Vector3d
you want for cem()
and ctm()
.
Here's a sample. Yes, its way over the top, but it's still a sample.
n
ct [0,0,0]
cf 35
cfm 35, 2, 14
cfm -35, 14, 30
ce [ 100, 100, 0]
cem [ 0, 0, 50], 0, 2 # 100, 100
cem [ 0, -100, 0 ], 2, 5 # 100, 0
cem [ 0, -100, 0 ], 5, 8 # 100, -100
cem [ -100, 0, 0 ], 8, 11 # 0, -100
cem [ -100, 0, 0 ], 11, 14 # -100, -100
cem [ 0, 100, 0 ], 14, 17 # -100, 0
cem [ 0, 100, 0 ], 17, 20 # -100, 100
cem [ 100, 0, 0 ], 20, 23 # 0, 100
cem [ 100, 0, 0 ], 23, 30 # 100, 100
box o, [20,20,0], 10
box1 = g 'box1'
m box1, [20,20,30], 2, 20
s box1, [0,0,0], 2, 2, 2, 5, 20
q box1, [0,0,0], 'gb', 360, 5, 20
m box1, [-20,-20,-30], 20, 30
s box1, [0,0,0], 0.5, 0.5, 0.5, 20, 32
none
box o, [-20,-20,0], 10
box2 = g 'box2'
m box2, [-20,-20,30], 4, 20
q box2, [0,0,0], 'rb', 360, 5, 18
m box2, [40,40,-20], 25, 30
none
box o, [-20,20,0], 10
box3 = g 'box3'
m box3, [-20,20,30], 8, 20
m box3, [40,-20,-10], 23, 27
q box3, [0,0,0], 'rb', 360, 20, 23
none
box o, [20,-20,0], 10
box4 = g 'box4'
m box4, [20,-20,30], 12, 20
m box4, [-20,40,0], 20, 23
q box4, [0,0,0], 'gb', 360, 20, 25
all
go
We start with a 35 degree (default if you haven't changed it) field of view. We zoom out to 70, then back in to 35.
The eye takes a clockwise tour around the origin in a big square, from 100,100 to -100,-100. If you think this is easy, try it without copying my code.
Good luck!
@driven said:
It's run time comes in at 31.4sec on the mac, how does that compare?
There's a Conductor singleton at the center of the animation.
Every second the conductor looks at his watch. He speeds up or slows down based on what he sees. That means fast and slow machines will all run at the same speed. This animation is scripted for 30 sec. so 31.4 means the conductor is doing a pretty good job.
That 8% number is happy-making! (Edit: I got 0 to 6%.) Boxes are low-poly. 8% means you have room for animating much bigger things. An old-fashioned steam engine, anyone?
OK, John. Got my rotate/scale done. Now back to multi-platform coding.
@driven said:
%(#0040BF)[style type='text/css'
body {
background: #f0ecd8;
height: 100%;
overflow: hidden;]
padding:10px
On a PC, that gives you this:
It's supposed to look like this:
I can write a little JavaScript that goes something like this:
// not real code!
if ( platform === 'Mac' ) {
body.style.padding = '10px'
}
What about the output and setup windows? Do they need help, too?
11:50 AM, Saturday morning.
There's a new file attached to the original post. You definitely want it. It adds rotation and scale.
Put this in your RCP and Exec it with the new version:
n
box o, [20,20,0], 10
box1 = g 'box1'
m box1, [20,20,30], 2, 20
s box1, [0,0,0], 2, 2, 2, 5, 20
q box1, [0,0,0], 'gb', 360, 5, 20
m box1, [-20,-20,-30], 20, 30
s box1, [0,0,0], 0.5, 0.5, 0.5, 20, 32
none
box o, [-20,-20,0], 10
box2 = g 'box2'
m box2, [-20,-20,30], 4, 20
q box2, [0,0,0], 'rb', 360, 5, 18
m box2, [40,40,-20], 25, 30
none
box o, [-20,20,0], 10
box3 = g 'box3'
m box3, [-20,20,30], 8, 20
m box3, [40,-20,-10], 23, 27
q box3, [0,0,0], 'rb', 360, 20, 23
none
box o, [20,-20,0], 10
box4 = g 'box4'
m box4, [20,-20,30], 12, 20
m box4, [-20,40,0], 20, 23
q box4, [0,0,0], 'gb', 360, 20, 25
all
go
@driven said:
I also changed the WD's to show_modal as I prefer that to hunting behind the drawing...
Damn the differences. On PC, they are on top by default. For me the Ruby Console, now the RCP, was always a vital modeling tool. Putting a banister on a stairway is a b* without it. I'd suggest an arrangement of a not-quite-maximized SketchUp beside peeking-out-from-behind RCP. (Big monitors are a Good Thing now that they're not prohibitively expensive.)
Got to check into your other stuff. Thanks much for the feedback.
Zero bugs? No Mac issues?
And again. This time bar
should have been @foo.bar
.
@cadfather said:
Thanks Martin, sounds like fun..
Animation can be fun. Did you see my movie? (running time: 3 minutes)
Animation has serious uses, too.
Thanks muchly, Chris.
Practical advice re size and compression?