Cutmanmike wrote:For cinematics and such I tend program it hackily myself for reasons such as this one. If you have a huge track that may not be desirable but can't think of any cleaner way to do this.
The track is indeed quite long, but most of it is straight stretches, on which there are no issues. It's only in the two curved sections of track that the problem manifests itself.
Enjay wrote:If this works, it might be possible to stop the tram and rotate it when it gets to certain junction points or whatever. That may not be as satisfying as a curved track but it is not inconsistent with how the tram in the original HL intro behaved.
Yes, your demo has indeed shown that a model can turn at every possible angle. Let me try the stop/start method, and see how that works. (I'll first put in a small holdtime in each IP, and see if that works. Otherwise I may have to put the stop/rotate/start instructions into each script.)
EDIT: OK, I tried the holdtime method, and here's my report: The model will briefly align itself according to the SetActorAngle in each script, then align itself to the closest multiple of 45 degrees along the track. Clearly, we are getting closer to a solution, but it still eludes me. The trick lies in getting the actor to retain its angle until the next script is triggered. Here's the relevant portion of the script:
And here's the set of parameters for one of the IP & IS. The parameters for the others are similar:
Interpolation Point: (0, 15, 4, 241, 0) = (pitch, traveltime, holdtime, next IP, hi-byte); angled at 78 degrees; tag = 242
Interpolation Special: ACS_Execute (7, 0, 0 , 0, 0); tag = 242
Graf wrote:This should work. Needs some investigation so please don't use any hacks. If it's really an engine bug chances are that if the bug gets fixed the hacks stop working.
Not to worry. At present, the only techniques I'm using are via simple scripting, which can easily be deleted once a permanent solution emerges. Thanks.