Home | Forum | Downloads | Videos | UTV-Live | Artikel | Server-Stats | Impressum

Zurück   UTzone.de > UT > ini - Bearbeitung (Scripting)

Antwort
 
Teilen Themen-Optionen Thema durchsuchen
Alt 12.02.2011, 00:32   #1
Sly.
UT-Freak
 
Benutzerbild von Sly.
 
Registriert seit: 14.04.2010
Ort: zu Hause
Beiträge: 3.230
Beigetretene Cups: 0
Cup Siege: 0
Downloads: 62
Uploads: 7
Frage Animationen & Texturen werden im Code nicht erkannt

Man ist mir das peinlich... Ich dachte, ich kriege das auch so hin

Hoffe mal, das hier ist der richtige Ort, darum bitte verschieben, wenn nicht. Heißt ja eigentlich ini-Bearbeitung (Scripting), bin mir aber dennoch nicht sicher gewesen, ob das hier wirklich reinpasst (keine andere passende Kategorie gefunden).


Um schonmal ein paar Fragen zu klären: Betrifft UT2004, ich arbeite mit WOTgreal und benutze UMake 1-2.

Nun ein paar Details zum Problem:

Ich habe vor ein paar Tagen ein Paket mit Animationen, eins mit Texturen, eins mit Karma und ein Static Mesh Paket mit Gibs gefunden.
Genaugenommen sind es Animationen inkl. dazugehörigen Texturen, Karma und Gibs von den Unreal 2 Skaarjs. Von woher genau ich die habe... das weiß ich nicht mehr, schon zu lange her.
Dann habe ich mich entschlossen einen Unreal 2 Skaarj zu machen. Bin aber noch Anfänger, was das Scripten in Uscript angeht, aber bin bereits in der Lage einen simplen Mutator zu entwerfen.

Und hier fängt's an:
Ich habe eine neue Unterklasse der Skaarj-Klasse erstellt, das alte Skaarj Mesh, die Animationen, sowie Texturen durch die aus Unreal 2 in den DefaultProperties und in Teilen des Codes, in denen es notwendig bzw. besser war und aussehen würde, ersetzt.
Hier der Code für die Helfer, falls er gebraucht wird (die Dateien kann ich auch noch als Anhang hochladen, falls es jemand selbst ausprobieren möchte):
+/- Klappen
Code:
//=============================================================================
// SPMonster_Unreal2SkaarjAdvancedSly
//=============================================================================
class SPMonster_Unreal2SkaarjAdvancedSly extends Skaarj;

#exec OBJ LOAD FILE=U2Skaarj.ukx
#exec OBJ LOAD FILE=SkaarjGibs.usx
#exec OBJ LOAD FILE=U2Skaarjtex.utx

var sound FootStep[2];
var name DeathAnim[4];

function PlayVictory()
{
	Controller.bPreparingMove = true;
	Acceleration = vect(0,0,0);
	bShotAnim = true;
    PlaySound(sound'roam11s',SLOT_Interact);
	SetAnimAction('IdleCharacter02');
	Controller.Destination = Location;
	Controller.GotoState('TacticalMove','WaitForAnim');
}

function bool SameSpeciesAs(Pawn P)
{
	return ( (Monster(P) != None) && (P.IsA('Skaarj') || P.IsA('WarLord')) );
}

function vector GetFireStart(vector X, vector Y, vector Z)
{
    return Location + 0.9 * CollisionRadius * X + 0.9 * CollisionRadius * Y + 0.4 * CollisionHeight * Z;
}

function SpawnTwoShots()
{
	local vector X,Y,Z, FireStart;
	local rotator FireRotation;

	GetAxes(Rotation,X,Y,Z);
	FireStart = GetFireStart(X,Y,Z);
	if ( !SavedFireProperties.bInitialized )
	{
		SavedFireProperties.AmmoClass = MyAmmo.Class;
		SavedFireProperties.ProjectileClass = MyAmmo.ProjectileClass;
		SavedFireProperties.WarnTargetPct = MyAmmo.WarnTargetPct;
		SavedFireProperties.MaxRange = MyAmmo.MaxRange;
		SavedFireProperties.bTossed = MyAmmo.bTossed;
		SavedFireProperties.bTrySplash = MyAmmo.bTrySplash;
		SavedFireProperties.bLeadTarget = MyAmmo.bLeadTarget;
		SavedFireProperties.bInstantHit = MyAmmo.bInstantHit;
		SavedFireProperties.bInitialized = true;
	}
	FireRotation = Controller.AdjustAim(SavedFireProperties,FireStart,600);
	Spawn(MyAmmo.ProjectileClass,,,FireStart,FireRotation);

	FireStart = FireStart - 1.8 * CollisionRadius * Y;
	FireRotation.Yaw += 400;
	spawn(MyAmmo.ProjectileClass,,,FireStart, FireRotation);
}

simulated function AnimEnd(int Channel)
{
	local name Anim;
	local float frame,rate;

	if ( Channel == 0 )
	{
		GetAnimParams(0, Anim,frame,rate);
		if ( Anim == 'looking' )
			IdleWeaponAnim = 'guncheck';
		else if ( (Anim == 'guncheck') && (FRand() < 0.5) )
			IdleWeaponAnim = 'looking';
	}
	Super.AnimEnd(Channel);
}

function RunStep()
{
	PlaySound(FootStep[Rand(2)], SLOT_Interact);
}

function WalkStep()
{
	PlaySound(FootStep[Rand(2)], SLOT_Interact,0.2);
}

simulated function PlayDying(class<DamageType> DamageType, vector HitLoc)
{
	AmbientSound = None;
    bCanTeleport = false;
    bReplicateMovement = false;
    bTearOff = true;
    bPlayedDeath = true;

	HitDamageType = DamageType; // these are replicated to other clients
    TakeHitLocation = HitLoc;
	LifeSpan = RagdollLifeSpan;

    GotoState('Dying');

	Velocity += TearOffMomentum;
    BaseEyeHeight = Default.BaseEyeHeight;
    SetPhysics(PHYS_Falling);

    if ( (DamageType == class'DamTypeSniperHeadShot')
		|| ((HitLoc.Z > Location.Z + 0.75 * CollisionHeight) && (FRand() > 0.5)
			&& (DamageType != class'DamTypeAssaultBullet') && (DamageType != class'DamTypeMinigunBullet') && (DamageType != class'DamTypeFlakChunk')) )
    {
		PlayAnim('Death5',1,0.05);
		CreateGib('head',DamageType,Rotation);
		return;
	}
	if ( Velocity.Z > 300 )
	{
		if ( FRand() < 0.5 )
			PlayAnim('Death',1.2,0.05);
		else
			PlayAnim('Death2',1.2,0.05);
		return;
	}
	PlayAnim(DeathAnim[Rand(4)],1.2,0.05);
}

function SpinDamageTarget()
{
	if (MeleeDamageTarget(20, (30000 * Normal(Controller.Target.Location - Location))) )
		PlaySound(sound'clawhit1s', SLOT_Interact);
}

function ClawDamageTarget()
{
	if ( MeleeDamageTarget(25, (25000 * Normal(Controller.Target.Location - Location))) )
		PlaySound(sound'clawhit1s', SLOT_Interact);
}

function RangedAttack(Actor A)
{
	local name Anim;
	local float frame,rate;

	if ( bShotAnim )
		return;
	bShotAnim = true;
	if ( Physics == PHYS_Swimming )
		SetAnimAction('SwimFire');
	else if ( VSize(A.Location - Location) < MeleeRange + CollisionRadius + A.CollisionRadius )
	{
		if ( FRand() < 0.7 )
		{
			SetAnimAction('Spin');
			PlaySound(sound'spin1s', SLOT_Interact);
			Acceleration = AccelRate * Normal(A.Location - Location);
			return;
		}
		SetAnimAction('Claw');
		PlaySound(sound'Claw2s', SLOT_Interact);
		Controller.bPreparingMove = true;
		Acceleration = vect(0,0,0);
	}
	else if ( Velocity == vect(0,0,0) )
	{
		SetAnimAction('Firing');
		Controller.bPreparingMove = true;
		Acceleration = vect(0,0,0);
	}
	else
	{
		GetAnimParams(0,Anim,frame,rate);
		if ( Anim == 'RunL' )
			SetAnimAction('StrafeLeftFr');
		else if ( Anim == 'RunR' )
			SetAnimAction('StrafeRightFr');
		else
			SetAnimAction('JogFire');
	}
}

defaultproperties
{
     Footstep(0)=SkaarjPack_rc.Cow.walkC
     Footstep(1)=SkaarjPack_rc.Cow.walkC
     DeathAnim(0)="Death"
     DeathAnim(1)="Death2"
     DeathAnim(2)="Death4"
     DeathAnim(3)="Death5"
     HitSound(0)=SkaarjPack_rc.Skaarj.injur1sk
     HitSound(1)=SkaarjPack_rc.Skaarj.injur2sk
     HitSound(2)=SkaarjPack_rc.Skaarj.injur3sk
     HitSound(3)=SkaarjPack_rc.Skaarj.injur3sk
     DeathSound(0)=SkaarjPack_rc.Skaarj.death1sk
     DeathSound(1)=SkaarjPack_rc.Skaarj.death2sk
     ChallengeSound(0)=SkaarjPack_rc.Skaarj.chalnge1s
     ChallengeSound(1)=SkaarjPack_rc.Skaarj.chalnge3s
     ChallengeSound(2)=SkaarjPack_rc.Skaarj.roam11s
     ChallengeSound(3)=SkaarjPack_rc.Skaarj.roam11s
     AmmunitionClass=SkaarjPack.SkaarjAmmo
     ScoringValue=6
     IdleHeavyAnim="Idle_Biggun"
     IdleRifleAnim="Breath"
     MeleeRange=60.000000
     JumpZ=550.000000
     Health=150
     MovementAnims(1)="JogFire"
     MovementAnims(2)="RunR"
     MovementAnims(3)="RunL"
     SwimAnims(0)="Swim"
     SwimAnims(1)="Swim"
     SwimAnims(2)="Swim"
     SwimAnims(3)="Swim"
     WalkAnims(1)="WalkF"
     WalkAnims(2)="WalkF"
     WalkAnims(3)="WalkF"
     AirAnims(0)="Jump_Mid"
     AirAnims(1)="Jump_Mid"
     AirAnims(2)="Jump_Mid"
     AirAnims(3)="Jump_Mid"
     LandAnims(0)="Jump_Land"
     LandAnims(1)="Jump_Land"
     LandAnims(2)="Jump_Land"
     LandAnims(3)="Jump_Land"
     DodgeAnims(0)="DodgeF"
     DodgeAnims(1)="DodgeB"
     DodgeAnims(2)="DodgeL"
     DodgeAnims(3)="DodgeR"
     AirStillAnim="InAir"
     TakeoffStillAnim="Jump"
     IdleSwimAnim="Swim"
     IdleWeaponAnim="Looking"
     IdleRestAnim="Breath"
     
     mesh=SkeletalMesh'U2Skaarj.U2Skaarj2'
     Skins(0)=texture'U2Skaarjtex.new.Sbody'
     Skins(1)=texture'U2Skaarjtex.new.Shead'
     
     Mass=150.000000
     Buoyancy=150.000000
     RotationRate=(Yaw=60000)

	HearingThreshold=4096
	SightRadius=6000
	AmbientSound=sound'SkaarjPack_rc.WarLord.breath1WL'
}


Der Code ist noch im Anfangsstadium und muss noch optimiert werden, jedoch spuckt der Compiler bereits jetzt schon folgenden Error aus, wenn ich ihn kompilieren will:
Code:
[...]
----- myLevel (Release)
Analyzing...
Parsing SPMonster_Unreal2SkaarjAdvancedSly
Failed loading package: Can't find file for package 'Humangibtex'
Failed loading package: Can't find file for package 'Humangibtex'
D:\Programme\Unreal Anthology\UT2004\myLevel\Classes\SPMonster_Unreal2SkaarjAdvancedSly.uc(10) : Warning, 'Footstep' obscures 'Footstep' defined in base class 'Skaarj'.
D:\Programme\Unreal Anthology\UT2004\myLevel\Classes\SPMonster_Unreal2SkaarjAdvancedSly.uc(11) : Warning, 'DeathAnim' obscures 'DeathAnim' defined in base class 'Skaarj'.
Compiling SPMonster_Unreal2SkaarjAdvancedSly
Importing Defaults for SPMonster_Unreal2SkaarjAdvancedSly
ObjectProperty Engine.Actor.Mesh: unresolved reference to 'SkeletalMesh'U2Skaarj.U2Skaarj2''
ObjectProperty Engine.Actor.Skins.Skins: unresolved reference to 'texture'U2Skaarjtex.new.Sbody''
ObjectProperty Engine.Actor.Skins.Skins: unresolved reference to 'texture'U2Skaarjtex.new.Shead''
Compile aborted due to errors.
Failure - 3 error(s), 2 warning(s)
Code:
ObjectProperty Skins.Skins: unresolved reference to texture'U2Skaarjtex.new.Shead'.

Explanation

The compiler wasn't able to find the texture object named U2Skaarjtex.new.Shead you tried to set the Skins variable to in the "defaultproperties" section.
Die Warnungen sind nur eine Nebensache und denen werde ich mich später annehmen. Erst will ich mich meinem Hauptproblem annehmen.
Wie man sehen kann, können die Texturen, sowie Animationen, nicht gefunden werden.

Folgendes habe ich bereits getan/versucht:
Ich habe (wie man im Code sieht) die Packages zu Beginn des Codes in die Klasse geladen:
Code:
#exec OBJ LOAD FILE=U2Skaarj.ukx
#exec OBJ LOAD FILE=SkaarjGibs.usx //werden laut Compiler verlangt, wieso weiss ich nicht. Zugehoerige Texturdatei (HumangibTex) fehlt noch im Code
#exec OBJ LOAD FILE=U2Skaarjtex.utx
und hier der Part aus den DefaultProperties:
Code:
mesh=SkeletalMesh'U2Skaarj.U2Skaarj2'
     Skins(0)=texture'U2Skaarjtex.new.Sbody'
     Skins(1)=texture'U2Skaarjtex.new.Shead'
Ich habe auch überprüft, ob die Namen korrekt geschrieben sind. Habe ich schon x-mal gemacht, nur um dann festzustellen, dass ich alles richtig aufgeschrieben habe..


Wahrscheinlich habe ich einen ganz dummen Fehler gemacht, den ich einfach nicht sehe.
Ich bin für jegliche Hilfe überaus dankbar, denn wäre ja schade, wenn ich die Meshes nicht für eines meiner Freizeitprojekte nutzen könnte (U1 Meshes passen in eine UE2 Umgebung nur schlecht rein), nur weil ich (momentan) zu dumm dazu bin und später dann die Motivation verliere
Sly. ist offline   Mit Zitat antworten
Alt 12.02.2011, 08:41   #2
Wormbo
Digitaliban
 
Benutzerbild von Wormbo
 
Registriert seit: 13.11.2009
Beiträge: 2.101
Beigetretene Cups: 0
Cup Siege: 0
Downloads: 116
Uploads: 48
Standard

Moment, du kompilierst nicht wirklich ein Package mit dem Namen "myLevel" außerhalb des UnrealEd? Das ist ein Packagename den man niemals belegen darf. Wenn du dein Package später in die Map integieren möchtest, verwendest du "obj load file=packagename package=mylevel" an der Editorkonsole.
__________________
Wormbos UT/UT2004/UT3-Mods | YouTube-Kanal | PlanetJailbreak | Unreal Wiki | Liandri Archives
Zitat:
Zitat von Thorsten Denkler, SZ
Diese Freiheit ist in Gefahr. Aber nicht durch die feigen Attentäter von Paris. Nicht durch die Attentäter vom 11. September, von Madrid oder London. Solche Taten fordern den Rechtsstaat heraus. In ernste Gefahr gerät die freie Gesellschaft nur durch die Angst der Menschen, die in ihr leben. Und durch Politiker, die sich dieser Ängste bedienen.
Wormbo ist offline   Mit Zitat antworten
Alt 12.02.2011, 19:19   #3
Sly.
UT-Freak
 
Benutzerbild von Sly.
 
Registriert seit: 14.04.2010
Ort: zu Hause
Beiträge: 3.230
Beigetretene Cups: 0
Cup Siege: 0
Downloads: 62
Uploads: 7
Standard

Naja, ich habe mal in einem Tutorial gelesen (wo genau, weiß ich nicht mehr, auch schon lange her), dass das angeblich gehen soll, aber wenn du es sagst, dann ändere ich das lieber. Ich denke mal du hast da wesentlich mehr Ahnung.

PS: Gesagt, getan. Hab's jetzt umgeändert.

EDIT: Gerade vorhin weitere Dateien gefunden, die im Zusammenhang mit den Meshes stehen. Scheint so, als ob die Errors einfach damit zu tun haben, dass ich ein paar Dateien verbummelt habe (Schande über mein Haupt!) Ich habe jetzt nur noch 2 Errors, die Texturen. Ich denke mal das kriege ich ab hier schon hin. Auf jeden Fall schon mein ein großes, fettes "Danke" für die Hilfe Wormbo

EDIT2: *glücklich* Geschafft.

EDIT3: Das mit den Texturen war simpel: Ich hatte Skins(0) bzw. Skins(1)=Texture'Name der Textur', doch es waren Shader, also musste es Skins(Nummer)=Shader'Name der Textur' heißen.

Geändert von Sly. (13.02.2011 um 00:52 Uhr)
Sly. ist offline   Mit Zitat antworten
Antwort

Stichworte
animationen, code, skaarj, texturen, unreal2


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
(UED3) Texturen in Terrain Problem Eisbaer UnrealEd & Mapping 2 14.01.2011 18:21


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
CopyRight-Licence © 2000 - 2018 by UTzone.de