For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

(Related to Unreal) UT99 skeletal model port requirements

Questions and tools for modelling.
Post Reply
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

(Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

Hello guys.

I can't use Unreal Wiki for an unknown reason, did the servers down again or there is a problem with it in my region. I don't know.

I want to port a custom model from UT99 to Unreal 1. I'm also the author of the port of that model for UT99 and I have some source files.

I have .psk, .psa files(extracted with umodel from compiled .u file) and textures(.bmp files), but probably now, the only things that I need are the compatible(edited) .uc files. I actually have .uc files generated by MS3D for UT99, but I'm not sure that they are compatible with Unreal 1 compiler.

How do I set up the .uc files for making the model playable for players and bots?

If you need source files of the model, I can share them.
The model is based on default UT99 male skeleton.
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

I don't know why I'm unable to edit my post, but now I'm stuck with this:
aaaaaaaa1.png
aaaaaaaa2.png
If there isn't any standart file which is responsible for skeletal player class, then how people port skeletal models to Unreal?

And also, I wasn't able to find this post by the site searcher viewtopic.php?f=30&t=2387
You do not have the required permissions to view the files attached to this post.
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

Also, the code that I have

ONIKonokoFsrv.uc
[inlinecode]//=============================================================================
// ONI KonokoFsrv.
//=============================================================================
class ONIKonokoFsrv extends SkeletalPlayer;

#exec MESH MODELIMPORT MESH=KonokoFsrv MODELFILE=models\KonokoFsrv.PSK LODSTYLE=12
#exec MESH ORIGIN MESH=KonokoFsrv X=0 Y=0 Z=135 YAW=192

#exec MESH WEAPONATTACH MESH=KonokoFsrv BONE="Bip01 R Hand"
#exec MESH WEAPONPOSITION MESH=KonokoFsrv YAW=0 PITCH=0 ROLL=128 X=1.0 Y=0.0 Z=0.0

#exec MESHMAP SCALE MESHMAP=KonokoFsrv X=0.3125 Y=0.3125 Z=0.3125
#exec MESH DEFAULTANIM MESH=KonokoFsrv ANIM=SoldierAnim

//#exec TEXTURE IMPORT NAME=KonokoFsrvDoll FILE=TEXTURES\KonokoFsrvSDoll.PCX GROUP="Icons" MIPS=OFF
//#exec TEXTURE IMPORT NAME=KonokoFsrvBelt FILE=TEXTURES\KonokoFsrvSBelt.PCX GROUP="Icons" MIPS=OFF

static function SetMultiSkin(Actor SkinActor, string SkinName, string FaceName, byte TeamNum)
{
local string MeshName, SkinItem, SkinPackage;

MeshName = SkinActor.GetItemName(string(SkinActor.Mesh));

SkinItem = SkinActor.GetItemName(SkinName);
SkinPackage = Left(SkinName, Len(SkinName) - Len(SkinItem));

if(SkinPackage == "")
{
SkinPackage="KonokoFsrvSkins.";
SkinName=SkinPackage$SkinName;
}

if( TeamNum != 255 )
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1T_"$String(TeamNum), default.DefaultSkinName$"1T_"$String(TeamNum)))
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", default.DefaultSkinName$"1"))
{
SetSkinElement(SkinActor, 0, default.DefaultSkinName$"1T_"$String(TeamNum), default.DefaultSkinName$"1T_"$String(TeamNum));
SkinName=default.DefaultSkinName;
}
}
SetSkinElement(SkinActor, 1, SkinName$"2T_"$String(TeamNum), SkinName$"2T_"$String(TeamNum));
SetSkinElement(SkinActor, 2, SkinName$"3T_"$String(TeamNum), SkinName$"3T_"$String(TeamNum));
SetSkinElement(SkinActor, 3, SkinName$"4T_"$String(TeamNum), SkinName$"4T_"$String(TeamNum));
}
else
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", default.DefaultSkinName))
SkinName=default.DefaultSkinName;

SetSkinElement(SkinActor, 1, SkinName$"2", SkinName$"2");
SetSkinElement(SkinActor, 2, SkinName$"3", SkinName$"3");
SetSkinElement(SkinActor, 3, SkinName$"4", SkinName$"4");
}

if( Pawn(SkinActor) != None )
Pawn(SkinActor).PlayerReplicationInfo.TalkTexture = Texture(DynamicLoadObject(SkinName$"3Face", class'Texture'));
}

defaultproperties
{
DefaultSkinName="KonokoFsrvSkins.KonF"
DefaultPackage="KonokoFsrvSkins."
SelectionMesh="ONIKonokoFsrv.KonokoFsrv"
Mesh=SkeletalMesh'ONIKonokoFsrv.KonokoFsrv'
MenuName="ONI KonokoFsrv"
}

[/inlinecode]
ONIKonokoFsrvBot
[inlinecode]//=============================================================================
// ONIKonokoFsrv Bot.
//=============================================================================
class ONIKonokoFsrvBot extends SkeletalBot;

static function SetMultiSkin(Actor SkinActor, string SkinName, string FaceName, byte TeamNum)
{
local string MeshName, SkinItem, SkinPackage;

MeshName = SkinActor.GetItemName(string(SkinActor.Mesh));

SkinItem = SkinActor.GetItemName(SkinName);
SkinPackage = Left(SkinName, Len(SkinName) - Len(SkinItem));

if(SkinPackage == "")
{
SkinPackage="KonokoFsrvSkins.";
SkinName=SkinPackage$SkinName;
}

if( TeamNum != 255 )
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1T_"$String(TeamNum), ""))
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", ""))
{
SetSkinElement(SkinActor, 0, "KonokoFsrvSkins.KonF1T_"$String(TeamNum), "KonokoFsrvSkins.KonF1");
SkinName="KonokoFsrvSkins.KonF";
}
}
SetSkinElement(SkinActor, 1, SkinName$"2T_"$String(TeamNum), SkinName$"2");
SetSkinElement(SkinActor, 2, SkinName$"3T_"$String(TeamNum), SkinName$"3");
SetSkinElement(SkinActor, 3, SkinName$"4T_"$String(TeamNum), SkinName$"4");
}
else
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", "KonokoFsrvSkins.KonF1"))
SkinName="KonokoFsrvSkins.KonF";

SetSkinElement(SkinActor, 1, SkinName$"2", "");
SetSkinElement(SkinActor, 2, SkinName$"3", "");
SetSkinElement(SkinActor, 3, SkinName$"4", "");
}

if( Pawn(SkinActor) != None )
Pawn(SkinActor).PlayerReplicationInfo.TalkTexture = Texture(DynamicLoadObject(SkinName$"3Face", class'Texture'));
}

defaultproperties
{
DefaultSkinName="KonokoFsrvSkins.KonF"
DefaultPackage="KonokoFsrvSkins."
SelectionMesh="ONIKonokoFsrv.KonokoFsrv"
Mesh=SkeletalMesh'ONIKonokoFsrv.KonokoFsrv'
MenuName="ONI KonokoFsrv"
}

[/inlinecode]
SelectONIKonokoFsrv
[inlinecode]//=============================================================================
// Select ONI KonokoFsrv.
//=============================================================================
class SelectONIKonokoFsrv extends SelectionDude;

#exec ANIM IMPORT ANIM=KonokoFsrvSelectAnim ANIMFILE=models\KonokoFsrvSelect.PSA COMPRESS=0.5 IMPORTSEQS=0
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=All STARTFRAME=0 NUMFRAMES=48 RATE=15
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=Breath3 STARTFRAME=0 NUMFRAMES=26 RATE=15
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=Breath2 STARTFRAME=26 NUMFRAMES=31 RATE=15
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=Breath1 STARTFRAME=57 NUMFRAMES=31 RATE=15

#exec MESH MODELIMPORT MESH=SelectionKonokoFsrv MODELFILE=models\KonokoFsrv.PSK LODSTYLE=12
#exec MESH ORIGIN MESH=SelectionKonokoFsrv X=0 Y=0 Z=135 YAW=192
#exec MESHMAP SCALE MESHMAP=SelectionKonokoFsrv X=0.3125 Y=0.3125 Z=0.3125
#exec MESH DEFAULTANIM MESH=SelectionKonokoFsrv ANIM=KonokoFsrvSelectAnim

defaultproperties
{
}

[/inlinecode]
This is a backup folder. The using folder has no "Unreal" text in the name.
aaaaaaaaaaaaa.png
You do not have the required permissions to view the files attached to this post.
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by []KAOS[]Casey »

The error message is correct. SkeletalPlayer doesn't exist in Unreal 1. You basically have to port TournamentPlayer/Soldier/whatever's animation base to a new player class, unless you want to use the 227-compatible botpack floating around.
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

[]KAOS[]Casey wrote: Tue Jan 26, 2021 6:01 pm The error message is correct. SkeletalPlayer doesn't exist in Unreal 1. You basically have to port TournamentPlayer/Soldier/whatever's animation base to a new player class, unless you want to use the 227-compatible botpack floating around.
I took Shivaxi's recompiled BotPack.

So what's wrong now?
1399321.7000000295_image.png
I don't know why does it think about .uc files, like the BotPack which I got does not exist for the compiler.
Everything that I installed are the two files: BotPack.u and BotPack.int
You do not have the required permissions to view the files attached to this post.
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by []KAOS[]Casey »

not sure i'd trust that botpack.u but load botpack in unrealed and export all classes
image.png
You do not have the required permissions to view the files attached to this post.
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

[]KAOS[]Casey wrote: Wed Jan 27, 2021 12:15 am not sure i'd trust that botpack.u but load botpack in unrealed and export all classes

image.png
Everything compiled without any warnings, but I can't select the character. I also placed .int and .utx files in game data library.

Code: Select all

[Public]
Object=(Name=ONIKonokoFsrv.ONIKonokoFsrvBot,Class=Class,MetaClass=BotPack.Bot,Description="ONI KonokoFsrv")
Object=(Name=ONIKonokoFsrv.ONIKonokoFsrv,Class=Class,MetaClass=BotPack.TournamentPlayer,Description="ONI KonokoFsrv")
Object=(Name=ONIKonokoFsrv.ONIKonokoFsrv,Class=Texture,Description="ONI KonokoFsrv")
Object=(Name=BotPack.VoiceFemaleTwo,Class=Class,MetaClass=BotPack.VoiceMale,Description="Female TwoM")

Code: Select all

[public]
Object=(Name=KonokoFsrvSkins.KonF0,Class=Texture,Description="ONI KonokoFsrv")
Object=(Name=KonokoFsrvSkins.KonF1t_0,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF1t_1,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF1t_2,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF1t_3,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF1,Class=Texture,Description="ONI KonokoFsrv")
Object=(Name=KonokoFsrvSkins.KonF2t_0,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF2t_1,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF2t_2,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF2t_3,Class=Texture)
Object=(Name=KonokoFsrvSkins.KonF3Face,Class=Texture,Description="ONI KonokoFsrv")
EDIT:
image.png
Even with a warning, I'm still unable to select this character.

EDIT: Seems like animations did not were imported.
Also, I'm unable to import the .psa animations. There is no any option for that.
image.png
You do not have the required permissions to view the files attached to this post.
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

Unreal log:

Code: Select all

Log: Log file open, 01/27/21 15:14:08
Init: Name subsystem initialized
Init: Detected: Microsoft Windows NT 6.2 (Build: 9200)
Init: Version: 227 Subversion: 9
Init: Compiled: Oct 28 2012 16:01:07
Init: Command line: 
Init: Base directory: C:\Steam\steamapps\common\Unreal Gold\system\
Init: Character set: Unicode
Log: Bound to Engine.dll
Log: Bound to Core.dll
Log: Bound to Window.dll
Init: Object subsystem initialized
Init: Computer: LAPTOPPB32TLKD
Init: User: Rikia
Init: Memory total: Phys=4012908K Pagef=4194303K Virt=4194176K
Init: Working set: 32000 / 159000
Init: CPU Speed=1094.420143 MHz
Init: CPU Page size=4096, Processors / Cores=2
Init: CPU Detected: PentiumPro-class processor (GenuineIntel)
Init: CPU Features: CMov FPU RDTSC PAE MMX KNI
Log: Forcing Unreal to run on CPU 0
Log: 0.0ms Loading: Package Engine
Log: 22.0ms Loading: Package Core
Log: Checking package Core
Log: Checking package Engine
Init: Unreal engine initialized
Log: Bound to WinDrv.dll
Init: Mouse info: 6 10 1
Init: Initializing DirectDraw
Log: DirectDraw drivers:
Log:    display (Первичный видеодрайвер)
Init: DirectDraw initialized successfully
Init: Client initialized
Log: Bound to Render.dll
Log: 238.0ms Loading: Package Render
Log: Checking package Render
Init: Lighting subsystem initialized
Init: Rendering initialized
Log: LoadMap: EntryII.unr
Log: 252.0ms Loading: Package EntryII
Log: 264.0ms Loading: Package PlayrShp
Log: 280.0ms Loading: Package Detail
Log: Bound to Fire.dll
Log: 287.0ms Loading: Package Fire
Log: Checking package Fire
Log: 298.0ms Loading: Package GenIn
Log: 312.0ms Loading: Package Starship
Log: 327.0ms Loading: Package GenFX
Log: Bound to Emitter.dll
Log: 331.0ms Loading: Package Emitter
Log: 338.0ms Loading: Package UnrealShare
Log: Checking package Emitter
Log: 371.0ms Loading: Package genfluid
Log: 376.0ms Loading: Package UnrealI
Log: Bound to Editor.dll
Log: 393.0ms Loading: Package Editor
Log: Checking package Editor
Log: 405.0ms Loading: Package GenWarp
Log: 417.0ms Loading: Package Footsteps
Log: 428.0ms Loading: Package AmbAncient
Log: 441.0ms Loading: Package Skaarj
Log: 453.0ms Loading: Package Doorsmod
Log: 463.0ms Loading: Package Ambmodern
Log: Collecting garbage
Log: Purging garbage
Log: 1117.0ms Unloading: Package Render
Log: Garbage: objects: 11897->11896; refs: 147713
Log: Bringing Level EntryII.MyLevel up for play (0)...
ScriptLog: InitGame: 
ScriptLog: Difficulty 1
ScriptLog: Remote Administration with Password 
ScriptLog: Base Mutator is EntryII.Mutator0
Init: Initialized moving brush tracker for Level EntryII.MyLevel
Log: Browse: UPack.unr?Name=Player?Class=BotPack.TBoss?Skin=?Face=?Team=255
Log: LoadMap: UPack.unr?Name=Player?Class=BotPack.TBoss?Skin=?Face=?Team=255
Log: 1137.0ms Loading: Package UPack
Log: 1149.0ms Loading: Package NaliCast
Log: 1159.0ms Loading: Package NaliFX
Log: 1171.0ms Loading: Package GenEarth
Log: 1181.0ms Loading: Package SKYBox
Log: 1191.0ms Loading: Package AmbOutside
Log: 1203.0ms Loading: Package DoorsAnc
Log: 1213.0ms Loading: Package shanesky
Log: 1226.0ms Loading: Package shaneDAY
Log: 1236.0ms Loading: Package Liquids
Log: 1246.0ms Loading: Package flyby
Log: Bound to UPak.dll
Log: 1251.0ms Loading: Package UPak
Log: 1268.0ms Loading: Package Marine
Log: 1278.0ms Loading: Package UPakFonts
Log: 1286.0ms Loading: Package UWindow
Log: 1296.0ms Loading: Package UMenu
Log: 1309.0ms Loading: Package UBrowser
Log: Bound to IpDrv.dll
Log: 1318.0ms Loading: Package IpDrv
Log: Checking package IpDrv
Log: Checking package UPak
Log: Collecting garbage
Log: Purging garbage
Log: Garbage: objects: 12885->12869; refs: 204160
Log: Bringing Level UPack.MyLevel up for play (0)...
ScriptLog: InitGame: ?Name=Player?Class=BotPack.TBoss?Skin=?Face=?Team=255
ScriptLog: Difficulty 1
ScriptLog: Remote Administration with Password 
ScriptLog: Base Mutator is UPack.Mutator1
Init: Initialized moving brush tracker for Level UPack.MyLevel
Log: 1664.0ms Loading: Package BotPack
Log: 1695.0ms Loading: Package Female2Voice
Log: 1709.0ms Loading: Package Male2Voice
Log: 1722.0ms Loading: Package Female1Voice
Log: 1735.0ms Loading: Package BossVoice
Log: 1746.0ms Loading: Package Male1Voice
Log: 1759.0ms Loading: Package Announcer
Log: 1771.0ms Loading: Package SGirlSkins
Log: 1782.0ms Loading: Package SoldierSkins
Log: 1795.0ms Loading: Package CommandoSkins
Log: 1809.0ms Loading: Package BossSkins
Log: 1825.0ms Loading: Package FCommandoSkins
Log: 1838.0ms Loading: Package LadderFonts
ScriptLog: Team 255
ScriptLog: Login: Player
Log: Possessed PlayerPawn: TBoss UPack.TBoss0
ServerLog: All inventory from Player is accepted
Init: Input system initialized for WindowsViewport
Log: Opened viewport
Log: Bound to D3D9Drv.dll
Log: Initializing D3D9Drv...
Log: Enter SetRes()
Log: D3D adapter driver      : igdumdim32.dll
Log: D3D adapter description : Intel(R) UHD Graphics 600
Log: D3D adapter id          : 0x8086:0x3185
Init: Depth bits: 24
Init: AA samples: 4
Log: 8 Texture Mapping Units found
Log: MaxAnisotropy: 16
Log: Trying to use S3TC extension.
Log: MinLogTextureSize: 2
Log: MaxLogTextureSize: 13
Log: UseDetailAlpha: 1
Log: Bound to ALAudio.dll
Log: OpenAL: ALDEVICES found 1:GenericSoftware
Log: OpenAL: Setting FMODOutput to DSOUND
Log: OpenAL: FMOD device found 0:
Log: OpenAL: FMOD device found 1:SpeakersRealtekRAudio
Log: 3034.0ms Loading: Package ALAudio
Log: Checking package ALAudio
Log: OpenAL: ALDevice 0, FMODOutput Enum 2, FMODDevice Enum 0, OutputRate Enum 5
DevAudio: OpenAL: rate 44100
Init: OpenAL: Selected ALDevice is: 0
Warning: OpenAL: Failed, trying (again) default device
Log: OpenAL: We are using OpenAL device: Generic Software 
Warning: OpenAL: EFX Extensions found
Log: OpenAL: Check for EFX Version - OK

Init: OpenAL Audio subsystem initialized.
Init: Game engine initialized
Log: Startup time: 3.570000 seconds
Warning: FIREWALL: Freed XP.SP2 Firewall Object
ScriptLog: Creating root window: UMenu.UMenuRootWindow
Log: 3690.0ms Loading: Package UWindowFonts
Localization: No localization: UWindow.FontStyle.LargeFont (int)
Warning: Failed to load 'NULL': Can't resolve package name
Warning: Failed to load 'Font None.': Can't resolve package name
Localization: No localization: UWindow.FontStyle.LargeFontBold (int)
Warning: Failed to load 'NULL': Can't resolve package name
Warning: Failed to load 'Font None.': Can't resolve package name
Warning: Failed to load 'Texture BossSkins.1': Failed to find object 'Texture BossSkins.1'
Warning: Failed to load 'Texture BossSkins.Boss': Failed to find object 'Texture BossSkins.Boss'
Log: appRequestExit(0) Closing by request: QUIT
Exit: Preparing to exit.
Log: Purging garbage
Log: Unbound to Engine.dll
Log: Unbound to Core.dll
Log: Unbound to Window.dll
Log: 27275.0ms Unloading: Package Engine
Log: 27276.0ms Unloading: Package Core
Exit: Game engine shut down
Log: Unbound to WinDrv.dll
Log: DirectDraw End Mode
Log: Flushing cache
Exit: DirectDraw released
Exit: Windows client shut down
Log: Unbound to Render.dll
Exit: Lighting subsystem shut down
Exit: Rendering shut down
Log: 27284.0ms Unloading: Package EntryII
Log: 27284.0ms Unloading: Package PlayrShp
Log: 27284.0ms Unloading: Package Detail
Log: Unbound to Fire.dll
Log: 27284.0ms Unloading: Package Fire
Log: 27285.0ms Unloading: Package GenIn
Log: 27285.0ms Unloading: Package Starship
Log: 27285.0ms Unloading: Package GenFX
Log: Unbound to Emitter.dll
Log: 27285.0ms Unloading: Package Emitter
Log: 27285.0ms Unloading: Package UnrealShare
Log: 27285.0ms Unloading: Package genfluid
Log: 27285.0ms Unloading: Package UnrealI
Log: Unbound to Editor.dll
Log: 27286.0ms Unloading: Package Editor
Log: 27286.0ms Unloading: Package GenWarp
Log: 27286.0ms Unloading: Package Footsteps
Log: 27286.0ms Unloading: Package AmbAncient
Log: 27290.0ms Unloading: Package Skaarj
Log: 27290.0ms Unloading: Package Doorsmod
Log: 27291.0ms Unloading: Package Ambmodern
Init: Shut down moving brush tracker for Level EntryII.MyLevel
Log: 27311.0ms Unloading: Package UPack
Log: 27311.0ms Unloading: Package NaliCast
Log: 27311.0ms Unloading: Package NaliFX
Log: 27311.0ms Unloading: Package GenEarth
Log: 27311.0ms Unloading: Package SKYBox
Log: 27311.0ms Unloading: Package AmbOutside
Log: 27312.0ms Unloading: Package DoorsAnc
Log: 27312.0ms Unloading: Package shanesky
Log: 27312.0ms Unloading: Package shaneDAY
Log: 27312.0ms Unloading: Package Liquids
Log: 27312.0ms Unloading: Package flyby
Log: Unbound to UPak.dll
Log: 27312.0ms Unloading: Package UPak
Log: 27312.0ms Unloading: Package Marine
Log: 27312.0ms Unloading: Package UPakFonts
Log: 27312.0ms Unloading: Package UWindow
Log: 27312.0ms Unloading: Package UMenu
Log: 27313.0ms Unloading: Package UBrowser
Log: Unbound to IpDrv.dll
Log: 27313.0ms Unloading: Package IpDrv
Init: Shut down moving brush tracker for Level UPack.MyLevel
Log: 27594.0ms Unloading: Package BotPack
Log: 27595.0ms Unloading: Package Female2Voice
Log: 27595.0ms Unloading: Package Male2Voice
Log: 27595.0ms Unloading: Package Female1Voice
Log: 27595.0ms Unloading: Package BossVoice
Log: 27595.0ms Unloading: Package Male1Voice
Log: 27595.0ms Unloading: Package Announcer
Log: 27595.0ms Unloading: Package SGirlSkins
Log: 27596.0ms Unloading: Package SoldierSkins
Log: 27596.0ms Unloading: Package CommandoSkins
Log: 27596.0ms Unloading: Package BossSkins
Log: 27596.0ms Unloading: Package FCommandoSkins
Log: 27596.0ms Unloading: Package LadderFonts
Log: Unbound to D3D9Drv.dll
Log: Unbound to ALAudio.dll
Log: 27624.0ms Unloading: Package ALAudio
Exit: OpenAL: Audio subsystem shut down.
Log: 28086.0ms Unloading: Package UWindowFonts
Log: Garbage: objects: 29562->0; refs: 204160
Exit: Object subsystem successfully closed.
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Memory Allocation Status
Uninitialized: Curr Memory  0.983M /  0.246M
Uninitialized: Peak Memory  103.374M /  105.336M
Uninitialized: Allocs           4 Current /  694210 Total
Uninitialized: Log file closed, 01/27/21 15:14:36
UCC log:

Code: Select all

Log: Log file open, 01/27/21 13:57:27
Init: Name subsystem initialized
Init: Detected: Microsoft Windows NT 6.2 (Build: 9200)
Init: Version: 227 Subversion: 9
Init: Compiled: Oct 28 2012 16:01:07
Init: Command line: 
Init: Base directory: C:\Steam\steamapps\common\Unreal Gold\System\
Init: Character set: Unicode
Log: Bound to Core.dll
Init: Object subsystem initialized
Init: Computer: LAPTOPPB32TLKD
Init: User: Rikia
Init: Memory total: Phys=4012908K Pagef=4194303K Virt=4194176K
Init: Working set: 32000 / 159000
Init: CPU Speed=1094.416951 MHz
Init: CPU Page size=4096, Processors / Cores=2
Init: CPU Detected: PentiumPro-class processor (GenuineIntel)
Init: CPU Features: CMov FPU RDTSC PAE MMX KNI
Log: Forcing Unreal to run on CPU 0
Log: Bound to Editor.dll
Log: Bound to Engine.dll
Log: Bound to Window.dll
Log: Executing Class Editor.MakeCommandlet
Init: Unreal engine initialized
Heading: --------------------Core--------------------
Log: 0.0ms Loading: Package Core
Log: Checking package Core
Heading: --------------------Engine--------------------
Log: 15.0ms Loading: Package Engine
Log: Checking package Engine
Heading: --------------------Editor--------------------
Log: 140.0ms Loading: Package Editor
Log: Checking package Editor
Heading: --------------------Fire--------------------
Log: Bound to Fire.dll
Log: 156.0ms Loading: Package Fire
Log: Checking package Fire
Heading: --------------------IpDrv--------------------
Log: Bound to IpDrv.dll
Log: 156.0ms Loading: Package IpDrv
Log: Checking package IpDrv
Heading: --------------------UWindow--------------------
Log: 171.0ms Loading: Package UWindow
Heading: --------------------UnrealShare--------------------
Log: 250.0ms Loading: Package UnrealShare
Log: 265.0ms Loading: Package Detail
Log: 281.0ms Loading: Package GenFX
Heading: --------------------UnrealI--------------------
Log: 671.0ms Loading: Package UnrealI
Heading: --------------------IpServer--------------------
Log: 796.0ms Loading: Package IpServer
Heading: --------------------UBrowser--------------------
Log: 796.0ms Loading: Package UBrowser
Heading: --------------------ALAudio--------------------
Log: Bound to ALAudio.dll
Log: OpenAL: ALDEVICES found 1:GenericSoftware
Log: OpenAL: Setting FMODOutput to DSOUND
Log: OpenAL: FMOD device found 0:
Log: OpenAL: FMOD device found 1:SpeakersRealtekRAudio
Log: 921.0ms Loading: Package ALAudio
Log: Checking package ALAudio
Heading: --------------------UMenu--------------------
Log: 937.0ms Loading: Package UMenu
Heading: --------------------UWebAdmin--------------------
Log: 1015.0ms Loading: Package UWebAdmin
Heading: --------------------Emitter--------------------
Log: Bound to Emitter.dll
Log: 1046.0ms Loading: Package Emitter
Log: Checking package Emitter
Heading: --------------------UPak--------------------
Log: Bound to UPak.dll
Log: 1062.0ms Loading: Package UPak
Log: 1077.0ms Loading: Package Marine
Log: 1077.0ms Loading: Package UPakFonts
Log: Checking package UPak
Heading: --------------------UDSDemo--------------------
Log: 1187.0ms Loading: Package UDSDemo
Heading: --------------------BotPack--------------------
Log: 1218.0ms Loading: Package BotPack
Log: 1249.0ms Loading: Package Female2Voice
Log: 1249.0ms Loading: Package Male2Voice
Log: 1265.0ms Loading: Package Female1Voice
Log: 1265.0ms Loading: Package BossVoice
Log: 1280.0ms Loading: Package Male1Voice
Log: 1280.0ms Loading: Package Announcer
Log: 1296.0ms Loading: Package SGirlSkins
Log: 1296.0ms Loading: Package SoldierSkins
Log: 1312.0ms Loading: Package CommandoSkins
Log: 1312.0ms Loading: Package BossSkins
Log: 1312.0ms Loading: Package FCommandoSkins
Log: 1327.0ms Loading: Package LadderFonts
Heading: --------------------ONIKonokoFsrv--------------------
Log: Analyzing...
Log: FactoryCreateText: Class with ClassFactoryUC (0 1 ..\ONIKonokoFsrv\Classes\ONIKonokoFsrv.uc)
Log: Imported: Class ONIKonokoFsrv.ONIKonokoFsrv
Log: FactoryCreateText: Class with ClassFactoryUC (0 1 ..\ONIKonokoFsrv\Classes\ONIKonokoFsrvBot.uc)
Log: Imported: Class ONIKonokoFsrv.ONIKonokoFsrvBot
Log: FactoryCreateText: Class with ClassFactoryUC (0 1 ..\ONIKonokoFsrv\Classes\SkeletalBot.uc)
Log: Imported: Class ONIKonokoFsrv.SkeletalBot
Log: FactoryCreateText: Class with ClassFactoryUC (0 1 ..\ONIKonokoFsrv\Classes\SkeletalPlayer.uc)
Log: Imported: Class ONIKonokoFsrv.SkeletalPlayer
Log: Parsing SkeletalPlayer
Log: Parsing ONIKonokoFsrv
Log: Importing skin KonokoFsrv
Log:  * Skeletal skin VPoints: 1244 
Log:  * Skeletal skin VVertices: 1885 
Log:  * Skeletal skin VTriangles: 2352 
Log:  * Skeletal skin VMaterials: 2 
Log:  * Skeletal skin VBones: 47 
Log:  * Skeletal skin VRawBoneInfluences: 1244 
Log: Skeletal mesh processing. LODStyle: 12
Log: Sorting raw influences by bone index
Log: Bones digested - 47 
Log: Converting quaternions
Log: BoundingBox (skeletal) (-118.159790,-46.108501,-124.970703)-(118.159782,47.946609,401.465485) BoundingSphere (-0.000002,0.919055,138.247406) 138.149826
Log:  * Total materials: 2 
Log:  * Skeletal skin Points: 1244 size 12 
Log:  * Skeletal skin Wedges: 1987 size 4 
Log:  * Skeletal skin Triangles: 2352 size 8 
Log:  * Skeletal skin Skeleton: 47 size 64 
Log:  * Skeletal skin Materials: 2 size 8 
Log:  * Skeletal skin BoneWeights: 1244 size 4 
Log:  * Skeletal skin BoneIndices: 47 size 8 
Log: Classic weapon bone link assigned to bone: Bip01 R Hand
ExecWarning: C:\Steam\steamapps\common\Unreal Gold\ONIKonokoFsrv\Classes\ONIKonokoFsrv.uc(13) : ExecWarning, Bad MESH DEFAULTANIM
Log: Parsing SkeletalBot
Log: Parsing ONIKonokoFsrvBot
Log: Compiling SkeletalPlayer
Log: Compiling ONIKonokoFsrv
Log: Compiling SkeletalBot
Log: Compiling ONIKonokoFsrvBot
Log: Importing defaultproperties for SkeletalPlayer
Log: Importing defaultproperties for ONIKonokoFsrv
Log: Importing defaultproperties for SkeletalBot
Log: Importing defaultproperties for ONIKonokoFsrvBot
Log: Success: Compiled 600 line(s), 43 statement(s).

Log: Save=39.409376
Log: Moving 'Save.tmp' to 'ONIKonokoFsrv.u'
Log: 1 warning(s)
Exit: Preparing to exit.
Log: Purging garbage
Log: Unbound to Core.dll
Log: Unbound to Editor.dll
Log: Unbound to Engine.dll
Log: Unbound to Window.dll
Exit: Editor shut down
Log: 2608.0ms Unloading: Package Core
Log: 2624.0ms Unloading: Package Engine
Log: 2624.0ms Unloading: Package Editor
Log: Unbound to Fire.dll
Log: 2624.0ms Unloading: Package Fire
Log: Unbound to IpDrv.dll
Log: 2624.0ms Unloading: Package IpDrv
Log: 2624.0ms Unloading: Package UWindow
Log: 2639.0ms Unloading: Package UnrealShare
Log: 2639.0ms Unloading: Package Detail
Log: 2639.0ms Unloading: Package GenFX
Log: 2655.0ms Unloading: Package UnrealI
Log: 2671.0ms Unloading: Package IpServer
Log: 2671.0ms Unloading: Package UBrowser
Log: Unbound to ALAudio.dll
Log: 2671.0ms Unloading: Package ALAudio
Log: 2671.0ms Unloading: Package UMenu
Log: 2671.0ms Unloading: Package UWebAdmin
Log: Unbound to Emitter.dll
Log: 2671.0ms Unloading: Package Emitter
Log: Unbound to UPak.dll
Log: 2686.0ms Unloading: Package UPak
Log: 2686.0ms Unloading: Package Marine
Log: 2686.0ms Unloading: Package UPakFonts
Log: 2686.0ms Unloading: Package UDSDemo
Log: 2686.0ms Unloading: Package BotPack
Log: 2686.0ms Unloading: Package Female2Voice
Log: 2686.0ms Unloading: Package Male2Voice
Log: 2686.0ms Unloading: Package Female1Voice
Log: 2686.0ms Unloading: Package BossVoice
Log: 2686.0ms Unloading: Package Male1Voice
Log: 2686.0ms Unloading: Package Announcer
Log: 2686.0ms Unloading: Package SGirlSkins
Log: 2686.0ms Unloading: Package SoldierSkins
Log: 2686.0ms Unloading: Package CommandoSkins
Log: 2686.0ms Unloading: Package BossSkins
Log: 2686.0ms Unloading: Package FCommandoSkins
Log: 2686.0ms Unloading: Package LadderFonts
Log: Garbage: objects: 50376->0; refs: 0
Exit: Object subsystem successfully closed.
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Allocation checking disabled
Uninitialized: Log file closed, 01/27/21 13:57:30
The .uc files code(I decided to place it correctly)

ONIKonokoFsrv.uc

Code: Select all

//=============================================================================
// ONI KonokoFsrv.
//=============================================================================
class ONIKonokoFsrv extends SkeletalPlayer;

#exec MESH MODELIMPORT MESH=KonokoFsrv MODELFILE=models\KonokoFsrv.PSK LODSTYLE=12
#exec MESH ORIGIN MESH=KonokoFsrv X=0 Y=0 Z=135 YAW=192

#exec MESH WEAPONATTACH MESH=KonokoFsrv BONE="Bip01 R Hand"
#exec MESH WEAPONPOSITION MESH=KonokoFsrv YAW=0 PITCH=0 ROLL=128 X=1.0 Y=0.0 Z=0.0

#exec MESHMAP SCALE MESHMAP=KonokoFsrv X=0.3125 Y=0.3125 Z=0.3125
#exec MESH DEFAULTANIM MESH=KonokoFsrv ANIM=SoldierAnim

//#exec TEXTURE IMPORT NAME=KonokoFsrvDoll FILE=TEXTURES\KonokoFsrvSDoll.PCX GROUP="Icons" MIPS=OFF
//#exec TEXTURE IMPORT NAME=KonokoFsrvBelt FILE=TEXTURES\KonokoFsrvSBelt.PCX GROUP="Icons" MIPS=OFF

static function SetMultiSkin(Actor SkinActor, string SkinName, string FaceName, byte TeamNum)
{
local string MeshName, SkinItem, SkinPackage;

MeshName = SkinActor.GetItemName(string(SkinActor.Mesh));

SkinItem = SkinActor.GetItemName(SkinName);
SkinPackage = Left(SkinName, Len(SkinName) - Len(SkinItem));

if(SkinPackage == "")
{
SkinPackage="KonokoFsrvSkins.";
SkinName=SkinPackage$SkinName;
}

if( TeamNum != 255 )
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1T_"$String(TeamNum), default.DefaultSkinName$"1T_"$String(TeamNum)))
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", default.DefaultSkinName$"1"))
{
SetSkinElement(SkinActor, 0, default.DefaultSkinName$"1T_"$String(TeamNum), default.DefaultSkinName$"1T_"$String(TeamNum));
SkinName=default.DefaultSkinName;
}
}
SetSkinElement(SkinActor, 1, SkinName$"2T_"$String(TeamNum), SkinName$"2T_"$String(TeamNum));
SetSkinElement(SkinActor, 2, SkinName$"3T_"$String(TeamNum), SkinName$"3T_"$String(TeamNum));
SetSkinElement(SkinActor, 3, SkinName$"4T_"$String(TeamNum), SkinName$"4T_"$String(TeamNum));
}
else
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", default.DefaultSkinName))
SkinName=default.DefaultSkinName;

SetSkinElement(SkinActor, 1, SkinName$"2", SkinName$"2");
SetSkinElement(SkinActor, 2, SkinName$"3", SkinName$"3");
SetSkinElement(SkinActor, 3, SkinName$"4", SkinName$"4");
}

if( Pawn(SkinActor) != None )
Pawn(SkinActor).PlayerReplicationInfo.TalkTexture = Texture(DynamicLoadObject(SkinName$"3Face", class'Texture'));
}

defaultproperties
{
DefaultSkinName="KonokoFsrvSkins.KonF"
DefaultPackage="KonokoFsrvSkins."
SelectionMesh="ONIKonokoFsrv.KonokoFsrv"
Mesh=SkeletalMesh'ONIKonokoFsrv.KonokoFsrv'
MenuName="ONI KonokoFsrv"
}

ONIKonokoFsrvBot

Code: Select all

//=============================================================================
// ONIKonokoFsrv Bot.
//=============================================================================
class ONIKonokoFsrvBot extends SkeletalBot;

static function SetMultiSkin(Actor SkinActor, string SkinName, string FaceName, byte TeamNum)
{
local string MeshName, SkinItem, SkinPackage;

MeshName = SkinActor.GetItemName(string(SkinActor.Mesh));

SkinItem = SkinActor.GetItemName(SkinName);
SkinPackage = Left(SkinName, Len(SkinName) - Len(SkinItem));

if(SkinPackage == "")
{
SkinPackage="KonokoFsrvSkins.";
SkinName=SkinPackage$SkinName;
}

if( TeamNum != 255 )
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1T_"$String(TeamNum), ""))
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", ""))
{
SetSkinElement(SkinActor, 0, "KonokoFsrvSkins.KonF1T_"$String(TeamNum), "KonokoFsrvSkins.KonF1");
SkinName="KonokoFsrvSkins.KonF";
}
}
SetSkinElement(SkinActor, 1, SkinName$"2T_"$String(TeamNum), SkinName$"2");
SetSkinElement(SkinActor, 2, SkinName$"3T_"$String(TeamNum), SkinName$"3");
SetSkinElement(SkinActor, 3, SkinName$"4T_"$String(TeamNum), SkinName$"4");
}
else
{
if(!SetSkinElement(SkinActor, 0, SkinName$"1", "KonokoFsrvSkins.KonF1"))
SkinName="KonokoFsrvSkins.KonF";

SetSkinElement(SkinActor, 1, SkinName$"2", "");
SetSkinElement(SkinActor, 2, SkinName$"3", "");
SetSkinElement(SkinActor, 3, SkinName$"4", "");
}

if( Pawn(SkinActor) != None )
Pawn(SkinActor).PlayerReplicationInfo.TalkTexture = Texture(DynamicLoadObject(SkinName$"3Face", class'Texture'));
}

defaultproperties
{
DefaultSkinName="KonokoFsrvSkins.KonF"
DefaultPackage="KonokoFsrvSkins."
SelectionMesh="ONIKonokoFsrv.KonokoFsrv"
Mesh=SkeletalMesh'ONIKonokoFsrv.KonokoFsrv'
MenuName="ONI KonokoFsrv"
}

SelectONIKonokoFsrv

Code: Select all

//=============================================================================
// Select ONI KonokoFsrv.
//=============================================================================
class SelectONIKonokoFsrv extends SelectionDude;

#exec ANIM IMPORT ANIM=KonokoFsrvSelectAnim ANIMFILE=models\KonokoFsrvSelect.PSA COMPRESS=0.5 IMPORTSEQS=0
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=All STARTFRAME=0 NUMFRAMES=48 RATE=15
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=Breath3 STARTFRAME=0 NUMFRAMES=26 RATE=15
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=Breath2 STARTFRAME=26 NUMFRAMES=31 RATE=15
#exec ANIM SEQUENCE ANIM=KonokoFsrvSelectAnim SEQ=Breath1 STARTFRAME=57 NUMFRAMES=31 RATE=15

#exec MESH MODELIMPORT MESH=SelectionKonokoFsrv MODELFILE=models\KonokoFsrv.PSK LODSTYLE=12
#exec MESH ORIGIN MESH=SelectionKonokoFsrv X=0 Y=0 Z=135 YAW=192
#exec MESHMAP SCALE MESHMAP=SelectionKonokoFsrv X=0.3125 Y=0.3125 Z=0.3125
#exec MESH DEFAULTANIM MESH=SelectionKonokoFsrv ANIM=KonokoFsrvSelectAnim

defaultproperties
{
}

User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

[]KAOS[]Casey wrote: Tue Jan 26, 2021 6:01 pm The error message is correct. SkeletalPlayer doesn't exist in Unreal 1. You basically have to port TournamentPlayer/Soldier/whatever's animation base to a new player class, unless you want to use the 227-compatible botpack floating around.
I found that there is a model limit. That's not part of my plan. The model that I want to port must be independent from any custom package.

You said that there is a choice to make a new player class. Can you at least give me a basic code or knowledge?

I would like to use Unreal Wiki, but it's not working right now.
User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by []KAOS[]Casey »

I've never personally added a new player class to the player selection menu nor do I know if it is even supported to add pawns that aren't under unrealiplayer (I think TournamentPlayer is not under unrealiplayer), but you can either edit your user.ini to the new class in the "[DefaultPlayer]" section

Class=UnrealShare.FemaleOne ->
Class=ONIKonokoFsrv.ONIKonokoFsrv

or

open nyleve?class=ONIKonokoFsrv.ONIKonokoFsrv
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

[]KAOS[]Casey wrote: Thu Jan 28, 2021 1:21 am I've never personally added a new player class to the player selection menu nor do I know if it is even supported to add pawns that aren't under unrealiplayer (I think TournamentPlayer is not under unrealiplayer), but you can either edit your user.ini to the new class in the "[DefaultPlayer]" section

Class=UnrealShare.FemaleOne ->
Class=ONIKonokoFsrv.ONIKonokoFsrv

or

open nyleve?class=ONIKonokoFsrv.ONIKonokoFsrv
I recompiled .psa file with UnPSA Tool and re-exported .psk file with MilkShape3D.
Then I united skeletal player and bot classes with my character classes.
After, I compiled everything with Umake and got "0 warnings".

The animations did not even compile into .u file, because the file is too small(with anims it must have weight near 2mb, while it's only near 100 kb).

And I have no options to import .psk, .psa files into editor.

But the more scarier, I'm getting this, when I opening my compiled .u package:
pffffffffffffffffffffff.png
The code I have:

Player's class ".uc"

Code: Select all

class ONIKonokoFsrv extends Male
	abstract;

function PlayDying(name DamageType, vector HitLoc)
{
	BaseEyeHeight = Default.BaseEyeHeight;
	PlayDyingSound();
			
	if ( DamageType == 'Suicided' )
	{
		PlayAnim('Dead8',, 0.1);
		return;
	}

	// check for head hit
	if ( (DamageType == 'Decapitated') && !class'GameInfo'.Default.bLowGore )
	{
		PlayDecap();
		return;
	}

	if ( FRand() < 0.15 )
	{
		PlayAnim('Dead2',,0.1);
		return;
	}

	// check for big hit
	if ( (Velocity.Z > 250) && (FRand() < 0.75) )
	{
		if ( FRand() < 0.5 )
			PlayAnim('Dead1',,0.1);
		else
			PlayAnim('Dead11',, 0.1);
		return;
	}

	// check for repeater death
	if ( (Health > -10) && ((DamageType == 'shot') || (DamageType == 'zapped')) )
	{
		PlayAnim('Dead9',, 0.1);
		return;
	}
		
	if ( (HitLoc.Z - Location.Z > 0.7 * CollisionHeight) && !class'GameInfo'.Default.bLowGore )
	{
		if ( FRand() < 0.5 )
			PlayDecap();
		else
			PlayAnim('Dead7',, 0.1);
		return;
	}
	
	if ( Region.Zone.bWaterZone || (FRand() < 0.5) ) //then hit in front or back
		PlayAnim('Dead3',, 0.1);
	else
		PlayAnim('Dead8',, 0.1);
}

function PlayDecap()
{
	PlayAnim('Dead4',, 0.1);
}

function PlayGutHit(float tweentime)
{
	if ( (AnimSequence == 'GutHit') || (AnimSequence == 'Dead2') )
	{
		if (FRand() < 0.5)
			TweenAnim('LeftHit', tweentime);
		else
			TweenAnim('RightHit', tweentime);
	}
	else if ( FRand() < 0.6 )
		TweenAnim('GutHit', tweentime);
	else
		TweenAnim('Dead8', tweentime);

}

function PlayHeadHit(float tweentime)
{
	if ( (AnimSequence == 'HeadHit') || (AnimSequence == 'Dead7') )
		TweenAnim('GutHit', tweentime);
	else if ( FRand() < 0.6 )
		TweenAnim('HeadHit', tweentime);
	else
		TweenAnim('Dead7', tweentime);
}

function PlayLeftHit(float tweentime)
{
	if ( (AnimSequence == 'LeftHit') || (AnimSequence == 'Dead9') )
		TweenAnim('GutHit', tweentime);
	else if ( FRand() < 0.6 )
		TweenAnim('LeftHit', tweentime);
	else 
		TweenAnim('Dead9', tweentime);
}

function PlayRightHit(float tweentime)
{
	if ( (AnimSequence == 'RightHit') || (AnimSequence == 'Dead1') )
		TweenAnim('GutHit', tweentime);
	else if ( FRand() < 0.6 )
		TweenAnim('RightHit', tweentime);
	else
		TweenAnim('Dead1', tweentime);
}

#exec MESH MODELIMPORT MESH=KonokoFsrv MODELFILE=Models/KonokoFsrv.psk
#exec MESH LODPARAMS MESH=KonokoFsrv HYSTERESIS=0.00 STRENGTH=0.01 MINVERTS=10.00 MORPH=0.30 ZDISP=0.00
#exec MESH ORIGIN MESH=KonokoFsrv X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0
#exec ANIM IMPORT ANIM=SoldierAnim ANIMFILE=Models/SoldierAnim.psa COMPRESS=1
#exec MESHMAP SCALE MESHMAP=KonokoFsrv X=1.0 Y=1.0 Z=1.0

#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Breath1L STARTFRAME=0 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Breath2L STARTFRAME=24 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=CockGun STARTFRAME=48 NUMFRAMES=14 RATE=14
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=CockGunL STARTFRAME=62 NUMFRAMES=29 RATE=29
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DeathEnd STARTFRAME=91 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DeathEnd3 STARTFRAME=92 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Duck STARTFRAME=93 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DuckWlkL STARTFRAME=117 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DuckWlkS STARTFRAME=141 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=GutHit STARTFRAME=165 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=HeadHit STARTFRAME=166 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=JumpLgFr STARTFRAME=167 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Look STARTFRAME=168 NUMFRAMES=22 RATE=22
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=StillFrRp STARTFRAME=190 NUMFRAMES=11 RATE=11
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=StillLgFr STARTFRAME=201 NUMFRAMES=12 RATE=12
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=StillSmFr STARTFRAME=213 NUMFRAMES=12 RATE=12
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=AimDnLg STARTFRAME=225 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=AimUpSm STARTFRAME=226 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=AimDnSm STARTFRAME=227 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Fighter STARTFRAME=228 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=TurnLg STARTFRAME=229 NUMFRAMES=3 RATE=3
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=TurnSm STARTFRAME=232 NUMFRAMES=5 RATE=5
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Flip STARTFRAME=237 NUMFRAMES=19 RATE=19
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=LeftHit STARTFRAME=256 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=RightHit STARTFRAME=257 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=SwimLg STARTFRAME=258 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=SwimSm STARTFRAME=276 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=TreadLg STARTFRAME=294 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=TreadSm STARTFRAME=312 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Wave STARTFRAME=330 NUMFRAMES=21 RATE=21
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Thrust STARTFRAME=351 NUMFRAMES=54 RATE=54
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Taunt1 STARTFRAME=405 NUMFRAMES=22 RATE=22
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Victory1 STARTFRAME=427 NUMFRAMES=21 RATE=21
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DeathEnd2 STARTFRAME=448 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Chat2 STARTFRAME=449 NUMFRAMES=41 RATE=41
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Chat1 STARTFRAME=490 NUMFRAMES=40 RATE=40
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead1 STARTFRAME=530 NUMFRAMES=20 RATE=20
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead2 STARTFRAME=550 NUMFRAMES=17 RATE=17
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead3 STARTFRAME=567 NUMFRAMES=22 RATE=22
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead4 STARTFRAME=589 NUMFRAMES=20 RATE=20
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead5 STARTFRAME=609 NUMFRAMES=29 RATE=29
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead7 STARTFRAME=638 NUMFRAMES=29 RATE=29
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead8 STARTFRAME=667 NUMFRAMES=29 RATE=29
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead9 STARTFRAME=696 NUMFRAMES=12 RATE=12
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead9B STARTFRAME=708 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Breath1 STARTFRAME=732 NUMFRAMES=25 RATE=25
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Breath2 STARTFRAME=757 NUMFRAMES=21 RATE=21
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=WalkLg STARTFRAME=778 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=WalkLgFr STARTFRAME=802 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=WalkSm STARTFRAME=826 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=WalkSmFr STARTFRAME=850 NUMFRAMES=24 RATE=24
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=RunLg STARTFRAME=874 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=RunLgFr STARTFRAME=892 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=RunSm STARTFRAME=910 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=RunSmFr STARTFRAME=928 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=StrafeL STARTFRAME=946 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=StrafeR STARTFRAME=964 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=BackRun STARTFRAME=982 NUMFRAMES=18 RATE=18
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=AimUpLg STARTFRAME=1000 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Dead11 STARTFRAME=1001 NUMFRAMES=26 RATE=26
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DodgeB STARTFRAME=1027 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DodgeF STARTFRAME=1028 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DodgeL STARTFRAME=1029 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=DodgeR STARTFRAME=1030 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=JumpSmFr STARTFRAME=1031 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=LandLgFr STARTFRAME=1032 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=LandSmFr STARTFRAME=1033 NUMFRAMES=1 RATE=1
#exec ANIM SEQUENCE ANIM=SoldierAnim SEQ=Challenge STARTFRAME=1034 NUMFRAMES=43 RATE=43
#exec ANIM DIGEST ANIM=SoldierAnim
#exec MESH DEFAULTANIM MESH=KonokoFsrv ANIM=SoldierAnim

// *** ANIMATION NOTIFIES ***
#exec ANIM DIGEST ANIM=SoldierAnim VERBOSE

#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunLG TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunLG TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunLGFR TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunLGFR TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunSM TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunSM TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunSMFR TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=RunSMFR TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=StrafeL TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=StrafeL TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=StrafeR TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=StrafeR TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=BackRun TIME=0.25 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=BackRun TIME=0.75 FUNCTION=PlayFootStep
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead1 TIME=0.7 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead2 TIME=0.9 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead3 TIME=0.45 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead4 TIME=0.6 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead7 TIME=0.7 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead8 TIME=0.7 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead9B TIME=0.8 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Dead11 TIME=0.57 FUNCTION=LandThump
#exec ANIM NOTIFY ANIM=SoldierAnim SEQ=Challenge TIME=0.35 FUNCTION=PlayLoudStep

//#exec TEXTURE IMPORT NAME=KonokoFsrvDoll FILE=TEXTURES\KonokoFsrvSDoll.PCX GROUP="Icons" MIPS=OFF
//#exec TEXTURE IMPORT NAME=KonokoFsrvBelt FILE=TEXTURES\KonokoFsrvSBelt.PCX GROUP="Icons" MIPS=OFF

defaultproperties
{
				Skin=Texture'KonokoFsrvSkins.KonF'
				MenuName="ONI KonokoFsrv"
				Mesh=SkeletalMesh'ONIKonokoFsrv.KonokoFsrv'
				CarcassType=Class'UnrealShare.HumanCarcass'
}
Bot's class ".uc"

Code: Select all

class ONIKonokoFsrvBot extends HumanBot
	abstract;

function PlayVictoryDance()
{
	local float decision;

	decision = FRand();

	if ( decision < 0.4 )
		PlayAnim('Victory1',0.7, 0.2);
	else if ( decision < 0.7 )
		PlayAnim('Thrust',0.7, 0.2);
	else
		PlayAnim('Taunt1',0.7, 0.2);
}

function PlayDying(name DamageType, vector HitLoc)
{
	BaseEyeHeight = Default.BaseEyeHeight;
	PlayDyingSound();
			
	if ( DamageType == 'Suicided' )
	{
		PlayAnim('Dead8',, 0.1);
		return;
	}

	// check for head hit
	if ( (DamageType == 'Decapitated') && !Level.Game.bVeryLowGore )
	{
		PlayDecap();
		return;
	}

	if ( FRand() < 0.15 )
	{
		PlayAnim('Dead2',,0.1);
		return;
	}

	// check for big hit
	if ( (Velocity.Z > 250) && (FRand() < 0.75) )
	{
		if ( FRand() < 0.5 )
			PlayAnim('Dead1',,0.1);
		else
			PlayAnim('Dead11',, 0.1);
		return;
	}

	// check for repeater death
	if ( (Health > -10) && ((DamageType == 'shot') || (DamageType == 'zapped')) )
	{
		PlayAnim('Dead9',, 0.1);
		return;
	}
		
	if ( (HitLoc.Z - Location.Z > 0.7 * CollisionHeight) && !Level.Game.bVeryLowGore )
	{
		if ( FRand() < 0.5 )
			PlayDecap();
		else
			PlayAnim('Dead7',, 0.1);
		return;
	}
	
	if ( Region.Zone.bWaterZone || (FRand() < 0.5) ) //then hit in front or back
		PlayAnim('Dead3',, 0.1);
	else
		PlayAnim('Dead8',, 0.1);
}

function PlayDecap()
{
	PlayAnim('Dead4',, 0.1);
}

function PlayGutHit(float tweentime)
{
	if ( (AnimSequence == 'GutHit') || (AnimSequence == 'Dead2') )
	{
		if (FRand() < 0.5)
			TweenAnim('LeftHit', tweentime);
		else
			TweenAnim('RightHit', tweentime);
	}
	else if ( FRand() < 0.6 )
		TweenAnim('GutHit', tweentime);
	else
		TweenAnim('Dead8', tweentime);

}

function PlayHeadHit(float tweentime)
{
	if ( (AnimSequence == 'HeadHit') || (AnimSequence == 'Dead7') )
		TweenAnim('GutHit', tweentime);
	else if ( FRand() < 0.6 )
		TweenAnim('HeadHit', tweentime);
	else
		TweenAnim('Dead7', tweentime);
}

function PlayLeftHit(float tweentime)
{
	if ( (AnimSequence == 'LeftHit') || (AnimSequence == 'Dead9') )
		TweenAnim('GutHit', tweentime);
	else if ( FRand() < 0.6 )
		TweenAnim('LeftHit', tweentime);
	else 
		TweenAnim('Dead9', tweentime);
}

function PlayRightHit(float tweentime)
{
	if ( (AnimSequence == 'RightHit') || (AnimSequence == 'Dead1') )
		TweenAnim('GutHit', tweentime);
	else if ( FRand() < 0.6 )
		TweenAnim('RightHit', tweentime);
	else
		TweenAnim('Dead1', tweentime);
}

defaultproperties
{
				Skin=Texture'KonokoFsrvSkins.KonF'
				MenuName="ONI KonokoFsrv"
				Mesh=SkeletalMesh'ONIKonokoFsrv.KonokoFsrv'
				CarcassType=Class'UnrealShare.HumanCarcass'
}
You do not have the required permissions to view the files attached to this post.
User avatar
Rikia
OldUnreal Member
Posts: 23
Joined: Thu Jan 07, 2021 7:14 am

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by Rikia »

User avatar
[]KAOS[]Casey
OldUnreal Member
Posts: 4497
Joined: Sun Aug 07, 2011 4:22 am
Location: over there

Re: (Related to Unreal) UT99 skeletal model port requirements

Post by []KAOS[]Casey »

Nice. glad to see it worked out.
Post Reply

Return to “Modelling”