Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames

UTGame.UTFamilyInfo


00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
/**
 * Copyright 1998-2008 Epic Games, Inc. All Rights Reserved.
 * Structure defining information about a particular 'family' (eg. Ironguard Male)
 */

class UTFamilyInfo extends Object
	native
	abstract;

/** Matches the FamilyID in the CustomCharData */
var string FamilyID;

/** Faction that this family belongs to. */
var string Faction;

/** Mesh to use for first person weapon */
//var SkeletalMesh ArmMesh;

/** Package to load to find the arm mesh for this char. */
var string	ArmMeshPackageName;
/** Name of mesh within ArmMeshPackageName to use for arms. */
var string	ArmMeshName;
/** Package that contains team-skin materials for first-person arms. */
var		string				ArmSkinPackageName;
/** Name of red team material for first-person arms. */
var		string				RedArmSkinName;
/** Name of blue team material for first-person arms. */
var		string				BlueArmSkinName;
/** Name of 'neck stump' mesh to use if head is enclosed by helmet. */
var		string				NeckStumpName;
/** Extra offset to apply to mesh when rendering portrait for this family. */
var		vector				PortraitExtraOffset;

/** Physics Asset to use  */
var PhysicsAsset		PhysAsset;

/** Animation sets to use for a character in this 'family' */
var	array<AnimSet>		AnimSets;

/** Names for specific bones in the skeleton */
var name LeftFootBone;
var name RightFootBone;
var array<name> TakeHitPhysicsFixedBones;

var class<UTPawnSoundGroup> SoundGroupClass;

var class<UTVoice> VoiceClass;

var MaterialInstanceConstant	BaseMICParent;
var MaterialInstanceConstant	BioDeathMICParent;

/** This is the blood splatter effect to use on the walls when this pawn is shot @see LeaveABloodSplatterDecal **/
var MaterialInstance BloodSplatterDecalMaterial;

/** Contains all bones used by this family - used for animating character on creation screen. */
var	SkeletalMesh				MasterSkeleton;

/** Idle animation to use in character editor screen. */
var name						CharEditorIdleAnimName;

/** When not in a team game, this is the color to use for glowy bits. */
var	LinearColor					NonTeamEmissiveColor;

/** When not in a team game, this is the color to tint character at a distance. */
var LinearColor					NonTeamTintColor;

/** When creating this custom char, number of LODs to strip from the source parts. */
var int							MergeLODsToStrip;

/** Structure containing information about a specific emote */
struct native EmoteInfo
{
	/** Category to which this emote belongs. */
	var name		CategoryName;
	/** This is a unique tag used to look up this emote */
	var name		EmoteTag;
	/** Friendly name of this emote (eg for menu) */
	var localized string		EmoteName;
	/** Name of animation to play. Should be in AnimSets above. */
	var name		EmoteAnim;
	/** Indicates that this is a whole body 'victory' emote which should only be offered at the end of the game. */
	var bool		bVictoryEmote;
	/** Emote should only be played on top half of body. */
	var bool		bTopHalfEmote;
	/** The command that goes with this emote */
	var name  		Command;
	/** if true, the command requires a PRI */
	var bool		bRequiresPlayer;
};

/** Set of all emotes for this family. */
var array<EmoteInfo>	FamilyEmotes;

//// Gibs

/** information on what gibs to spawn and where */
struct native GibInfo
{
	/** the bone to spawn the gib at */
	var name BoneName;
	/** the gib class to spawn */
	var class<UTGib> GibClass;
	var bool bHighDetailOnly;
};
var array<GibInfo> Gibs;

/** Head gib */
var GibInfo HeadGib;


// NOTE:  this can probably be moved to the DamageType.  As the damage type is probably not going to have different types of mesh per race (???)
/** This is the skeleton skel mesh that will replace the character's mesh for various death effects **/
var SkeletalMesh DeathMeshSkelMesh;
var PhysicsAsset DeathMeshPhysAsset;

/** This is the number of materials on the DeathSkeleton **/
var int DeathMeshNumMaterialsToSetResident;

/** Which joints we can break when applying damage **/
var array<Name> DeathMeshBreakableJoints;

/** These are the materials that the skeleton for this race uses (i.e. some of them have more than one material **/
var array<MaterialInstanceTimeVarying> SkeletonBurnOutMaterials;


/** The visual effect to play when a headshot gibs a head. */
var ParticleSystem HeadShotEffect;

/** Name of the HeadShotGoreSocket **/
var name HeadShotGoreSocketName;

/** 
 * This is attached to the HeadShotGoreSocket on the pawn if there exists one.  Some pawns do no need to have this as their mesh already
 * has gore pieces.  But some do not.
 **/
var StaticMesh HeadShotNeckGoreAttachment;


var class<UTEmit_HitEffect> BloodEmitterClass;
/** Hit impact effects.  Sprays when you get shot **/
var array<DistanceBasedParticleTemplate> BloodEffects;

/** When you are gibbed this is the particle effect to play **/
var ParticleSystem GibExplosionTemplate;

/** scale for meshes in this family when driving a vehicle */
var float DrivingDrawScale;

/** Whether these are female characters */
var bool bIsFemale;

/** Mesh scaling */
var float DefaultMeshScale;
var float BaseTranslationOffset;

/** death camera blood effect */
var class<UTEmitCameraEffect> DeathCameraEffect;

/** Camera offsets for Hero */
var float ExtraCameraZOffset;
var float CameraXOffset, CameraYOffset;
var float MinCameraDistSq;

/** Projectile offsets for Hero */
var vector HeroFireOffset;
var vector SuperHeroFireOffset;

/** AnimSet for this family's Hero Melee attack */
var AnimSet HeroMeleeAnimSet;

/** How likely bot associated with this family is to betray teammates */
var float TrustWorthiness;

/**
 * Returns the # of emotes in a given group
 */
function static int GetEmoteGroupCnt(name Category)
{
	local int i,cnt;
	for (i=0;i<default.FamilyEmotes.length;i++)
	{
		if (default.FamilyEmotes[i].CategoryName == Category )
		{
			cnt++;
		}
	}

	return cnt;
}

static function class<UTVoice> GetVoiceClass(CustomCharData CharacterData)
{
	return Default.VoiceClass;
}

/**
 * returns all the Emotes in a group
 */
function static GetEmotes(name Category, out array<string> Captions, out array<name> EmoteTags)
{
	local int i;
	local int cnt;
	for (i=0;i<default.FamilyEmotes.length;i++)
	{
		if (default.FamilyEmotes[i].CategoryName == Category )
		{
			Captions[cnt] = default.FamilyEmotes[i].EmoteName;
			EmoteTags[cnt] = default.FamilyEmotes[i].EmoteTag;
			cnt++;
		}
	}
}

/**
 * Finds the index of the emote given a tag
 */

function static int GetEmoteIndex(name EmoteTag)
{
	local int i;
	for (i=0;i<default.FamilyEmotes.length;i++)
	{
		if ( default.FamilyEmotes[i].EmoteTag == EmoteTag )
		{
			return i;
		}
	}
	return -1;
}

defaultproperties
{
   LeftFootBone="b_LeftAnkle"
   RightFootBone="b_RightAnkle"
   TakeHitPhysicsFixedBones(0)="b_LeftAnkle"
   TakeHitPhysicsFixedBones(1)="b_RightAnkle"
   SoundGroupClass=Class'UTGame.UTPawnSoundGroup'
   VoiceClass=Class'UTGame.UTVoice_DefaultMale'
   BloodSplatterDecalMaterial=MaterialInstanceTimeVarying'T_FX.DecalMaterials.MITV_FX_BloodDecal_Small01'
   NonTeamEmissiveColor=(R=10.000000,G=0.200000,B=0.200000,A=1.000000)
   NonTeamTintColor=(R=4.000000,G=2.000000,B=0.500000,A=1.000000)
   MergeLODsToStrip=1
   FamilyEmotes(0)=(CategoryName="Taunt",EmoteTag="TauntA",EmoteName="Bring It On",EmoteAnim="Taunt_FB_BringItOn")
   FamilyEmotes(1)=(CategoryName="Taunt",EmoteTag="TauntB",EmoteName="Hoolahoop",EmoteAnim="Taunt_FB_Hoolahoop")
   FamilyEmotes(2)=(CategoryName="Taunt",EmoteTag="TauntC",EmoteName="Hip Thrust",EmoteAnim="Taunt_FB_Pelvic_Thrust_A")
   FamilyEmotes(3)=(CategoryName="Taunt",EmoteTag="TauntD",EmoteName="Bullet To Head",EmoteAnim="Taunt_UB_BulletToTheHead",bTopHalfEmote=True)
   FamilyEmotes(4)=(CategoryName="Taunt",EmoteTag="TauntE",EmoteName="Come Here",EmoteAnim="Taunt_UB_ComeHere",bTopHalfEmote=True)
   FamilyEmotes(5)=(CategoryName="Taunt",EmoteTag="TauntF",EmoteName="Throat Slit",EmoteAnim="Taunt_UB_Slit_Throat",bTopHalfEmote=True)
   FamilyEmotes(6)=(CategoryName="Order",EmoteTag="OrderA",EmoteName="Attack",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="ATTACK",bRequiresPlayer=True)
   FamilyEmotes(7)=(CategoryName="Order",EmoteTag="OrderB",EmoteName="Defend",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="Defend",bRequiresPlayer=True)
   FamilyEmotes(8)=(CategoryName="Order",EmoteTag="OrderC",EmoteName="Hold This Position",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="Hold",bRequiresPlayer=True)
   FamilyEmotes(9)=(CategoryName="Order",EmoteTag="OrderD",EmoteName="Cover Me",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="Follow",bRequiresPlayer=True)
   FamilyEmotes(10)=(CategoryName="Order",EmoteTag="OrderE",EmoteName="Freelance",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="Freelance",bRequiresPlayer=True)
   FamilyEmotes(11)=(CategoryName="Order",EmoteTag="OrderF",EmoteName="Drop Flag/Orb",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="DropFlag")
   FamilyEmotes(12)=(CategoryName="UnusedOrder",EmoteTag="OrderG",EmoteName="Drop Orb",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True,Command="DropOrb")
   FamilyEmotes(13)=(CategoryName="SpecialMove",EmoteTag="MeleeA",EmoteAnim="GroundPound_A")
   FamilyEmotes(14)=(CategoryName="Status",EmoteTag="ENCOURAGEMENT",EmoteName="Encouragement",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True)
   FamilyEmotes(15)=(CategoryName="Status",EmoteTag="ACK",EmoteName="Acknowledged",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True)
   FamilyEmotes(16)=(CategoryName="Status",EmoteTag="InPosition",EmoteName="In Position",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True)
   FamilyEmotes(17)=(CategoryName="Status",EmoteTag="UnderAttack",EmoteName="Under Attack",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True)
   FamilyEmotes(18)=(CategoryName="Status",EmoteTag="AreaSecure",EmoteName="Area Secure",EmoteAnim="Taunt_UB_Flag_Pickup",bTopHalfEmote=True)
   HeadShotEffect=ParticleSystem'T_FX.Effects.P_FX_HeadShot'
   HeadShotGoreSocketName="HeadShotGoreSocket"
   HeadShotNeckGoreAttachment=StaticMesh'CH_Gore.S_CH_Headshot_Gore'
   BloodEmitterClass=Class'UTGame.UTEmit_BloodSpray'
   BloodEffects(0)=(Template=ParticleSystem'T_FX.Effects.P_FX_Bloodhit_01_Far',MinDistance=750.000000)
   BloodEffects(1)=(Template=ParticleSystem'T_FX.Effects.P_FX_Bloodhit_01_Mid',MinDistance=350.000000)
   BloodEffects(2)=(Template=ParticleSystem'T_FX.Effects.P_FX_Bloodhit_01_Near')
   GibExplosionTemplate=ParticleSystem'T_FX.Effects.P_FX_GibExplode'
   DrivingDrawScale=1.000000
   DefaultMeshScale=1.075000
   BaseTranslationOffset=7.000000
   DeathCameraEffect=Class'UTGame.UTEmitCameraEffect_BloodSplatter'
   ExtraCameraZOffset=-10.000000
   CameraXOffset=0.200000
   CameraYOffset=-1.000000
   MinCameraDistSq=1.000000
   HeroFireOffset=(X=180.000000,Y=-10.000000,Z=-20.000000)
   SuperHeroFireOffset=(X=380.000000,Y=-10.000000,Z=-30.000000)
   HeroMeleeAnimSet=AnimSet'CH_AnimHuman_Hero.Anims.K_AnimHuman_Hero'
   Name="Default__UTFamilyInfo"
   ObjectArchetype=Object'Core.Default__Object'
}

Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames
Class file time: tr 31-1-2018 17:18:20.000 - Creation time: sk 18-3-2018 10:01:20.766 - Created with UnCodeX