Sprite Edits

Search and find cool Skins, or introduce your own ones!

Sprite Edits

Postby LannFyre » Mon Jan 25, 2016 12:53 am

EDIT:
Standing and walking directional sprites of Fei Fong Wong from XenoGears available now! I got a little busy with life so the running and jumping sprites still need to be ripped, but I shall get those out as soon as possible. I'll post screens of the sprites when I also have something to show them off. Ultimately these sprites are intended as place holders for my own mod, but I thought I'd share them because why not.
Attachments
RPG_Test_Sprite.utx
(3.81 MiB) Downloaded 128 times
Last edited by LannFyre on Sat Sep 16, 2017 10:17 am, edited 3 times in total.
<<| http://uncodex.ut-files.com/ |>>

Code reference for UGold, UT99, Unreal2, UT2k3, UT3

Additional Beyond Unreal Wiki Links
wiki.beyondunreal.com/Legacy:Console_Bar
wiki.beyondunreal.com/Exec_commands#Load
wiki.beyondunreal.com/Legacy:Exec_Directive#Loading_Other_Packages
wiki.beyondunreal.com/Legacy:Config_Vars_And_.Ini_Files
wiki.beyondunreal.com/Legacy:INT_File
User avatar
LannFyre
Skilled
 
Posts: 233
Joined: Sun Dec 28, 2014 1:10 am
Location: Anubitek

Re: Texture test pls?

Postby JackGriffin » Mon Jan 25, 2016 2:52 am

Just tested, not going to take the time to screenshot and convert. It works fine. BTW, you can google whatever you are looking for and add the term "sprite sheet" to get a sheet of animation frames to use. I did that for multiple animated textures I've made and it turns out well.
"You damn kids, back in my time we made the items, maps and games ourselves with an unwieldy engine using counter-intuitive crash-prone tools and we liked it so much we built communities around this which nowadays look like cults because they're quasi-parallel societies based on the same old games." -Hellkeeper
User avatar
JackGriffin
Godlike
 
Posts: 3717
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: Hack coder

Re: Texture test pls?

Postby LannFyre » Mon Jan 25, 2016 3:03 am

Thanks mate, I appreciate it. I'll upload the end result because I bet people would like to see this when it is finished. However, and this may sound rude. . . But go on Google and look for XenoGears sprite sheets. The majority of them are incomplete because sprite rips from the game are apparently pretty difficult to do through emulation and using this tool, that I forget the name of, per screen. Apparently it is like:
> For each frame of gameplay take a screenshot
> Pause the game
> Shrink ePSXe
> Pull up the tool
> Change color palette until it looks right
> Save and put all of the sprites together (because they come in pieces per sprite, per sheet so you'd have like 30 sets of legs here and 20 sets of heads there)
> Repeat.

I would definitely have done that by now if I had found Fei's full sprite sheet online. However Google also personalizes search results so I could just be not seeing results that actually have a full Fei Fong Wong sprite sheet. That being said, it is kinda pointless now as I have the running/walking/idle/jumping animations of at least 2 directions already ripped with only needing to do 3 more. Plus the sprites are just placeholders until I can pay a sprite artist to make new sprites as these are just to be used as a template.
<<| http://uncodex.ut-files.com/ |>>

Code reference for UGold, UT99, Unreal2, UT2k3, UT3

Additional Beyond Unreal Wiki Links
wiki.beyondunreal.com/Legacy:Console_Bar
wiki.beyondunreal.com/Exec_commands#Load
wiki.beyondunreal.com/Legacy:Exec_Directive#Loading_Other_Packages
wiki.beyondunreal.com/Legacy:Config_Vars_And_.Ini_Files
wiki.beyondunreal.com/Legacy:INT_File
User avatar
LannFyre
Skilled
 
Posts: 233
Joined: Sun Dec 28, 2014 1:10 am
Location: Anubitek

Re: [in progress] Fei Sprites

Postby JackGriffin » Mon Jan 25, 2016 3:50 am

Never apologize for adding information brother. I knew you had already seen sprite sheets seeing your choice in what to use ;) I mentioned that more for google searches that ran into this thread. BTW your texture looks not so good in-game. It really needs better res even at half scale.
"You damn kids, back in my time we made the items, maps and games ourselves with an unwieldy engine using counter-intuitive crash-prone tools and we liked it so much we built communities around this which nowadays look like cults because they're quasi-parallel societies based on the same old games." -Hellkeeper
User avatar
JackGriffin
Godlike
 
Posts: 3717
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: Hack coder

Re: Texture test pls?

Postby Gustavo6046 » Mon Jan 25, 2016 3:26 pm

LannFyre wrote:([...] you'd have like 30 sets of legs here and 20 sets of heads there)


WRONG! Since each head had 2 legs and 2 arms and 1 body, if you have 20 sets of head, you'd need 40 sets of legs and arms & 20 set of body.

Do the math dawg! ;)
Terrain apprentice.
User avatar
Gustavo6046
Inhuman
 
Posts: 771
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Typing ghost

Re: [in progress] Fei Sprites

Postby papercoffee » Mon Jan 25, 2016 3:33 pm

Gustavo6046 wrote:
LannFyre wrote:([...] you'd have like 30 sets of legs here and 20 sets of heads there)


WRONG! Since each head had 2 legs and 2 arms and 1 body, if you have 20 sets of head, you'd need 40 sets of legs and arms & 20 set of body.

Do the math dawg! ;)

Do the research dawg! :wth:

That's not how sprites work. Believe me, I know what I'm saying.
User avatar
papercoffee
Site Staff
 
Posts: 9079
Joined: Wed Jul 15, 2009 11:36 am
Location: Cologne, the city with the big cathedral.
Personal rank: coffee addicted !!!

Re: [in progress] Fei Sprites

Postby Gustavo6046 » Mon Jan 25, 2016 3:52 pm

papercoffee wrote:Do the research dawg! :wth:

That's not how sprites work. Believe me, I know what I'm saying.


Do the mercy dawg! 8) You are getting too hot angry, you will OVERHEAT!

Anyway, back to the serious. I know that atleast in Doom the sprites aren't divided, they are one only and they are rotational -- the same effect I am trying to achieve:
Code: Select all
//=============================================================================
// RotationalSpriteActor.
//=============================================================================
class RotationalSpriteActor expands Actor;

var(Sprites)   Texture   FrontSprite, FrontRightSprite, RightSprite, RearRightSprite, RearSprite, RearLeftSprite, LeftSprite, FrontLeftSprite;
var            byte   ClientSpriteNum;

function PreBeginPlay()
{
   DrawType = DT_Sprite;
}

replication
{
   reliable if (role == ROLE_Authority)
      FrontSprite, FrontRightSprite, RightSprite, RearRightSprite, RearSprite, RearLeftSprite, LeftSprite, FrontLeftSprite;
   unreliable if (role == ROLE_Authority)
      ClientSpriteNum;
}

function Tick(float Delta)
{
   local Rotator ViewAngle;

   Super.Tick(Delta);
   //do the math

   //placeholder

   //end math estimation of life B-)

   ClientSpriteNum = (ViewAngle.Roll * 8) / 360

   switch ClientSpriteNum:
      case 1:
         Sprite = FrontSprite;
      case 2:
         Sprite = FrontRightSprite;
      case 3:
         Sprite = RightSprite;
      case 4:
         Sprite = RearRightSprite;
      case 5:
         Sprite = RearSprite;
      case 6:
         Sprite = HearLeftSprite;
      case 7:
         Sprite = LeftSprite;
      case 8:
         Sprite = FrontLeftSprite;
      default:
         log('Invalid ClientSpriteNum: ' + string(ClientSpriteNum) + ' Destroying actor...');
         Destroy();
}

Terrain apprentice.
User avatar
Gustavo6046
Inhuman
 
Posts: 771
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Typing ghost

Re: [in progress] Fei Sprites

Postby Dr.Flay » Tue Jan 26, 2016 2:26 am

Gustavo6046 wrote:
papercoffee wrote:Do the research dawg! :wth:

That's not how sprites work. Believe me, I know what I'm saying.


Do the mercy dawg! 8) You are getting too hot angry, you will OVERHEAT!


Then stop annoying him, and as speak politely as you would in someone else's home.
Think about it like this;
Many of us here are at least twice your age (I am 4x as old as you), with at least your entire life-span modding with UEd (Ouch I just felt a whole lot older).
This game is older than you are, and admittedly no-one here knows all there is to know about it, but Papercoffee knows a lot more than you or me.

Learn from me as an Aspergers powered freak. This is something I only learned in my 30s.
When other people are saying things that are wrong or opposite to what I believe, 2 things are possible;
1) I am missing a vital piece of info, so there is a gap in my knowledge that I must now fill.
2) They are missing a vital piece of info, so there is a gap in their knowledge that they must now fill.

By being rude and leaping in with "WRONG!...blah,blah,blah " people do not care if I am right or wrong.
I must find the contextual evidence online, so that I can post proof/reference shared by other people.
However if I cannot find any supporting evidence for this situation, it often leads me to realise that the "fact" I know, does not apply here or is not relevant.

UEd and other development engines often have quirks and oddities that are not shared between them.
Whenever you move to a new engine, throw the rule-book out the window and start a new one.
User avatar
Dr.Flay
Site Staff
 
Posts: 3155
Joined: Thu Aug 04, 2011 9:26 pm
Location: Kernow, UK
Personal rank: Chaos Evangelist

Re: [in progress] Fei Sprites

Postby papercoffee » Wed Jan 27, 2016 2:57 am

Gustavo6046 wrote:Do the mercy dawg! 8) You are getting too hot angry, you will OVERHEAT!

You have to put out more get me angry.
I'm just mildly annoyed that you were disrespectful towards LannFyre, without a reason.
User avatar
papercoffee
Site Staff
 
Posts: 9079
Joined: Wed Jul 15, 2009 11:36 am
Location: Cologne, the city with the big cathedral.
Personal rank: coffee addicted !!!

Re: [in progress] Fei Sprites

Postby LannFyre » Thu Jan 28, 2016 4:37 am

Boom mates, updated the OP. Now you can download the full standing/walking sprites, no running or jumping sprites quite yet. Read the OP and check for download link if you want the sprites. But first, take note: the sprites look bad. Like really bad. The reason they do is because XenoGears pieces together each sprite to animate each part like how Terraria animates its characters. The sprites are pieced together via animation skeleton, but each sprite is scaled according to camera position. Even if this was possible, for the love of all that is good I would never do this. It is a cheaper animation method and probably an ultimately good decision, but god it makes sprite ripping a FUn task.
<<| http://uncodex.ut-files.com/ |>>

Code reference for UGold, UT99, Unreal2, UT2k3, UT3

Additional Beyond Unreal Wiki Links
wiki.beyondunreal.com/Legacy:Console_Bar
wiki.beyondunreal.com/Exec_commands#Load
wiki.beyondunreal.com/Legacy:Exec_Directive#Loading_Other_Packages
wiki.beyondunreal.com/Legacy:Config_Vars_And_.Ini_Files
wiki.beyondunreal.com/Legacy:INT_File
User avatar
LannFyre
Skilled
 
Posts: 233
Joined: Sun Dec 28, 2014 1:10 am
Location: Anubitek

Re: [in progress] Fei Sprites

Postby Gustavo6046 » Thu Jan 28, 2016 2:20 pm

I tried not to being disrespectful with LannFyre. I told her that Doom had sprites animated as a entire just to fill his/her knowledge, um... "database", and I just was surprised that at least somewhere, there were animated SPRITES and PARTIAL SPRITES after 1996 when Quake came and inutilized sprites.

Sorry man, I didn't want this to happen...
Terrain apprentice.
User avatar
Gustavo6046
Inhuman
 
Posts: 771
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Typing ghost

Re: [in progress] Fei Sprites

Postby LannFyre » Mon Sep 05, 2016 11:09 pm

Hey Gustavo, is it cool if I use what you posted and I modify it a bit? I want to see about putting it into a manager that adjusts based on a camera's position.
<<| http://uncodex.ut-files.com/ |>>

Code reference for UGold, UT99, Unreal2, UT2k3, UT3

Additional Beyond Unreal Wiki Links
wiki.beyondunreal.com/Legacy:Console_Bar
wiki.beyondunreal.com/Exec_commands#Load
wiki.beyondunreal.com/Legacy:Exec_Directive#Loading_Other_Packages
wiki.beyondunreal.com/Legacy:Config_Vars_And_.Ini_Files
wiki.beyondunreal.com/Legacy:INT_File
User avatar
LannFyre
Skilled
 
Posts: 233
Joined: Sun Dec 28, 2014 1:10 am
Location: Anubitek

Re: [in progress] Fei Sprites

Postby Gustavo6046 » Tue Sep 06, 2016 12:44 am

LannFyre wrote:Hey Gustavo, is it cool if I use what you posted and I modify it a bit? I want to see about putting it into a manager that adjusts based on a camera's position.


Sure! Anyone is free to use my code :3

(despite mostly being more advanced like this:)
Code: Select all
//=============================================================================
// Breadcrumb.
//=============================================================================
class Breadcrumb expands Actor;

var      BreadcrumbPath   Pathes;
var()   float         MaxBreadcrumbDistance;
var      bool         bFindingPath;

function BreadcrumbPath AppendPathes(BreadcrumbPath A, BreadcrumbPath B)
{
   A.AddPath(B);
   return A;
}

function UpdatePathes()
{   
   local Breadcrumb BC;
   local Breadcrumbpath NewPath;
   local Breadcrumbpath Current;

   foreach AllActors(class'Breadcrumb', BC)
      if ( BreadcrumbReachable(BC) )
         for ( Current = Pathes; Current != None; Current = Current.Next )
            if ( Current.Next == None )
            {
               NewPath = Spawn(class'BreadcrumbPath', self);

               NewPath.Destination = BC;
               Current.Next = NewPath;

               break;
            }
}

function bool BreadcrumbReachable(Breadcrumb Other)
{
   return FastTrace(Other.Location) && -1024 < Other.Location.Z - Location.Z && Other.Location.Z - Location.Z < 256 && VSize(Other.Location - Location) < MaxBreadcrumbDistance;
}

function BreadcrumbPath FindPathToBreadcrumb(Breadcrumb Destination, BreadcrumbPath Path)
{
   local BreadcrumbPath Current;
   local BreadcrumbPath NewPath;
   local BreadcrumbPath BP;

   for ( Current = Pathes; Current.Next != None; Current = Current.Next )
      if ( Current.Destination == Destination )
         return AppendPathes(Path, Current);
      
      else
         if ( !BreadcrumbInPathes(Current.Destination, Path) )
            return Current.Destination.FindPathToBreadcrumb(Destination, AppendPathes(Path, Current));

   return None;
}

function PostBeginPlay()
{
   UpdatePathes();
}

function bool BreadcrumbInPathes(Breadcrumb Current, BreadcrumbPath Pathes)
{
   local BreadcrumbPath BP;

   for ( BP = Pathes; BP.Next != None; BP = BP.Next )
      if ( BP.Next == Current )
         return true;

   return false;
}

function BreadcrumbPath PathAt(BreadcrumbPath Root, int Index)
{
   local int i;
   local BreadcrumbPath BP;

   for ( BP = Root; BP.Next != None; BP = BP.Next )
   {
      if ( i == Index )
         return BP;

      i++;
   }

   return none;
}

function Leaving(Pawn Other, BreadcrumbPath Next, Breadcrumb Destination)
{
   Next.ControlEntrance(Other, Destination);

   Destination.Entering(Other, Next, Destination);
}

function Entering(Pawn Other, BreadcrumbPath Origin, Breadcrumb Destination);

auto   state()   Activated   {}
   state()   Deactivated   {}

Code: Select all
//=============================================================================
// AutoRocket.
//=============================================================================
class AutoRocket expands UT_SeekingRocket;

var()   float   SeekAcceleration, SeekSpeed, TargetAcquiringRadius, WallAvoidSpeed, WallPredictionFactor, WallAvoidSlowdown;
var      Pawn   User;
var      int      Slowdown;
var      bool   bFoundUser;

replication
{
   reliable if ( Role == ROLE_Authority )
      User,
      Slowdown,
      bFoundUser;
}

simulated event Vector EstimateLocation(Actor Other)
{
   return Other.Location + (Other.Velocity / VSize(Velocity)) * 0.5;
}

simulated event HomeAt(Actor Other)
{
   Velocity *= VSize(Velocity cross (EstimateLocation(Seeking) - Location)) * SeekAcceleration;
   Acceleration = (EstimateLocation(Seeking) - Location) * SeekSpeed;
}

simulated event Actor WillHitWall(optional out Vector Location, optional out Vector OutNormal)
{
   return Trace(Location, OutNormal, Self.Location + Velocity * WallPredictionFactor);
}

simulated event bool CheckSeekable(Pawn Other, Pawn FireAgent)
{
   if
   (
      Other != None
      &&
      (
         FireAgent == None
         ||
         (
            FastTrace(Other.Location)
            && Other != FireAgent
            && !Other.IsInState('Dying')
            &&
            (
               (
                  ScriptedPawn(FireAgent) != None
                  && ScriptedPawn(FireAgent).AttitudeTo(Other) != ATTITUDE_Friendly
               )
               ||
               (
                  ScriptedPawn(Other) != None
                  && ScriptedPawn(Other).AttitudeTo(FireAgent) != ATTITUDE_Friendly
               )
               ||
               (
                  PlayerPawn(FireAgent) != None
                  && Other.AttitudeToPlayer != ATTITUDE_Friendly
                  && Other.PlayerReplicationInfo.Team != FireAgent.PlayerReplicationInfo.Team
               )
               || Other.PlayerReplicationInfo.Team != FireAgent.PlayerReplicationInfo.Team
            )
         )
      )
   )   
   {
      return True;
   }

   return False;
}

function BeginPlay()
{
   if ( Owner == None )
      return;

   if ( Pawn(Owner) != None )
      User = Pawn(Owner);

   else
      User = Pawn(Owner.Owner);

   if ( User == None )
      return;
}

simulated function SetTarget(Pawn Other)
{
   Seeking = Other;

   Log(self@"is now seeking after:"@Other);
}

simulated event Timer()
{
   local Pawn P;
   local Pawn Target;
   local Actor A;
   local Vector WallNorm, WallLoc;

   SetRotation(Rotator(Velocity));

   A = WillHitWall(WallLoc, WallNorm);

   if ( A != None && ( LevelInfo(A) != None || !CheckSeekable(Pawn(A), User) ) && WallNorm dot (Velocity + Acceleration) < 0.9 )
   {
      Velocity /= WallAvoidSlowdown;
      Slowdown *= WallAvoidSlowdown;
      Acceleration -= WallAvoidSpeed * 2 * (WallNorm dot Velocity) * WallNorm;
   }

   else if ( Slowdown > 1 )
   {
      Velocity *= Slowdown;
      Slowdown = 1;
   }

   else bFoundUser = True;

   if ( Seeking != None && ( Pawn(Seeking) == None || !Pawn(Seeking).IsInState('Dying') || ( ScriptedPawn(Seeking) == None && User != None && ScriptedPawn(Seeking).AttitudeTo(User) == ATTITUDE_Friendly ) ) )
   {
      HomeAt(Seeking);
   }

   else
   {
      foreach RadiusActors(class'Pawn', P, TargetAcquiringRadius)
      {
         if ( Target == None || VSize(P.Location - Location) < VSize(Target.Location - Location) )
         {
            Target = P;

            if ( CheckSeekable(Target, User) )
               SetTarget(Target);
         }
      }
   }
}




Also, don't mind what I did ages ago. I was a d#@k back then :P

Also, if you are trying to find for something to de-sheet sprite sheets, then use ShoeBox. Just a tip. It works perfectly for me :)
Terrain apprentice.
User avatar
Gustavo6046
Inhuman
 
Posts: 771
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Typing ghost


Return to Skins

Who is online

Users browsing this forum: No registered users and 1 guest