Demo Editing Tools Question: Creating Movement Paths
Believe me, this is the ONE thing I really need right now. I have a fantastic shot imagined for the end of my Farewell vid, but it is going to involve like a hundred heroes taking off in all different directions at the same time, WHILE the camera is panning around. And I am NOT hand coding that.
Michelle
aka
Samuraiko/Dark_Respite
THE COURSE OF SUPERHERO ROMANCE CONTINUES!
Book I: A Tale of Nerd Flirting! ~*~ Book II: Courtship and Crime Fighting - Chap Nine live!
MA Arcs - 3430: Hell Hath No Fury / 3515: Positron Gets Some / 6600: Dyne of the Times / 351572: For All the Wrong Reasons
378944: Too Clever by Half / 459581: Kill or Cure / 551680: Clerical Errors (NEW!)
Believe me, this is the ONE thing I really need right now. I have a fantastic shot imagined for the end of my Farewell vid, but it is going to involve like a hundred heroes taking off in all different directions at the same time, WHILE the camera is panning around. And I am NOT hand coding that.
Michelle aka Samuraiko/Dark_Respite |
Sounds like the kind of shot that was really making me think I'd love to have something to help me out with this!
and round up everyone that knows more than they do"-Dylan
Are there any good tools for creating positional movement paths?
|
https://dl.dropbox.com/u/37952257/camera-move.pl
Open it with notepad before running it, and you'll have to set some variables.
You give it a starting camera location and facing -- not a PYR, but the actual location of something you want the camera to be looking at. I do it this way instead of PYR because I use this tool so I can keep the camera locked at something, or slowly move focus from one thing to the other.
# Starting location, and point where the camera will be looking at.
$startloc = '1554.080811 -45.905884 -3749.662354';
$startvis = '1555 -30 -4750';
# Ending location, and point where the camera will be looking at.
$endloc = '1554.080811 -45.905884 -3749.662354';
$endvis = '1000 -30 -3750';
Note that in the current script it has the same start and end loc. It's because I was doing a turn.
How fast is going is controlled by the 'steps'. Each steps is 100ms. 10 steps is 1 second.
# Time it'll take to do the camera movement. 10 = 1 sec.
$steps = 60;
# Delay before and after the camera movement. 10 = 1 sec.
$delaybefore = 0;
$delayafter = 50;
"LINEAR" just keeps the same speed through the whole movement. Try EASEIN and EASEOUT to see what they do. EASEOUT moves the camera fast first, then slowly settles on the final location.
# Style of camera movement: constant speed (LINEAR), speed up (EASEIN), slow down (EASEOUT).
$poschange = 'EASEOUT';
$vischange = 'EASEOUT';
www.SaveCOH.com: Calls to Action and Events Calendar
This is what 3700 heroes in a single zone looks like.
Thanks to @EnsonsDeath for the GVE code that made me VIP again!
I have done a script in java that does something similar, it is still in the works (the whole "turn character in the directions you want him to go" aspect is not all done yet) and school is getting, very busy atm so I have know ETA
The script uses x number of demos from Leandro script and chews it and spits it out in an end destination demo.
The script is not yet bug free but a poorly and crude video of the result from the script, can be seen here.
If anyone is interested to finish the java code knock yourself out:
https://dl.dropbox.com/u/22592532/COHdemoRecording.java
https://dl.dropbox.com/u/22592532/Toon.java
Team Tios
Defiant to the last!
Well, to be honest I use an script that I can provide with a "timeline" of keyframes, and the script interpolates things and spit out a demo. It's just that it has no user interface, so the whole scene has to be made in a text file. It's MUCH easier than writing a demo by hand, but it still requires manually typing stuff, so it's not ready for normal people.
This is the script in question: https://dl.dropbox.com/u/37952257/scene-to-demo.pl
This is a sample scene: https://dl.dropbox.com/u/37952257/CMM-01.txt
Now, to explain how it works. The text file has a bunch of lines with tab-separated values. The first line is the map the action will be happening in, the second is the time, and afterwards we have keyframes.
Remember: TAB separated values. Best view to view the file is using Metapad with the tab spacing set to 20 or so, or to copy the file's contents to Excel, then copy the cells back, keeping TAB as a separator.
0 CAM 2560 115 132 2696 79 130
50 CAM 2498 71.64 229.8 2927 98 19 EASEOUT/EASEIN
60 CAM 2498 71.64 229.8 2927 98 19
The camera starts at 2560 115 132 (loc), facing towards 2696 79 130 (I prefer to use facing coordinates instead of PYR, personal preference). The second line says that 5.0 seconds in, the camera should be at 2498 71.64 229.8, facing towards 2927 98 19. Each keyframe is 1/10 of a second, that's why it says 50 at the beginning, for 5.0 seconds. The final bit, EASEOUT/EASEIN, determines the type of camera movement, as explained in my previous post. The two arguments are provided with a slash, in the form CAMERA/FACING. In the example, the CAMERA starts fast and moves slower (EASEOUT) while the point that the camera is looking at starts moving slower and then accelerates (EASEIN). Different combinations cause the camera to move in different ways with the same location/facing values.
The third line says that 6.0 seconds after the demo starts (NOT after the last action) the camera should be at the same location and facing. So basically, move the camera during the first 5 seconds, then one second of pause. All the keyframes are in absolute times.
0 Flambeaux 2530 65.7 208 2530 65.7 223 A_EMOTE_FLIPPINGCOIN_PRE
0 Fusionette 2578.3 67.3 148.1 2569 67.3 147 BOBCAT_ONCOUCH
0 Faultline 2569 67.1 147 2579 67.1 163 GROUNDSIT
0 Radio 2579 68 141 2579 68 200 READY
These lines place actors that aren't moving, so they only have one keyframe each. The actors are pulled from .char files like all my other scripts. The .char files have to be in the same folder as the script.
0 Matthew Habashy 2636 64.2 129 2500 64.2 129 PLAYER_WALK_FORWARD
60 Matthew Habashy 2606 64.2 129
0 Dana Habashy 2635 64.2 133 2500 64.2 133 PLAYER_WALK_FORWARD
60 Dana Habashy 2605 64.2 133
And these are keyframed actors. Just like the camera, they start at one location and move to another, 6.0 seconds in. The camera will stop moving at 5 seconds in, but these actors will keep on moving at the same rate for the whole 6.0 seconds.
This is just a simple example, but the tool is pretty powerful. I used it all the way back in Donuts several years ago, lost the files at some point, and I'm now recreating it. The final goal is to have a graphical UI to place keyframes and render a full demo out of it.
One of the things that I haven't put on this parser yet is to take other entities as facing destinations. So I could, in the facing column, put "Faultline" or "CAM" and then the character would look at Faultline or at the camera, instead of towards a set of coordinates.
www.SaveCOH.com: Calls to Action and Events Calendar
This is what 3700 heroes in a single zone looks like.
Thanks to @EnsonsDeath for the GVE code that made me VIP again!
The camera path tool I made will generate a path for any entity, not just the camera...
Here's an example input:
// CamSweep input file
// camera path:
BEZIER
-264.603943 224.019974 -349.036316
-8.034166 73.710609 -90.253113
165.077911 30.567497 -148.872574
165.260742 40.529469 -246.240875
END
// target path:
POV
END
// entity name
2530
// Time interval (use zero for always output time as zero)
33
// number of intervals to output
450
That will generate a bezier curved path for entity 2530, with that entitiy "pointing" along the path as it goes - just like you'd want for a car, or a hero.
Again, it's all text-based with no nice UI, but it does work - see the fix-Sunblaze.txt example. in the examples folder.
Here's the dropbox link:
https://www.dropbox.com/s/viu5dpi9si...mSweepV0.5.zip
I've toyed with the idea of generating a "fly/leap" script to do the mass-exodus, but my PC has been down, so I've been dealing with that (silly hardware problems...)
Synchrotron, level 50 Radiation/Radiation Defender
Fighting crime on Champion since 2004
You guys are amazing.
I meant to comment and thank you before, but I've been very busy with some complicated work (unrelated to CoH) and I wanted to wait for a moment when my brain power wasn't being used up quite so much before I tackled these scripts.
Coding and these sorts of scripts are pretty foreign to me, so I am completely amazed with them. They're one of the closest things to magic for me right now, haha (you digital wizards, you!).
They look simple enough for me to grasp and follow, but we'll see...
I'm finally going to tackle this Sunday (or tonight if I catch another wind).
If I do get stuck, I may start pounding and screaming for help like Inigo Montoya calling for Fezzik to break down the door!
I don't think I'll have any such problems though... we'll see!
Thanks so much!
and round up everyone that knows more than they do"-Dylan
As someone mostly unfamiliar with using most of the advanced features in the existing demo editing programs (and having never before used scripts such as Leandro's recent releases)... I've long been meaning to ask some experienced people about this:
Are there any good tools for creating positional movement paths?
I've always just edited such things by hand, editing each line in notepad when I didn't simply capture what I wanted while recording the original demo.
If I have the starting point: POS A and the ending point POS B, are there tools out there to create the path according to the speed/rate that I desire?
Recently, I've been wondering if there is a way to take Leandro's amazing scripts (of using images to create spawn locations and spawn parameters) to create actual movement paths or any such similar means to somewhat quickly and easily create some movement paths for characters, objects or cameras (but I may be getting greedy, hehehe).
Or if there simply already exists great tools within the demo editing program to accomplish this and I just haven't realized it, could you please point me to them?
and round up everyone that knows more than they do"-Dylan