Smooth turning of actors using ActorMover possible? [Fixed]

Archive of the old editing forum
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
User avatar
Enjay
 
 
Posts: 26534
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: Smooth turning of actors (using ActorMover) possible?

Post by Enjay »

I can't remember if this has been reported properly as a bug yet or not. If not, it would be a good idea to do so just to stop it getting lost in the depths of the editing forum. I suspect, however, that it might be more relevant, or at least easier to demonstrate, in GZdoom because you can really only see it when the actor uses a model given that sprites are only drawn from a limited number of angles anyway.

Oh, and BTW, it might be worth trying with a new SVN version. As far as I know, there is nothing in it that would affect this but there were some changes to the model code recently. I think that it was only to do with fixing multiple skin support on MD3s though. If you do try it, you'll need to go back to the official version afterwards because the current SVN version has the (now fixed) Zdoom bug of thrusting things massively with the rocket explosion.
User avatar
Enjay
 
 
Posts: 26534
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: Smooth turning of actors (using ActorMover) possible?

Post by Enjay »

Hmmm, OK, actually trying this, I'm not getting the reported error, certainly not with the current GZdoom anyway. Try this file (just load up the whole zip).

http://www.zen64060.zen.co.uk/examples/rotate.zip

On the left you will see an actor that uses the zombieman sprite. On the right is a model. Both are being rotated by the script that was posted in this thread earlier. As expected, the Zombie "jumps" because he is only drawn from a limited number of angles but the model rotates smoothly. Using IDDT IDDT at the automap confirms that both actors are turning smoothly.

(BTW, apologies for the model - it was just the first one that I found in my working directory already set up for GZdoom. And no I didn't make it it was part of some pack or other for Duke Nukem.)
User avatar
ReX
Posts: 1578
Joined: Tue Aug 05, 2003 10:01 am
Location: Quatto's Palace
Contact:

Re: Smooth turning of actors (using ActorMover) possible?

Post by ReX »

Yes, your model clearly turns very smoothly. If it's using the same script that I developed, then I am at a loss for why I can't get it to work. Perhaps it's a camera thing? Remember that the actor is being moved by an actor mover, and is being followed by a camera.

[The simplest thing would be for you to look at the entire set-up, which will be ready soon.]
User avatar
ReX
Posts: 1578
Joined: Tue Aug 05, 2003 10:01 am
Location: Quatto's Palace
Contact:

Re: Smooth turning of actors (using ActorMover) possible?

Post by ReX »

Okay, let me ask this question somewhat differently. Can interpolation points (Thing Type 9070) be used to accept angles other than multiples of 45 degrees? I think the key problem may be with the inability of interpolation points to accept angles other than multiples of 45 degrees. This is manifesting itself in-game by the model's actor-mover ignoring the angle specified via the editor, and aligning itself with the nearest multiple of 45 degrees. This also seems to be the case with a regular moving camera; it ignores any angle assigned to an IP other than a multiple of 45 degrees.

If this is the case, then I'd like to take the next step and make it a feature suggestion.
User avatar
ReX
Posts: 1578
Joined: Tue Aug 05, 2003 10:01 am
Location: Quatto's Palace
Contact:

Re: Smooth turning of actors (using ActorMover) possible?

Post by ReX »

Randy confirms that interpolation points do, indeed, accept all angles. So next I thought that perhaps I need to instruct the actor mover (which "drives" the model) to also adopt the angles of the IP. I have code for another actor mover (a helicopter), but it uses 2 parts - fuselage & rotor, whereas the model (of a tram) with which I'm having a problem only has a single part. I'm unable to figure out how the Osprey code can be adapted for the tram, but perhaps someone here can help. Here is the script for the Osprey mover:
Spoiler:
User avatar
ReX
Posts: 1578
Joined: Tue Aug 05, 2003 10:01 am
Location: Quatto's Palace
Contact:

Re: Smooth turning of actors using ActorMover possible? [Fix

Post by ReX »

Well, finally I believe I have a fix for the tram models (and cameras) not turning smoothly. Eruanna had indicated that ZDooM places interpolation points into the map oriented towards the closest multiple of 45 degrees that the IP has been assigned in an editor. [In other words, this is a bug/limitation of ZDooM, where the IP is never placed in-game at angles other than multiples of 45 degrees.] I had tried rotating the IPs using Interpolation Specials that triggered scripts that adjusted SetSectorAngle, and it seemed to be turning the tram fractionally before the tram simply resumed adoption of the appropriate multiple of 45 degrees. Eruanna pointed out to me that I was rotating the tram, not the interpolation points. Anyway, I went in and messed around with the IP and scripts, and finally figured out that the scripts for SetActorAngle for the IPs could be put into the OPEN script. Et Voila! It now works like it's supposed to.

At any rate, what Randy said notwithstanding, this appears to be a limitation of ZDooM. The game should automatically accept the angles assigned to an interpolation point, and not require adjustment via a script. I'll report it in the Bugs Forum.
Locked

Return to “Editing (Archive)”