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

Technical

Technical 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
   - WhoDoIAskAbout
   General Engine Support
   - UnProg (mailing list)
   - UnProgTraffic (summaries)
   - UnDevIRC (chat)
   - UnDevIRCTraffic (summaries)
   Codedrop-Specific Support
   - NextCodeDropStatus
   - UDNBuildIntro
   - UDNBuildReports
   - CodeDrop2226
   - CodeDrop2110
   - CodeDrop927
   - CodeDrop829
   - Patch777PS2
   - CodeDrop777
   - CodeDrop739
   - CodeDrop697
   HW/SW Support
   - RecommendedHardware
   - RecommendedSoftware
   - AthlonLockups
   - ImmersionForceFeedback
   - BelkinSpeedPad
   Toolchain Support
   - UtraceDebugging
   - VTuneUsage
   - VisualSourceSafe
   - UnrealScriptHighlighting
   - VisualStudioAddIns
   - UnrealToolsAddin
   - UnrealToolsDotNet
   - UnrealDebugging
   - UnDox
   - AutoDiff
   - SearchUCinXP
   - EnhancedPkgCommandlet
   - UnrealScriptDebugger
   - BuildingUnrealOnLinux
   - NoStepInto

Unreal Specifics
   - NewProjectPreparation
   Basics
   - UnrealScriptReference
   - UnrealClasses
   - CollisionHash
   - UnrealStrings
   - MemAlloc
   - ConsoleCommandLineParameters
   - UccCommandlet
   - IniFilesTutorial
   - SaveConfiguration
   - GameRules
   - UmodInstaller
   - UmodWizard
   - CreatingGameInstallers
   Rendering Architecture
   - RenderingPipeline
   - CameraEffects
   - TypedTextCameraEffect
   Skeletal System
   - UWSkelAnim
   - UWSkelAnim2
   - ExtendingUWSkelAnim
   - SkeletalAttachments
   - SkeletalBlending
   - AdditionalSkelNatives
   - PhysicsBasedAnim
   - AnimNotifies
   - BinaryFormatSpecifications
   Physics
   - PhysicsOverview
   - RootMotionPhysics
   Particle System
   - ParticlesInfo
   - RibbonEmitter
   - ParticleExtensions
   New Particle Editor
   - ParticleSystemEditorCode
   User Interface
   - HeadsUpDisplayTutorial
   - InteractionReference
   - CanvasReference
   Materials
   - MaterialTricks
   Projected Textures
   - ProjectorTricks
   - RenderToTextureShadows
   - RenderToTextureShadows2
   UnrealScript
   - UnrealScriptDelegates
   - ScriptQuats
   - ConditionalCompilation
   - AsyncFilePackage
   UnrealEd
   - AnimatedTextureBrowser
   - ViewCorrected3DDrag
   Networking
   - NetworkingTome
   - PlayerReplicationHandout
   Terrain
   - TerrainChanges927
   Other Stuff
   - PathingImprovements
   - GameAndAIHandout
   - SubmitBugReport
   - GraphsAndMemory
   - BumpMapping
   - MakeYourOwnDemoMode
   - ExportGeometryIntoMAX
   - InGameMovies
   - CustomArchives
   - LicenseeCodePool
   - LicenseeFileExtensions

Misc
   - CodeDropSong
   - UptBenchmarks

mathengine.gif
Karma Physics
   - KarmaReference
   - VehiclesInUT2003

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 Technical 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.

AnimNotifies

Licensees can log in.

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

Questions about UDN itself? Contact the UDN Staff.

Animation notifies

Last updated by Vito Miliano (UdnStaff) for splitting into public and licensee documents. Original author was Nathaniel Brown (KungFuTheatreTeam).

Introduction

Animation notifies are one of the most useful abilities of the Unreal Engine's animation system. Especially post-829, since their functionality has been expanded a great deal. They allow you to insert callbacks into an animation at a given frame in the sequence, which can perform a variety of tasks. Some examples are, but not limited to the following, AnimNotify_Script (calls a uscript function), AnimNotify_Sound (plays a sound), and AnimNotify_Effect (spawns an effect, with options for attaching it to a bone).

In this article I'll try to go over how they work, how to use them, what the different types do, and how to add new ones. Also I'll provide an example class, which should ease you into how to create new types.

Note: This article should be useful for both artists, and programmers.

Overview

The animation code (UnSkeletalMesh.cpp) checks for a notify in each frame for each sequence (in case of skeletal blended animation). If you want to disable a notify, a native function is provided; EnableChannelNotify() (this is pretty useful for instances of blended animation where you may not want the notify to be called). Each AnimNotify_* object has a Notify() function, this is where the magic is done. Each type just overrides this to add its unique functionality.

Adding a notify

This is a relatively painless process; just go into the AnimationBrowser and select your mesh, and then the sequence you want to add a notify to. You'll see a box appear on the right panel of the browser window. It should say Animation. LOD, Mesh, Redigest, and Skin. Above that is a list of tabs, click on Notify. The item list should now just say Notify. If you click add and then new (not the button, just the text) you should be able to drop down a list of notify types you want to insert. You may have to adjust the box's size to fully see this. Once you have added your new notify type, then you need to type in the frame it should occur one (Note:. This is now displayed in frame numbers instead of time).

Notify types

Below is a list of the various default notify types and what they do.

AnimNotify_Effect

This notify generates an effect at the specified point in the animation, which can be either attached to a bone, spawned at a bone location, or spawned at the actors location, all of which can be offset by location and rotation.

Variable Description DataType
EffectClass Effect class type to spawn Class (Actor)
Bone Name of the bone to attach to, or spawn at (if any) Name
OffsetLocation Offset from the actor's location (or bone) Vector
OffsetRotation Offset from the actor's rotation (or bone) Rotator
Attach Whether or not to attach to the bone Bool
Tag Tag to use on the effect (for later destroying) Name
DrawScale Scale of the effect Float
DrawScale3D Axis scale of the effect Vector

AnimNotify_Destroyeffect

DestroyEffect kills an effect created by AnimNotify_Effect. If an emitter is used you can opt to tell it to wait till all of the particles have died before being destroyed via bExpireParticles.

Variable Description DataType
DestroyTag Tag of the effect to destroy (set by AnimNotify_Effect) Name
bExpireParticles If effect is an emitter let all particle die before destroying Bool

AnimNotify_Sound

A simple notify that plays a sound at the specified frame.

Variable Description DataType
Sound Name of the sound to be played Sound
Volume Volume of the sound Float
Radius Radius of the sound Int

AnimNotify_Script

The classic AnimNotify, this calls an UnrealScript function at the specified frame.

Variable Description DataType
NotifyName Name of the script function to call Name

AnimNotify_Scripted

This useful notify is for easy creation of new notifies that don't require c++ code. It has an Unrealscript event that gets fired at the appropriate frame, this allows for easy extensions. AnimNotify_Trigger is a good example of this.

Variable Description DataType
N/A N/A N/A

AnimNotify_MatSubAction

MatSubAction allows you to add a matinee subaction at a specific point in an animation. This could be extremely useful for triggering camera positions by gestures, or adding specific CameraEffects such as motion blur at a key point.

Variable Description DataType
SubAction Matinee subaction to perform MatSubAction (editinline)

AnimNotify_Trigger

This notify simply calls the Trigger() method of an actor whose Tag matches EventName.

Variable Description DataType
EventName Name of the actor's tag that you wish to trigger Name

Making new notifies, technical overview

Found in MakingNewAnimNotifies, for licensees only!


AnimNotifies - r1.1 - 24 Jun 2003 - 15:51 GMT - Copyright © 2001-2003 Epic Games
Unreal Developer Network Content by those crazy Perilith guysSite design and art by 2 design