Spieldesign - AI
Version vom 3. Dezember 2015, 15:37 Uhr von 80.150.105.122 (Diskussion)
Basic blocks - AI actions
- Acquire (target, number = 1, allowStealing = false, allowPickpocketing = false, allowKilling = false)
- Activate (target, number = 1)
- Eat (foodType, createFakeFood = false, gainChemicals = true)
- Escort (target, number = 1, destination, waitDistance, minDistance, maxDistance, rideHorse = false, preferPaths = true, runIfBehindDistance)
- FleeFrom (from, avoidNodeRadius, distance, rideHorse = false, ignoreDeadThreats = true, quiet = true, countAsIsFleeing = true)
- FleeTo (to, goalRadius, rideHorse = false, quiet = true, countAsIsFleeing = true)
- Fly (location, height)
- Follow (target, minRadius, maxRadius, useLeadersGoal = false, rideHorse = false, needLOS = false)
- FollowTo (target, endLocation, minRadius, maxRadius, useLeadersGoal = false, rideHorse = false, needLOS = false)
- ForceGreet (topic, waitLocation, triggerLocation)
- Guard (restrictedArea, suspiciousOf, warnRadius, attackRadius)
- HoldPosition (location)
- KeepAnEyeOn (target, observationArea, endPursuitArea)
- LockDoors (location, warnBeforeLocking)
- Orbit (location, innerRadius, outerRadius, height)
- Patrol (pathStart, pointRadius, repeatable, startAtNearestPoint, rideHorse = false)
- Say (topic, target, lookAtTarget)
- Sit (target)
- Sleep (target)
- Travel (destination, rideHorse = false)
- UnlockDoors (location)
- UseIdleMarker (target)
- UseMagic (location, spell, holdWhenBlocked, castTimeMin, castTimeMax, cooldownTimeMin, cooldownTimeMax)
- UseWeapon (location, weapon, target, alwaysHit, repeat = false, crouchToReload, doNoDamage, holdWhenBlocked, allowCombatStart, alwaysPowerAttack)
- AimWeapon (location, weapon, target, holdWhenBlocked)
- UseWeaponVolley (location, weapon, target, alwaysHit, repeat = false, crouchToReload, doNoDamage, holdWhenBlocked, allowCombatStart, alwaysPowerAttack, volleyWaitMin, volleyWaitMax, volleyShotsMin, volleyShotsMax)
- Wait (duration, stomMovement = false)
- Wander (location, preferPaths = true, rideHorse = false, minDistance)
- Sandbox (location, preferPaths = true, minDistance, energy, allowEating, allowSleeping, allowConversation, allowIdleMarkers, allowFurniture, allowSitting, allowWandering, allowWorkbenches)
- UseSkill (location, skill, holdWhenBlocked, useMaterials)
AI functions (return a value)
- Find (location, targetSelection, searchOwnInventory = true, randomizeList = true) -> objectList
AI utility stuff
- Succeed ()
- Fail ()
- PushToStack (variable)
- PopFromStack () -> value
- SetVariable (variable, value)
Action trees - composite and decorator nodes:
- Random (Pick one child node and finish when it finishes. Return value is the child node's return value.)
- Sequence (Go through child nodes in sequence and execute them, until you finish or one node fails. Return the last executed node's return value)
- Selector (Go through child nodes in sequence and execute them, until the first succeeds. Return success unless no child nodes succeeded)
- ParallelAny (Run all child nodes at once. Return when the last one finishes. Return success unless no child nodes succeeded)
- ParallelAll (Like ParallelAny, but return failure if any child node failed)
- RandomSequence (like Sequence, but in random order)
- RandomSelector (like Selector, but in random order)
- StaticPriorityList (Evaluate the child node list's priorities and execute the valid one with the highest priority. Return its return value)
- DynamicPriorityList (Like StaticPriorityList, but re-evaluate the priorities at every step and terminate child nodes which lost their highest priority status)
- Invert (run the child node, invert its result)
- Interrupter (Runs the child node, but can be signalled to interrupt it at any step)
- Limit (Only runs the child node a maximum amount of times, returning failure all subsequent times)
- Repeat (Repeats the child node forever)
- UntilFail (Repeats the child node until it returns failure, then returns success)
- Succeeder (Runs the child node, then returns success)
TODO: Parallel Immediate/Delayed stuff?
See also: https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/NodeReference/Decorators/index.html