Hi guys, I have an error showing very, very frequently when playing my Ikari Warriors map, be it locally or on BNet... It started appearing after the SC2 patch 1.4 came out (maybe it was there before but I haven't noticed this prior to 1.2), and from what I read I guess it's due to something wrong in the mover used for my projectiles. These projectiles are supposed to move in a straight line and can miss their target. So far it works, but I have this annoying message showing everytime an enemy (or my character) shoots:
http://imageshack.us/photo/my-images/202/moverphaseerror.png/
I seriously have no clue why it used to work back then and now it just pops errors by hundreds (AND it still works nonetheless). I really want to get rid of those messages, so if any of you have an idea on how to improve my mover so that it won't bug and still shoot projectiles that can miss, I'd be grateful... It's used in a weapon by the way, basically it's based on the photon cannon missiles and every shooting unit in my map uses this modified mover (or a clone of it anyway).
Start the map in test mode with enabled debug window and have a look at that error message, maybe there is some more helpful information,
The error was probably present all the time, the latest patches just added a bunch of error messages, which never showed up before. Until you find a solution, you could disable all trigger errors for your official release.
What do you mean exactly by missiles, which can miss?
What do you mean exactly by missiles, which can miss?
Basically it's a photon cannon projectile, but instead of using the "guidance" motion that updates its direction towards its target, it just goes straight and eventually die (either after a delay, or because its search area effect found an obstacle). You can watch the videos on my project page to see how it behaves more accurately, but it's a really basic dodgeable projectile.
I usually disable errors when I publish on BNet but still, I just want to make sure this error is definitely removed because I think it's also partly responsible for another bug I found in my map lately (ie. the last 2nd level boss shooting pattern is not working properly, probably a collision detection issue).
I'm not sure exactly what's this test mode you're talking about, how do I start it?
Basically it's a photon cannon projectile, but instead of using the "guidance" motion that updates its direction towards its target, it just goes straight and eventually die (either after a delay, or because its search area effect found an obstacle). You can watch the videos on my project page to see how it behaves more accurately, but it's a really basic dodgeable projectile.
So you want a basic colliding projectile? In this case, I would recommend still using a guidance mover and just target an offset point using a persistent effect. I experimented with movers and colliding projectiles quite a bit, and so far this is the method, which worked out best for me.
Quote:
I'm not sure exactly what's this test mode you're talking about, how do I start it?
Just test the map from the editor, with the Show Trigger Debugging Window flag enabled in the editor preferences.
In this case, I would recommend still using a guidance mover and just target an offset point using a persistent effect.
Won't it miss its target everytime? I have a hard time figuring how a guided projectile could be dodged, and I don't see how an offset can help without making the projectile incredibly dumb (to a point it will almost always miss its target because it will constantly aim for the offset point). While I'm at it, is there a way to destroy a projectile colliding with doodads and cliffs (like trees, walls, or whatever blocking the line of sight)?
Won't it miss its target everytime? I have a hard time figuring how a guided projectile could be dodged, and I don't see how an offset can help without making the projectile incredibly dumb (to a point it will almost always miss its target because it will constantly aim for the offset point).
You can use dynamic offsets in the direction of the target. Also you can use a guided missile targeting a point, which will just fly straight to this point, like pointed out in this tutorial.
Quote:
While I'm at it, is there a way to destroy a projectile colliding with doodads and cliffs (like trees, walls, or whatever blocking the line of sight)?
You could add a periodically executed pathable check validator at the location of the missile
It uses a ballistic driver, yet the arrival test type is set to "never" so it never reaches its target? When it gets to the target point, I'm not sure how it's supposed to expand the parabola through the ground...
Are you sure you don't want to use something like a throw driver? It would seem far more appropriate, especially with a "never" arrival test type.
It uses a ballistic driver, yet the arrival test type is set to "never" so it never reaches its target? When it gets to the target point, I'm not sure how it's supposed to expand the parabola through the ground...
Are you sure you don't want to use something like a throw driver? It would seem far more appropriate, especially with a "never" arrival test type.
It just goes in the general direction of the unit you attack, which explains why it can miss it. So yes, it never reaches its target because it doesn't have any. And that's exactly what I want. The way it works is pretty simple: it gains speed in the direction of the unit you attack, and never stops until its search area finds a valid obstacle (or the lifetime of the projectile expires). Pretty much like a random shot. When there is something in the search area, it simply kills the projectile and apply some damage to whoever was on its path.
The arrival test is set to "never" (and tracking set to "no hook") because it doesn't have a specific target: it just picks whatever collides with it first while it flies around, be it its original target or anything else than came in the line of sight. That's pretty much it, and so far it works like a charm ingame (with the exception of these error messages lately so I guess it doesn't work that well, you got that right...). I'm pretty sure I'm not supposed to use a "throw" driver though, specifically because throwing involves a parabola (even if virtually flattened to look like a straight line) and a target point, which I don't want here. I want it to potentially fly endlessly in a straight line, so anything that gives it a specific target is not good. That's why I went for the whole "go fly in that direction and see if I'm there, little buddy"...
@Kueken: Clever idea with the pathable validator, I guess it won't work if I want the bullets to pass over rocks but not trees though... Since both are making the path blocked for ground units they will both be valid targets for the projectile collision detection. Meh, I guess I'll have to do with it, screw these rocks... I'll look into it. And the tutorial looks helpful, thanks.
"Flying in a straight line" is precisely what the throw driver is all about. It doesn't even deal with a target point, just a direction vector. Parabola traces an arc between the source and the target. What happens to the parabola when you go beyond the target point? That's probably why SC2 is complaining.
I have used such missiles that scan for targets, I have always used throw movers and I'm pretty sure you should too...
"Flying in a straight line" is precisely what the throw driver is all about.
And so do all the motion drivers... What is the "ballistic" driver for, if not for a projectile that acts just like a bullet? What's the difference between "parabola" and "throw", since they both check/use the values in the parabola fields anyway?
Anyway, I just tried the "throw" motion driver to check. Also added a negative value in the Throw vector (Y axis), and changed arrival test to "adaptive".. I expected no significant change, as I already spent hours and hours to get my projectile to work back in the days of v1.0 (experimenting every single field in movers is my favorite leisure, honest!)... The projectile using the "throw" driver has randomized speed for some reason, the collision detection is not working half of the time, the splash model doesn't show up where it should, and the projectile itself is behaving weirdly on targets NOT moving (seems like it even tries to go around them sometimes, almost dodging the target then it keeps going). The error message is still showing, though I think it happens less often after modifying each custom mover in my map... If anything conclusive, it's obvious the motion driver is still only part of the solution (or problem, depending on your point-of-view). There is something happening deeper than just an "inappropriate" motion driver or arrival test.
Still no clue even after checking the debug console either, nothing suspicious appears except MAYBE the fact that the mover error always shows after the same trigger is launched (this trigger is executed when enemy units attack with grenades, which is why I'm suspecting it but it may also be a wild-goose chase). I have absolutely no error whatsoever on my map except this and performance tests are perfect (told you, I worked hard on this map!). I'll get back to you if I have any clue miraculously popping into my head. Keep investigating, gentlemen! I'll have a look at Kueken's tutorials very soon, since it's my best option so far.
As I sad, the "ballistic" driver traces a parabola in the air from source to target. The "throw" driver uses a completely different set of variables, the parabola settings are ignored.
Kueken531 is right, read up Blizzard's information on movers, it will all make a lot more sense.
As I sad, the "ballistic" driver traces a parabola in the air from source to target. The "throw" driver uses a completely different set of variables, the parabola settings are ignored.
Kueken531 is right, read up Blizzard's information on movers, it will all make a lot more sense.
Would you please focus on the error message instead of taking me for a complete noob? I already spent hours and hours testing movers, reading tutorials and searching for any kind of help on the forums. I know my mover looks weird but as far as I can tell after all these tests, this is the only working combination I found if I want a projectile that can miss its target AND will keep flying around even if it goes beyond the target point/unit. All the tutorials available use guidance movers, or spells that aren't supposed to work beyond their target point/unit. I know you're trying to help here, but I already checked all of this. Besides, I tried modifying all my custom movers according to your advices and it didn't remove the errors, actually it made it even worse (more errors than before, and projectiles moving...err... ninja-style).
I started the map again, checking for errors in the debug console. Two things appeared:
1) the error message shows even when I don't shoot. In fact, it shows during the first 10 seconds of the game, there is no way my character would have started attacking or being targeted because I didn't even move. Unless...
2)...unless of course there IS another unit showing in range of an enemy somewhere on the map, and they attack each other. The soldiers (and grenadiers) in my map randomly shoot grenades towards their enemy target. There is a trigger ordering them to use their grenade ability when they start attacking. I also have a trigger spawning drop pods (and zerg units) all over the place, which could mean a drop pod landed somewhere on the map in the first 10 seconds, close enough to a soldier, therefore they fight and there is something effed up when it happens.
I still don't get why the errors are showing up, I thought the motion driver was the cause but it's not, since I applied some changes as you suggested and the errors are still showing. Can it be the weapon effect then? I've seen in the console that the error appears as many times in a row as there are projectiles launched. For example, an helicopter shoots 8 bullets at the same time, so I have 8 errors in a row in the debug console. It doesn't necessarily mean the mover is at fault, it might as well be the effect creating the bullets, right?
The error messages really seem to suggest the problem lies with the movers... I have used missiles that will miss their target and keep flying abundantely. Here's an example of such a mover :
First phase throws the missile on the left side, to alternate with another mover throwing missiles from the other side. Remove the first phase for "straight line" testing ( and the throw band variation if you want ).
Thanks, I just tried but it didn't work. I made sure no other unit could attack, created a new mover, edited it in XML view to copy-paste your example, removed the first motion phase, modified my character weapon with the new mover, saved and tested. The missile itself moves properly (can't see why it wouldn't, if it works for you) buuuuuuut... *rolling drums* Wait for it... *rolling drums* The error still shows up!
I agree it SHOULD be a mover error (I don't remember anything else but movers using phases), but why do the errors still show up with a fresh new mover set on my weapon? Attachment points issues? Effects/AoE... launch missiles, maybe? It makes no sense to me.
The launch missile doesn't override the unit mover, and the only event customized in the actor is a "set tint color" to make the bullet brighter (and cyan). I also checked a very old version of my map just to be sure, the error also appears here (the oldest I could find is 0.6a, current is >1.9).
So basically, this error is very old and couldn't be caused by the amount of features I added in recent versions. It leaves pretty much nothing but the gameplay mechanics, which includes projectiles and anything related to them.
EDIT: Tested v0.6a after removing ALL triggers, ALL terrain elements (+cropped/resized the map) ALL custom data elements (except main character + his custom weapon and anything related to it). Seems like the error still shows up! Since it's apparently not the mover, what could it be? It's obviously related to the weapon.
Check your Actor data, you must have an actor somewhere sending a Take Snapshot message. Remove that.
Found it, and it works! Thanks a lot, Masterxel. I can't believe it's something so stupid... I have no clue how this thing could cause errors (or why it was in here in the first place, since I never added this myself) but it did... What's the "take snapshot" event for, by the way?
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Hi guys, I have an error showing very, very frequently when playing my Ikari Warriors map, be it locally or on BNet... It started appearing after the SC2 patch 1.4 came out (maybe it was there before but I haven't noticed this prior to 1.2), and from what I read I guess it's due to something wrong in the mover used for my projectiles. These projectiles are supposed to move in a straight line and can miss their target. So far it works, but I have this annoying message showing everytime an enemy (or my character) shoots: http://imageshack.us/photo/my-images/202/moverphaseerror.png/
Here is how the mover itself is made in the Data editor, just in case you know what's wrong or want to try it yourself: http://imageshack.us/photo/my-images/231/moverphaseerror2.png/
I seriously have no clue why it used to work back then and now it just pops errors by hundreds (AND it still works nonetheless). I really want to get rid of those messages, so if any of you have an idea on how to improve my mover so that it won't bug and still shoot projectiles that can miss, I'd be grateful... It's used in a weapon by the way, basically it's based on the photon cannon missiles and every shooting unit in my map uses this modified mover (or a clone of it anyway).
Start the map in test mode with enabled debug window and have a look at that error message, maybe there is some more helpful information,
The error was probably present all the time, the latest patches just added a bunch of error messages, which never showed up before. Until you find a solution, you could disable all trigger errors for your official release.
What do you mean exactly by missiles, which can miss?
Basically it's a photon cannon projectile, but instead of using the "guidance" motion that updates its direction towards its target, it just goes straight and eventually die (either after a delay, or because its search area effect found an obstacle). You can watch the videos on my project page to see how it behaves more accurately, but it's a really basic dodgeable projectile.
I usually disable errors when I publish on BNet but still, I just want to make sure this error is definitely removed because I think it's also partly responsible for another bug I found in my map lately (ie. the last 2nd level boss shooting pattern is not working properly, probably a collision detection issue).
I'm not sure exactly what's this test mode you're talking about, how do I start it?
So you want a basic colliding projectile? In this case, I would recommend still using a guidance mover and just target an offset point using a persistent effect. I experimented with movers and colliding projectiles quite a bit, and so far this is the method, which worked out best for me.
Just test the map from the editor, with the Show Trigger Debugging Window flag enabled in the editor preferences.
Won't it miss its target everytime? I have a hard time figuring how a guided projectile could be dodged, and I don't see how an offset can help without making the projectile incredibly dumb (to a point it will almost always miss its target because it will constantly aim for the offset point). While I'm at it, is there a way to destroy a projectile colliding with doodads and cliffs (like trees, walls, or whatever blocking the line of sight)?
You can use dynamic offsets in the direction of the target. Also you can use a guided missile targeting a point, which will just fly straight to this point, like pointed out in this tutorial.
You could add a periodically executed pathable check validator at the location of the missile
Your mover is really weird.
It uses a ballistic driver, yet the arrival test type is set to "never" so it never reaches its target? When it gets to the target point, I'm not sure how it's supposed to expand the parabola through the ground...
Are you sure you don't want to use something like a throw driver? It would seem far more appropriate, especially with a "never" arrival test type.
It just goes in the general direction of the unit you attack, which explains why it can miss it. So yes, it never reaches its target because it doesn't have any. And that's exactly what I want. The way it works is pretty simple: it gains speed in the direction of the unit you attack, and never stops until its search area finds a valid obstacle (or the lifetime of the projectile expires). Pretty much like a random shot. When there is something in the search area, it simply kills the projectile and apply some damage to whoever was on its path.
The arrival test is set to "never" (and tracking set to "no hook") because it doesn't have a specific target: it just picks whatever collides with it first while it flies around, be it its original target or anything else than came in the line of sight. That's pretty much it, and so far it works like a charm ingame (with the exception of these error messages lately so I guess it doesn't work that well, you got that right...). I'm pretty sure I'm not supposed to use a "throw" driver though, specifically because throwing involves a parabola (even if virtually flattened to look like a straight line) and a target point, which I don't want here. I want it to potentially fly endlessly in a straight line, so anything that gives it a specific target is not good. That's why I went for the whole "go fly in that direction and see if I'm there, little buddy"...
@Kueken: Clever idea with the pathable validator, I guess it won't work if I want the bullets to pass over rocks but not trees though... Since both are making the path blocked for ground units they will both be valid targets for the projectile collision detection. Meh, I guess I'll have to do with it, screw these rocks... I'll look into it. And the tutorial looks helpful, thanks.
"Flying in a straight line" is precisely what the throw driver is all about. It doesn't even deal with a target point, just a direction vector. Parabola traces an arc between the source and the target. What happens to the parabola when you go beyond the target point? That's probably why SC2 is complaining.
I have used such missiles that scan for targets, I have always used throw movers and I'm pretty sure you should too...
And so do all the motion drivers... What is the "ballistic" driver for, if not for a projectile that acts just like a bullet? What's the difference between "parabola" and "throw", since they both check/use the values in the parabola fields anyway?
Anyway, I just tried the "throw" motion driver to check. Also added a negative value in the Throw vector (Y axis), and changed arrival test to "adaptive".. I expected no significant change, as I already spent hours and hours to get my projectile to work back in the days of v1.0 (experimenting every single field in movers is my favorite leisure, honest!)... The projectile using the "throw" driver has randomized speed for some reason, the collision detection is not working half of the time, the splash model doesn't show up where it should, and the projectile itself is behaving weirdly on targets NOT moving (seems like it even tries to go around them sometimes, almost dodging the target then it keeps going). The error message is still showing, though I think it happens less often after modifying each custom mover in my map... If anything conclusive, it's obvious the motion driver is still only part of the solution (or problem, depending on your point-of-view). There is something happening deeper than just an "inappropriate" motion driver or arrival test.
Still no clue even after checking the debug console either, nothing suspicious appears except MAYBE the fact that the mover error always shows after the same trigger is launched (this trigger is executed when enemy units attack with grenades, which is why I'm suspecting it but it may also be a wild-goose chase). I have absolutely no error whatsoever on my map except this and performance tests are perfect (told you, I worked hard on this map!). I'll get back to you if I have any clue miraculously popping into my head. Keep investigating, gentlemen! I'll have a look at Kueken's tutorials very soon, since it's my best option so far.
For the differences of the different mover phases, I highly recommend Blizzard's very own mover tutorial, which covers basically everything.
As I sad, the "ballistic" driver traces a parabola in the air from source to target. The "throw" driver uses a completely different set of variables, the parabola settings are ignored.
Kueken531 is right, read up Blizzard's information on movers, it will all make a lot more sense.
@StragusMapster: Go
That and ProzaicMuze's mover tutorial would be immensely helpful if you don't understand movers.
Would you please focus on the error message instead of taking me for a complete noob? I already spent hours and hours testing movers, reading tutorials and searching for any kind of help on the forums. I know my mover looks weird but as far as I can tell after all these tests, this is the only working combination I found if I want a projectile that can miss its target AND will keep flying around even if it goes beyond the target point/unit. All the tutorials available use guidance movers, or spells that aren't supposed to work beyond their target point/unit. I know you're trying to help here, but I already checked all of this. Besides, I tried modifying all my custom movers according to your advices and it didn't remove the errors, actually it made it even worse (more errors than before, and projectiles moving...err... ninja-style).
I started the map again, checking for errors in the debug console. Two things appeared:
1) the error message shows even when I don't shoot. In fact, it shows during the first 10 seconds of the game, there is no way my character would have started attacking or being targeted because I didn't even move. Unless...
2)...unless of course there IS another unit showing in range of an enemy somewhere on the map, and they attack each other. The soldiers (and grenadiers) in my map randomly shoot grenades towards their enemy target. There is a trigger ordering them to use their grenade ability when they start attacking. I also have a trigger spawning drop pods (and zerg units) all over the place, which could mean a drop pod landed somewhere on the map in the first 10 seconds, close enough to a soldier, therefore they fight and there is something effed up when it happens.
I still don't get why the errors are showing up, I thought the motion driver was the cause but it's not, since I applied some changes as you suggested and the errors are still showing. Can it be the weapon effect then? I've seen in the console that the error appears as many times in a row as there are projectiles launched. For example, an helicopter shoots 8 bullets at the same time, so I have 8 errors in a row in the debug console. It doesn't necessarily mean the mover is at fault, it might as well be the effect creating the bullets, right?
The error messages really seem to suggest the problem lies with the movers... I have used missiles that will miss their target and keep flying abundantely. Here's an example of such a mover :
<CMoverMissile id="XnMinotaurMoverBarrageLeft">
<HeightMap value="Air"/>
<MotionPhases>
<Driver value="Throw"/>
<AccelerationRange value="2"/>
<Speed value="1"/>
<MinSpeed value="1"/>
<MaxSpeed value="4"/>
<ArrivalTestType value="Never"/>
<Outro value="0.5,1.5,1,1"/>
<Timeout value="1"/>
<ThrowRotationType value="LauncherForward"/>
<ThrowVector value="-1,0,0"/>
</MotionPhases>
<MotionPhases>
<Driver value="Throw"/>
<Acceleration value="12"/>
<Speed value="1"/>
<MinSpeed value="4"/>
<MaxSpeed value="16"/>
<ArrivalTestType value="Never"/>
<ThrowRotationType value="LauncherForward"/>
<ThrowVector value="0,-1,0"/>
<ThrowBandYaw value="5.625,-5.625,0,0"/>
</MotionPhases>
</CMoverMissile>
First phase throws the missile on the left side, to alternate with another mover throwing missiles from the other side. Remove the first phase for "straight line" testing ( and the throw band variation if you want ).
Thanks, I just tried but it didn't work. I made sure no other unit could attack, created a new mover, edited it in XML view to copy-paste your example, removed the first motion phase, modified my character weapon with the new mover, saved and tested. The missile itself moves properly (can't see why it wouldn't, if it works for you) buuuuuuut... *rolling drums* Wait for it... *rolling drums* The error still shows up!
I agree it SHOULD be a mover error (I don't remember anything else but movers using phases), but why do the errors still show up with a fresh new mover set on my weapon? Attachment points issues? Effects/AoE... launch missiles, maybe? It makes no sense to me.
Woah... Okay, that's unexpected! I really wonder what could be causing this then.
Does the Launch Missile effect override the missile unit's mover by specifying a different mover?
What about your missile actor, is it catching any events related to mover phases? (some missiles change animation based on mover phase)
The launch missile doesn't override the unit mover, and the only event customized in the actor is a "set tint color" to make the bullet brighter (and cyan). I also checked a very old version of my map just to be sure, the error also appears here (the oldest I could find is 0.6a, current is >1.9).
So basically, this error is very old and couldn't be caused by the amount of features I added in recent versions. It leaves pretty much nothing but the gameplay mechanics, which includes projectiles and anything related to them.
EDIT: Tested v0.6a after removing ALL triggers, ALL terrain elements (+cropped/resized the map) ALL custom data elements (except main character + his custom weapon and anything related to it). Seems like the error still shows up! Since it's apparently not the mover, what could it be? It's obviously related to the weapon.
Check your Actor data, you must have an actor somewhere sending a Take Snapshot message. Remove that.
Found it, and it works! Thanks a lot, Masterxel. I can't believe it's something so stupid... I have no clue how this thing could cause errors (or why it was in here in the first place, since I never added this myself) but it did... What's the "take snapshot" event for, by the way?