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.
Sprite Edits
-
- Adept
- Posts: 261
- Joined: Sun Dec 28, 2014 1:10 am
- Location: Anubitek
Sprite Edits
You do not have the required permissions to view the files attached to this post.
Last edited by ANUBITEK on Sat Sep 16, 2017 10:17 am, edited 3 times in total.
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
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
-
- Godlike
- Posts: 3776
- Joined: Fri Jan 14, 2011 1:53 pm
- Personal rank: -Retired-
Re: Texture test pls?
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.
So long, and thanks for all the fish
-
- Adept
- Posts: 261
- Joined: Sun Dec 28, 2014 1:10 am
- Location: Anubitek
Re: Texture test pls?
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.
> 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.
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
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
-
- Godlike
- Posts: 3776
- Joined: Fri Jan 14, 2011 1:53 pm
- Personal rank: -Retired-
Re: [in progress] Fei Sprites
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.

So long, and thanks for all the fish
-
- Godlike
- Posts: 1462
- Joined: Mon Jun 01, 2015 7:08 pm
- Personal rank: Resident Wallaby
- Location: Porto Alegre, Brazil
Re: Texture test pls?
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.LannFyre wrote:([...] you'd have like 30 sets of legs here and 20 sets of heads there)
Do the math dawg!

"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."
— Weapon of Destruction
— Weapon of Destruction
-
- Godlike
- Posts: 10545
- Joined: Wed Jul 15, 2009 11:36 am
- Personal rank: coffee addicted !!!
- Location: Cologne, the city with the big cathedral.
Re: [in progress] Fei Sprites
Do the research dawg!Gustavo6046 wrote: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.LannFyre wrote:([...] you'd have like 30 sets of legs here and 20 sets of heads there)
Do the math dawg!

That's not how sprites work. Believe me, I know what I'm saying.
-
- Godlike
- Posts: 1462
- Joined: Mon Jun 01, 2015 7:08 pm
- Personal rank: Resident Wallaby
- Location: Porto Alegre, Brazil
Re: [in progress] Fei Sprites
Do the mercy dawg!papercoffee wrote: Do the research dawg!![]()
That's not how sprites work. Believe me, I know what I'm saying.

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();
}
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."
— Weapon of Destruction
— Weapon of Destruction
-
- Godlike
- Posts: 3352
- Joined: Thu Aug 04, 2011 9:26 pm
- Personal rank: Chaos Evangelist
- Location: Kernow, UK
Re: [in progress] Fei Sprites
Then stop annoying him, and as speak politely as you would in someone else's home.Gustavo6046 wrote:Do the mercy dawg!papercoffee wrote: Do the research dawg!![]()
That's not how sprites work. Believe me, I know what I'm saying.You are getting too hot angry, you will OVERHEAT!
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.

ChaosUT https://chaoticdreams.org
Your Unreal resources: https://yourunreal.wordpress.com
The UT99/UnReal Directory: https://forumdirectory.freeforums.org
Find me on Steam and GoG
-
- Godlike
- Posts: 10545
- Joined: Wed Jul 15, 2009 11:36 am
- Personal rank: coffee addicted !!!
- Location: Cologne, the city with the big cathedral.
Re: [in progress] Fei Sprites
You have to put out more get me angry.Gustavo6046 wrote: Do the mercy dawg!You are getting too hot angry, you will OVERHEAT!
I'm just mildly annoyed that you were disrespectful towards LannFyre, without a reason.
-
- Adept
- Posts: 261
- Joined: Sun Dec 28, 2014 1:10 am
- Location: Anubitek
Re: [in progress] Fei Sprites
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.
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
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
-
- Godlike
- Posts: 1462
- Joined: Mon Jun 01, 2015 7:08 pm
- Personal rank: Resident Wallaby
- Location: Porto Alegre, Brazil
Re: [in progress] Fei Sprites
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...
Sorry man, I didn't want this to happen...
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."
— Weapon of Destruction
— Weapon of Destruction
-
- Adept
- Posts: 261
- Joined: Sun Dec 28, 2014 1:10 am
- Location: Anubitek
Re: [in progress] Fei Sprites
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.
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
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
-
- Godlike
- Posts: 1462
- Joined: Mon Jun 01, 2015 7:08 pm
- Personal rank: Resident Wallaby
- Location: Porto Alegre, Brazil
Re: [in progress] Fei Sprites
Sure! Anyone is free to use my code :3LannFyre 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.
(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, if you are trying to find for something to de-sheet sprite sheets, then use ShoeBox. Just a tip. It works perfectly for me

"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."
— Weapon of Destruction
— Weapon of Destruction