Unreal Developer Network Content Creation
Welcome to the Unreal Developer Network The Engine Unreal Powered Content Creation Technical Playstation2 Xbox Gamecube Licensee Log In

Content Creation

Content Creation home

Documents listed below, but not hyperlinked, are restricted to engine licensees only.

As certain texts become relevant, due to released games using that technology, new documents will be made available. Check back often!
 
Getting Started
   - WhatToReadFirst
   Support
   - UnEdit (mailing list)
   - UnEditTraffic (summaries)
   - UnDevIRC (chat)
   - UnDevIRCTraffic (summaries)
   - UnrealEdSux0rs (bug list)
   Engine Prerequisites
   - BasicConcepts?
   - TextureSpecifications
   - TextureComparison
   - Etc.

General Editor
   Basics
   - IntroToUnrealEd
   - UnrealEdInterface
   - RotationGizmo
   - UnrealEdKeys
   - BrushClipping
   - VertexEditing
   - BoxSelection
   - ShapeEditor
   - ExampleMaps
   - TriggersTutorial
   - Workflow
   Primitives
   - BspBrush
   - MirrorsAndWarpZones
   - HardwareBrush
   - MoversTutorial
   - UKXPackagesTutorial
   - TerrainTutorial
   - VolumesTutorial
   - LightingTutorial
   - ProjectiveTutorial
   - MaterialTutorial
   - CollisionTutorial
   - FluidSurfaceTutorial
   Animation
   - AnimNotifies
   Particles
   - EmittersTutorial
   - EmittersExamples
   New Particle Editor
   - ParticleSystems
   - ExampleParticleSystems
   Matinee
   - MatineeTutorial
   - MatineeExample
   - MatineeDemoOpening
   - MatineeDemoDropship
   - MatineeDemoSoldiers?
   - SampleMatineeTips
   Scripted Sequences
   - ScriptedSequenceTutorial
   - ScriptedSequenceActions
   - AIControllers
   Techniques
   - LevelOptimization
   - GroupsBrowser
   - NavigationAI
   - VertexBlendingTutorial
   - ConvertingContent739To829

Tools
   - ActorX
   - UmodWizard
   - ModelingTableOfContents
   - CADtoUnreal

mathengine.gif < br> Karma Physics
   - KarmaReference < br>    - KarmaExample1
   - KarmaExample2
   - ImportingPhysicsAssets
   - RagdollsInUT2003
   - KarmaExampleUT2003
   - ExampleMapsKarmaColosseum

secretlevel.gif
PlayStation2 and GameCube
   - ConsoleDevelopment

Contribute!
You can create a new page, and then you can edit this list to add it to the categories, as well as edit the Content Creation homepage to tell everyone about it!

Make Requests!
You can also stop by the UdnStaff page to see what we're working on, and edit it to add your own document requests.


Please take note! For mod developers working with Unreal Tournament 2003, this documentation is meant to be a starting point for your own explorations into UT2003, not a definitive guide. There will be differences between the documentation here and the product in your hands, and you may have to figure out quite a bit for yourself. Check out the Unreal Tournament 2003 page in the Unreal Powered area for links to community sites if you're having problems. UDN is a licensee support site, and cannot provide technical support or game-specific assistance to end users.

AIControllers

Licensees can log in.

Interested in the Unreal engine? Check out the licensing page.

Questions about UDN itself? Contact the UDN Staff.

AI Controllers

Last updated by Chris Linder(DemiurgeStudios) to update for 2226 and to clarify a few points. Original author was Hugh Macdonald (UdnStaff).

Overview

The AI Controller classes define how a pawn, or group of pawns, act. The basic AI Controller will look after pawns, or groups of pawns, which are just allowed to wander, or stand in a level. A ScriptedController is used with a ScriptedSequence, to allow a much more detailed script to be put together, detailing exactly what the pawn should do.

The Level contains a linked-list of all the Controllers in the level, so one Controller can work through to find out what else is there.

AIController

Most AIController classes are linked to by AIScript actors. In turn, the AIScript is linked to by a Pawn. When the level starts, each Pawn will check to see if it has anything in AIScriptTag - if it does, then it will find the AIScript with that tag, and link to it. The AIScript will then spawn an AIController for each Pawn that links to it.

Some pawns may already have a ControllerClass associated with it. This can be overridden with with AIScript, though.

NOTE: If you link an AIController from a ScriptedSequence, you are not able to change it's properties. This is because you only link to the AIController class, and there is no instance of the controller until the level begins.

ScriptedController

ScriptedController and it's subclasses can be selected as the controller for a Scripted Sequence. They will allow the actions to control the pawn.

ScriptedTriggerController

Bot

This is the controller that is used for enemy bots. They can also be controlled with a ScriptedSequence, but when they are released, they will use all the AI that normal bots have.

AmbientCreature

Ambient Creatures exist on the server, and are the same on all clients.

HerdAnimal

A herd is made up of a groups of Ambient Pawns, all with the same tag (in the current base UW build, a 'Flappy' is the only AmbientPawn subclass). When a pawn is linked to, the HerdAnimal controller will go through the list of controllers in the level, and find any others which are controlling pawns with the same Tag.

Each herd will have a certain number of dads, moms and infants. Whenever a new pawn is added to the herd, it looks at the number of dads, moms and infants, and picks what it will be appropriately. Each pawn in the herd is also given another member of the herd to follow (the closest to it's position), and each infant is found a mom (the closest mom).

If, at any point, any member of the herd is damaged, then they will warn all other members of the herd, and the entire herd will stampede. This will mean that they will run away from whatever caused them the damage, and will only stop stampeding after they have been out of sight for a certain length of time. Where they move is a combination of staying close to their neighbour, running away from the enemy, and a bit of randomness.

A stampede can also be caused by triggering one of the members of a herd, or by one of them hearing a sound that was not caused by an AmbientCreature.

When not stampeding, a herd will generally wander around, and graze, while staying relatively close together. Infants will always try to stay with their moms.

TransientAmbientCreature

Note: TransientAmbientCreatures do not work in 2226 because of change in the way zones are rendered. This can easily be fixed by removing line 125 in AmbientCreatureManager.uc. This line reads:

|| (Level.TimeSeconds - Region.Zone.LastRenderTime > 0.5)

Transient Ambient Creatures only exist on the client machine - they are the creatures which make no difference to any game-play, like birds, and bugs, etc.

Transient Ambient Creatures work slightly differently, in the you don't actualy have to place the pawn itself in the level. They are actually controlled by an AmbientCreatureManager (subclass of Info)

The AmbientCreatureManager has the following options:

MaxCreatures Speaks for itself - the maximum number of creatures that this manager can create.
TransientCreatures[8] An array with 8 different TransientAmbientCreature classes that can be created by this manager.
SpawnRadius The radius round the manager that creatures can be spawned in.
TriggerRadius When the player is within this distance from the manager, it will start spawning creatures.

When a creature is spawned, and a PredatorType is defined for that creature, there is a small chance that it's predator will be spawned nearby.

There are also two subclasses of AmbientCreatureManager - these are OpenTerrainAmbientCreature and SwampAmbientCreature.

OpenTerrainAmbientCreature This just has some presets in it. It will create Migrating, Wandering and Circling birds, and two groups of flying bugs. It also has a much larger radius than the default.
SwampAmbientCreature This sets up a default of one group of Wandering Birds, and two groups of Flying Bugs. It also allows you to specify how many bugs you want to escort the player (in BugEscort)

Birds

Each controller has a say over a flock of birds (the numbers of which are specified in the code)

Note: Birds are "Abstract" and can not be created directly; you must use a subclass.

CirclingBirds

A circling flock of birds is between 0 and 3 birds - they will circle with a radius of approximately 600 units.

MigratingBirds

In a migrating flock of birds, there will be somewhere between 5 and 20 birds. They will be arranged in a delta formation, and will travel in reasonably straight lines.

WanderingBirds

A flock of wandering birds will be somewhere between 0 and 2. The birds will follow generally random paths, in the reasonable vicinity of their initial position.

Bugs

All bugs have a SwarmTightness (this is set in the code). This changes slightly every 2 seconds to vary the size of the swarm.

Note: Bugs are "Abstract" and can not be created directly; you must use a subclass.

CrawlingBugs

This will be a group of bugs crawling round on the ground. They will tend to congregate towards other actors.

EscortBugs

These are a group of bugs that will fly around the player.

FlyingBugs

These are the same bugs that are used as an escort, but they will fly around the area randomly.

FishSchool

This will only work under water. It will create a school of 19 fish. They will move pretty much randomly.

Note: FishSchool is "Abstract" and can not be created directly; you must use a subclass.

IHVBot

This Controller will cause its pawn to wander randomly about the level.

IHVFollowerBot

This Controller will pick a random pawn in the level and go where it goes.

Related Documents

ScriptedSequenceTutorial - This is a document about how to use ScriptedSequences which are covered only briefly here.

ScriptedSequenceActions - This document talks about the types of actions ScriptedSequences can do.

AIReferenceDocument - This document talks about the technical side of AI. It goes over Controllers, AIControllers, and ScriptedControllers, as well as AIScripts and ScriptedSequences.


AIControllers - r1.14 - 30 May 2003 - 12:13 GMT - Copyright © 2001-2003 Epic Games
Unreal Developer Network Content by those crazy Perilith guysSite design and art by 2 design