| 09-06-2007, 04:19 PM | #1 |
im making a cinematic at the same time as im making a system for it. I wanna know what you guys think about it from the vJass code below. The code is a few seconds cinematic, actually the beginning of my cinematic. The custom wait has an accuracy of 0.01 second. EDIT: Updated code in my cinematic, so you can see more of it's accuracy JASS://! runtextmacro NewScene("Scene1") call SmoothCam_ChangeFog(TerrainFog.Create(2000,8000,1,200,160,255),0) call ShowInterfaceForceOff( GetPlayersAll(), 0.00 ) call PlayCameraSequence.Play(PlayCam[0],Player(0)) call SetUnitAnimationByIndex(YoungMan.M.Particle.Unit,5) call SetUnitTimeScale(YoungMan.M.Particle.Unit,1) //! runtextmacro Wait("3") call OldMan.MoveWalk(GetUnitLoc(gg_unit_h000_0014),0,0,10,290,3) //! runtextmacro Wait("3") call SetUnitAnimationByIndex(OldMan.M.Particle.Unit,0) //! runtextmacro Wait("2") call PlayCameraSequence.Play(PlayCam[1],Player(0)) //! runtextmacro Wait("2") call PlayCameraSequence.Play(PlayCam[2],Player(0)) //! runtextmacro Wait("7") call PlayCameraSequence.Play(PlayCam[3],Player(0)) //! runtextmacro Wait("1") call OldMan.MoveWalk(GetUnitLoc(YoungMan.M.Particle.Unit),-450,0,10,290,0.8) //! runtextmacro Wait("0.8") set OldMan.M.vA.z = -0.08 call OldMan.MoveTo(GetUnitLoc(YoungMan.M.Particle.Unit),150,0,3) call OldMan.PlayAnimation(9,1.133,1) //! runtextmacro Wait("0.5") call OldMan.StretchAnimation(20) //! runtextmacro Wait("1.5") call SetUnitFacingToFaceUnitTimed(YoungMan.M.Particle.Unit,OldMan.M.Particle.Unit,0) call YoungMan.PlayAnimation(10,1,1) set YoungMan.M.vA.z = -0.2 call YoungMan.MoveTo(GetUnitLoc(OldMan.M.Particle.Unit),-220,0,0.5) //! runtextmacro Wait("0.2") call OldMan.StretchAnimation(0.5) //! runtextmacro Wait("0.3") set OldMan.M.vA.z = -0.5 call OldMan.MoveTo(GetUnitLoc(gg_unit_h000_0015),0,0,1) call OldMan.PlayAnimation(6,1.4,0.5) //! runtextmacro Wait("0.25") call PlayCameraSequence.Play(PlayCam[6],Player(0)) call OldMan.PauseAnimation(1) //! runtextmacro Wait("1.25") call SetUnitAnimationByIndex(OldMan.M.Particle.Unit,0) call SetUnitTimeScale(OldMan.M.Particle.Unit,1) call YoungMan.MoveWalk(GetUnitLoc(OldMan.M.Particle.Unit),-80,0,4,290,2) //! runtextmacro Wait("0.25") call PlayCameraSequence.Play(PlayCam[4],Player(0)) //! runtextmacro Wait("1") call OldMan.PlayAnimation(7,1.167,3) call PlayCameraSequence.Play(PlayCam[5],Player(0)) //! runtextmacro Wait("0.75") call YoungMan.PlayAnimation(1,1.167,1) //! runtextmacro Wait("0.2") call OldMan.PlayAnimation(6,1.4,0.5) call YoungMan.MoveTo(GetUnitLoc(OldMan.M.Particle.Unit),80,0,0.5) call OldMan.MoveTo(GetUnitLoc(YoungMan.M.Particle.Unit),-200,0,0.5) //! runtextmacro Wait("0.5") call YoungMan.PlayAnimation(2,1.133,1) //! runtextmacro Wait("0.2") call OldMan.MoveTo(GetUnitLoc(gg_unit_h000_0014),0,0,1) call SetUnitFacing(OldMan.M.Particle.Unit,CorrectAngle(GetUnitFacing(OldMan.M.Particle.Unit)+120)) //! runtextmacro Wait("0.2") call SetUnitFacing(OldMan.M.Particle.Unit,CorrectAngle(GetUnitFacing(OldMan.M.Particle.Unit)+120)) //! runtextmacro Wait("0.3") call SetUnitFacingToFaceUnitTimed(OldMan.M.Particle.Unit,YoungMan.M.Particle.Unit,0) //! runtextmacro Wait("0.3") call SetUnitFacingToFaceUnitTimed(YoungMan.M.Particle.Unit,OldMan.M.Particle.Unit,0) call SetUnitAnimationByIndex(OldMan.M.Particle.Unit,0) call SetUnitTimeScale(OldMan.M.Particle.Unit,1) call SetUnitAnimationByIndex(YoungMan.M.Particle.Unit,5) call SetUnitTimeScale(YoungMan.M.Particle.Unit,1) //! runtextmacro Wait("1") call ShowInterfaceForceOn( GetPlayersAll(), 1.00 ) //! runtextmacro EndScene() |
| 09-06-2007, 04:37 PM | #2 |
OWNING ! GODLIKE ! HOLYSHIT ! AWESOME =) well btw the Chaos ball looks sexy ^^. well gj. when will be a demo ready ? |
| 09-06-2007, 08:05 PM | #3 |
GetPlayersAll() == bj_FORCE_ALL_PLAYERS :P, also it's more efficient this way: JASS:local player p = Player(0) //! runtextmacro NewScene("Scene1") call SmoothCam_ChangeFog(TerrainFog.Create(2000,8000,1,200,160,255),0) call ShowInterfaceForceOff( bj_FORCE_ALL_PLAYERS, 0.00 ) call PlayCameraSequence.Play(PlayCam[0],p) //! runtextmacro Wait("3") call OldMan.MoveWalk(GetUnitLoc(YoungMan.M.Particle.Unit),-650,0,10,290,3) //! runtextmacro Wait("3") call SetUnitAnimationByIndex(OldMan.M.Particle.Unit,0) //! runtextmacro Wait("2") call PlayCameraSequence.Play(PlayCam[1],p) //! runtextmacro Wait("3") call PlayCameraSequence.Play(PlayCam[2],p) //! runtextmacro Wait("6") call PlayCameraSequence.Play(PlayCam[3],p) //! runtextmacro Wait("4") call ShowInterfaceForceOn( bj_FORCE_ALL_PLAYERS, 1.00 ) //! runtextmacro EndScene() I don't understand, what Chaos balls? |
| 09-06-2007, 08:19 PM | #4 |
Sexy. Someone finally made use of the idea of accurate 'waits' in some form. |
| 09-06-2007, 10:27 PM | #5 |
silver: didnt you think it takes more time to write tat thing? :) edit: and your jass example will cause error too |
| 09-06-2007, 11:36 PM | #6 | |
Quote:
|
| 09-06-2007, 11:59 PM | #7 |
Remember your cinematic system use custom functions to add actions into a list of timing. which means people need to know the function names or have to look it up. Here you can call natives/functions directly ^^ --- My cinematic... ehm... i mean my Systems will allow many nice things, not only for cinematic, but for normal games too. For cinematic it will have fancy stuff never seen before ^^ |
| 09-07-2007, 06:51 PM | #8 | ||
Quote:
I'm talking about efficiency here. Quote:
Of course it will cause errors, there is no function or endfunction anywhere. If you want to play that way, your sample would cause errors too. And Anitarf, nice coughing :) |
| 09-07-2007, 08:43 PM | #9 |
my sample wouldnt cause error :) At least i dont get any in my WE ^^ And about effeciency, we know its more effective your way but film makers dont care about that, only the system makers do. And my system is effecience enough so the artists/users wont need to think about memory leak, but can focus on the art itself ;) |
| 09-07-2007, 09:00 PM | #10 |
Aside from avoiding leaks, performance in cinematics isn't called for - it's basically a non-issue, especially trigger wise. |
| 09-07-2007, 10:37 PM | #11 |
agree with griffen, since in cartoons sometimes the fps is 15 or even 10, and still its entertaining |
| 09-08-2007, 02:10 PM | #12 | ||
Quote:
Grrr, your sample would cause errors! There is no function/endfunction in your sample, the error would be something like "statement outside the function". I just copied your sample and modified it a bit, so I don't quite understand how mine can cause errors (which it does, of course) and yours can't (yours does two, because you didn't post the whole code, that's why it's called a sample). Quote:
You said that only system makers worry about efficiency and you're making a system, so what the hell is your point? Anyways, you obviously didn't pay attention on Anitarf's coughing, nor my comment on your camera system saying what Anitarf's said also (well, he didn't actually say anything, but a link is worth a million words). |
| 09-08-2007, 02:36 PM | #13 |
The following would presumably be fine (but we can't know unless we see the textmacro): JASS://! runtextmacro NewScene("Scene1") local player p = Player(0) call SmoothCam_ChangeFog(TerrainFog.Create(2000,8000,1,200,160,255),0) //... |
| 09-08-2007, 04:15 PM | #14 |
alexander is right :) The textmacro take care of all the function declarations and cleanups. SO Silveron, too bad but my sample wouldnt cause error, and it's the whole code in a fresh new trigger file. Too bad the error message you talk about would appear in your sample... *cry* And about effeciency, this isnt a thread about my system, its about how the code looks, the system isnt posted here itself ^^ So ur offtopic too |
| 09-08-2007, 04:49 PM | #15 |
Well, let's say you wanted to tweak your cinematic after you watch it and you want OldMan.MoveWalk to be called half a second later, while all other actions should be called at the same time like they are now. You would have to change a whole lot of waits. |
