Mostly Harmless

Difference between revisions of "Legacy:JumpSpot (UT)"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
(LiftCenter links now point to UT version)
 
m (Added details)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{classbox|[[Legacy:UT|UT]] :: [[Legacy:Actor (UT)|Actor (UT)]] >> [[Legacy:NavigationPoint (UT)|NavigationPoint (UT)]] >> [[Legacy:LiftCenter (UT)|LiftCenter (UT)]] >> JumpSpot}}
 
{{classbox|[[Legacy:UT|UT]] :: [[Legacy:Actor (UT)|Actor (UT)]] >> [[Legacy:NavigationPoint (UT)|NavigationPoint (UT)]] >> [[Legacy:LiftCenter (UT)|LiftCenter (UT)]] >> JumpSpot}}
  
'''Tarquin:''' DM-Morpheus places the JS at the TOP of the jump – where the bot should land. This is similar bahaviour to the use of [[Legacy:TranslocDest|TranslocDest]], and since both TD and JS are subclasses of  [[Legacy:LiftCenter (UT)|LiftCenter (UT)]], I'm inclined to say that what is written below is incorrect.
+
A '''JumpSpot''' is a NavigationPoint that indicates where a Bot can jump with [[Legacy:UT_JumpBoots|Jump Boots]] (or [[Legacy:HammerJump|hammerjumping]] if bImpactJump is true, though boots are prefered if avaiable due to harmlessness), or with the feet if the zone has low gravity (ZoneGravity.Z smaller than ~500).
  
Also, on Morpheus the bots don't have boots: they jump plain, but travel far with the gravity. can JS be used in normal gravity to specify an accomplaishable jump? Stay tuned...
+
==How to Use==
 +
Put a JumpSpot where you want to be the end of the using bot's jump. Set it's LiftCenter -> LiftTag in the Properties to a name that better describes the jump maneuver, and set up the properties as seen below. Then put a LiftExit at the start of the jump, and another near the JumpSpot. Match their LiftExit -> LiftTag to the JumpSpot's one.
  
Then again, Morph uses LE - JS - LE for the top towers, where a bot has to go up. For jumps ''across'' gaps, Morph uses LE - [[Legacy:LiftCenter (UT)|LiftCenter (UT)]] - LE. Hmmm.
+
Only use JS for tall jumps. For gaps and dodge jumps (preferably with a bit of room to spare), use LiftCenter replacing the JS the same way. However there will be no hammerjump between large gaps. Here you can use a Jump Spot with bHammerJump true. For even smaller lips/gaps that has some room, use PathNodes at both sides.
  
A JumpSpot actor is used to tell the bots where to perform an impact hammer or anti-gravity (typically with the boots) jump. Place the actor where the bot should begin the jump and set bHammerJump to <tt>True</tt> if you want the bots to use the impact hammer for the jump if boots are not available. Note that this should not be used for places like bots jumping a small gap or lip - if a player can make the jump normally (preferably with a bit of room to spare), then simply use [[Legacy:PathNode|PathNode]]s above/below or before/after the lip/gap.
+
===Troubleshooting===
 +
As a LiftCenter, a MaxZDiffAdd should sometimes be finetuned between the starting ("ground floor") [[Legacy:LiftExit (UT)|LiftExit]] and the JumpSpot. Often it needs to be in the apex for two-way pathes at the same level. If, for example, the result is a open catwalk, there is no need, as the Bot assumes he can fall from the catwalk LiftExit to the ground one, which is normally true.
  
'''EntropicLqd:'''  My understanding of jump spots is that they can be used to tell the bots about all jumps that they can make that could lead to a shortcut through the level, or ones which the normal AI can't figure out for itself, including impact hammer jumps and low-grav short cuts.  The AI will calculate some jumps, but not all possible ones (it seems to be distance based with the Z component having more significance. I've always had most luck setting up jump spots that are short cuts through the level (or pathnoding kickers) as one way paths with the jumpspot pretty much next to its associated lift exit. From the experimentation I've done bi-directional jumpspots required the jumpspot to be at the apex of the jump that is to be made. However, I found the failure rate of this sort of path to be unnaceptable.  Oddly, the AI only requires that the lift-exits are travelled through, not the jumpspot.
+
Normally the bot will grab a jump boot before jumping the JumpSpot's path, if it is more reliable than hammerjumping or bHammerJump is false. But if he don't there are some ways to make he do it:
 +
 
 +
* Use the JumpSpot navigation point, add a small zone cube on it without the modified gravity, bots will consider the route once they have the boots.
 +
* Create a new path type that makes bots consider the route if either:
 +
** They have boots.
 +
** Boots pickup is available near to the jump start location + force bots to pick up boots if they're standing on the jump start location without boots.
 +
 
 +
The first solution is preferred. Only use the second solution if the first one doesn't works.
 +
 
 +
==Properties==
 +
 
 +
===JumpSpot group===
 +
 
 +
 
 +
'''bImpactJump:''' If true, a bot can do a hammerjump instead of the boot jump if a jump boots is unavaiable or more unreliable.
 +
 
 +
 
 +
'''bAlwaysAccel:''' If true, bots will simply mash the forward button as he jumps (instead of trying to land on the exact point of the destination).
 +
 
 +
==Discussion==
 +
 
 +
Liked my edit? --[[User:Gustavo6046|Gustavo6046]] ([[User talk:Gustavo6046|talk]]) 18:09, 5 September 2015 (EDT)

Latest revision as of 09:52, 19 January 2016

A JumpSpot is a NavigationPoint that indicates where a Bot can jump with Jump Boots (or hammerjumping if bImpactJump is true, though boots are prefered if avaiable due to harmlessness), or with the feet if the zone has low gravity (ZoneGravity.Z smaller than ~500).

How to Use[edit]

Put a JumpSpot where you want to be the end of the using bot's jump. Set it's LiftCenter -> LiftTag in the Properties to a name that better describes the jump maneuver, and set up the properties as seen below. Then put a LiftExit at the start of the jump, and another near the JumpSpot. Match their LiftExit -> LiftTag to the JumpSpot's one.

Only use JS for tall jumps. For gaps and dodge jumps (preferably with a bit of room to spare), use LiftCenter replacing the JS the same way. However there will be no hammerjump between large gaps. Here you can use a Jump Spot with bHammerJump true. For even smaller lips/gaps that has some room, use PathNodes at both sides.

Troubleshooting[edit]

As a LiftCenter, a MaxZDiffAdd should sometimes be finetuned between the starting ("ground floor") LiftExit and the JumpSpot. Often it needs to be in the apex for two-way pathes at the same level. If, for example, the result is a open catwalk, there is no need, as the Bot assumes he can fall from the catwalk LiftExit to the ground one, which is normally true.

Normally the bot will grab a jump boot before jumping the JumpSpot's path, if it is more reliable than hammerjumping or bHammerJump is false. But if he don't there are some ways to make he do it:

  • Use the JumpSpot navigation point, add a small zone cube on it without the modified gravity, bots will consider the route once they have the boots.
  • Create a new path type that makes bots consider the route if either:
    • They have boots.
    • Boots pickup is available near to the jump start location + force bots to pick up boots if they're standing on the jump start location without boots.

The first solution is preferred. Only use the second solution if the first one doesn't works.

Properties[edit]

JumpSpot group[edit]

bImpactJump: If true, a bot can do a hammerjump instead of the boot jump if a jump boots is unavaiable or more unreliable.


bAlwaysAccel: If true, bots will simply mash the forward button as he jumps (instead of trying to land on the exact point of the destination).

Discussion[edit]

Liked my edit? --Gustavo6046 (talk) 18:09, 5 September 2015 (EDT)