logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: [1] 2 3 ... 21 Send TopicPrint
Very Hot Topic (More than 25 Replies) [RELEASED] Unreal HD Skins [UT] [227] (Read 54735 times)
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
[RELEASED] Unreal HD Skins [UT] [227]
May 16th, 2016 at 7:46pm
Print Post  
Developer: Lightning Hunter
Status:  RELEASED!



__________________________________________________________________________











Synopsis:
An Unreal227/UT99 High-resolution skins mutator.

Features:
This mutator replaces those old, blurry Unreal/RTNP skins with detailed, high-res versions. My primary goal with this project was to keep the skins looking as faithful as possible, while removing the obvious outdated "pixelation" of the original skins.  In order to achieve this, each skin has been manually reworked. There has been no simple filters or cheesy sharpening techniques used during the skinning process. Each part of every skin has been manually air-brushed and blended.  Hundreds of layers were created to apply overlay detail textures, better looking shadows, better highlights, and more.  The end result is faithful skins that look almost the same from a distance, but far more detailed up-close.  In the case of bigger meshes like the Titan, detail is evident even when viewed from a distance.  Most skins have been increased from the original dimensions of 128x128/256x256 to 2048x2048/4096x4096.

The following skins are replaced for Unreal and RTNP:
-All Monsters/ScriptedPawns/Creatures
-All Inventory
-All Decorations (except the Robot)
-All Gibs
-All Projectiles, except those with animated textures or special effects
-The Gina Skin by Ahaigh (all other player skins are incomplete at this point)

See the readme file for more credits and installation insructions!  I also recommend getting DieHard's S3TC textures, which look great when combined with these Skins.


DOWNLOAD



ALSO TRY THIS:  Return To Na Pali: Ultimate Edition v1.1 HD
For those of you who enjoyed RTNP:UE (or haven't played it yet), a new HD version has been released!  This version of RTNP:UE replaces all the beta and custom skins with HD counterparts.  Playing this in conjunction with UnrealHD will complete the experience! Read more about it at the Moddb page.
« Last Edit: Jan 13th, 2017 at 6:40am by Lightning_Hunter »  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #1 - May 18th, 2016 at 1:06am
Print Post  
Hey sn260591, how do I modify your mutator to add more groups?  I was trying to replace PlayerPawns, but it's not working.  Here is the current code with all my additions.  The new PlayerPawns are defined at the bottom, with the group added near the top.  Also, am I reading correctly that there is a data limit of 32?  This will not work for decorations or inventory, as there are more than 32 of them.  You will also notice that I modified the 'weapon' group to be all 'inventory'.

Edit:  Also, the new boulder skin does not replace the Titan projectiles.  Does a new group for projectile need to be added for this?

Code
Select All
class HDSkins_mutator expands Mutator;

#exec OBJ LOAD FILE=TitanX.u PACKAGE=HDSkins

struct STex
{
	var string	Old[8];
	var string	New[8];
};

struct SData
{
	var string	Mesh;
	var string	MeshNew;
	var bool	bMultiSkins;
	var int	TexNum;
	var STex	Tex[6];
};

var struct SGroup
{
	var int DataNum;
	var SData Data[32];
} Group[4];

function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
	local int g, i, j, m;
	local bool bDone;

	if (Other.Mesh == None)
		return true;

	if (Other.IsA('ScriptedPawn') || Other.IsA('Carcass') || Other.IsA('FlockPawn'))
		g = 0;
	else if (Other.IsA('Decoration'))
		g = 1;
	else if (Other.IsA('Inventory'))
		g = 2;
	else if (Other.IsA('PlayerPawn'))
		g = 3;
	else
		return true;

	for (i = 0; i < Group[g].DataNum; i++)
	{
		if (string(Other.Mesh) ~= Group[g].Data[i].Mesh)
		{
			if (Group[g].Data[i].MeshNew != "")
				Other.Mesh = mesh(DynamicLoadObject(Group[g].Data[i].MeshNew, Class'Mesh'));

			for (j = 0; j < Group[g].Data[i].TexNum; j++)
			{
				if (!(Group[g].Data[i].bMultiSkins))
				{
					if (string(Other.Skin) ~= Group[g].Data[i].Tex[j].Old[0])
					{
						Other.Skin = texture(DynamicLoadObject(Group[g].Data[i].Tex[j].New[0], Class'Texture'));
						return true;
					}
				}
				else
				{
					for (m = 0; m < 8; m++)
					{
						if (Group[g].Data[i].Tex[j].New[m] != "")
						{
							if (string(Other.MultiSkins[m]) ~= Group[g].Data[i].Tex[j].Old[m])
							{
								Other.MultiSkins[m] = texture(DynamicLoadObject(Group[g].Data[i].Tex[j].New[m], Class'Texture'));
								bDone = True;
							}
						}
					}

					if (bDone)
						return true;
				}
			}
		}
	}

	return true;
}

function PreBeginPlay()
{
//ScriptedPawn and Carcass----------------------------------------------------------------------------------
	Group[0].DataNum = 21;

	//SkaarjWarrior Group
	Group[0].Data[0].Mesh = "UnrealShare.Skaarjw";
	Group[0].Data[0].TexNum = 6;
	//Skaarj Warrior
	Group[0].Data[0].Tex[0].Old[0] = "None";
	Group[0].Data[0].Tex[0].New[0] = "HDSkins2.HDSkaarjw1";
	//Skaarj Berserker
	Group[0].Data[0].Tex[1].Old[0] = "UnrealI.Skins.Skaarjw2";
	Group[0].Data[0].Tex[1].New[0] = "HDskins2.HDSkaarjw2";
	//Ice Skaarj
	Group[0].Data[0].Tex[2].Old[0] = "UnrealI.Skins.Skaarjw3";
	Group[0].Data[0].Tex[2].New[0] = "HDskins2.HDSkaarjw3";
	//Skaarj Scout
	Group[0].Data[0].Tex[3].Old[0] = "UnrealShare.Skins.Skaarjw4";
	Group[0].Data[0].Tex[3].New[0] = "HDskins2.HDSkaarjw4";
	//Skaarj Assassin
	Group[0].Data[0].Tex[4].Old[0] = "UnrealI.Skins.Skaarjw5";
	Group[0].Data[0].Tex[4].New[0] = "HDskins2.HDSkaarjw5";
	//Skaarj Lord
	Group[0].Data[0].Tex[5].Old[0] = "UnrealI.Skins.SkaarjL";
	Group[0].Data[0].Tex[5].New[0] = "HDskins2.HDSkaarjL";

	//SkaarjTrooper Group
	Group[0].Data[1].Mesh = "UnrealI.sktrooper";
	Group[0].Data[1].TexNum = 3;
	//Skaarj Trooper
	Group[0].Data[1].Tex[0].Old[0] = "UnrealI.Skins.sktrooper1";
	Group[0].Data[1].Tex[0].New[0] = "HDSkins2.HDsktrooper1";
	//Skaarj Gunner
	Group[0].Data[1].Tex[1].Old[0] = "UnrealI.Skins.sktrooper2";
	Group[0].Data[1].Tex[1].New[0] = "HDskins2.HDsktrooper2";
	//Skaarj Officer
	Group[0].Data[1].Tex[2].Old[0] = "UnrealI.Skins.sktrooper3";
	Group[0].Data[1].Tex[2].New[0] = "HDskins2.HDsktrooper3";

	//Warlord Group
	Group[0].Data[2].Mesh = "UnrealI.WarlordM";
	Group[0].Data[2].bMultiSkins = True;
	Group[0].Data[2].TexNum = 1;
	//Warlord
	Group[0].Data[2].Tex[0].Old[1] = "None";
	Group[0].Data[2].Tex[0].New[1] = "HDSkins2.HDJWarlord1";

	//Skaarj Queen Group
	Group[0].Data[3].Mesh = "UnrealI.SkQueen";
	Group[0].Data[3].bMultiSkins = True;
	Group[0].Data[3].TexNum = 1;
	//Skaarj Queen
	Group[0].Data[3].Tex[0].Old[1] = "None";
	Group[0].Data[3].Tex[0].New[1] = "HDSkins2.HDJQueen1";

	//Pupae Group
	Group[0].Data[4].Mesh = "UnrealI.Pupae1";
	Group[0].Data[4].bMultiSkins = True;
	Group[0].Data[4].TexNum = 1;
	//Pupae
	Group[0].Data[4].Tex[0].Old[1] = "None";
	Group[0].Data[4].Tex[0].New[1] = "HDSkins2.HDJPupae1";

	//Titan Group
	Group[0].Data[5].Mesh = "UnrealI.Titan1";
	Group[0].Data[5].MeshNew = "HDSkins.TitanX";
	Group[0].Data[5].TexNum = 2;
	//Titan
	Group[0].Data[5].Tex[0].Old[0] = "None";
	Group[0].Data[5].Tex[0].New[0] = "HDSkins2.HDJTitan1";
	//Stone Titan
	Group[0].Data[5].Tex[1].Old[0] = "UnrealI.Skins.JTitan2";
	Group[0].Data[5].Tex[1].New[0] = "HDSkins2.HDJTitan2";

	//Brute Group
	Group[0].Data[6].Mesh = "UnrealShare.Brute1";
	Group[0].Data[6].TexNum = 3;
	//Brute
	Group[0].Data[6].Tex[0].Old[0] = "None";
	Group[0].Data[6].Tex[0].New[0] = "HDSkins2.HDBrute1";
	//Behemoth
	Group[0].Data[6].Tex[1].Old[0] = "UnrealI.Skins.Brute2";
	Group[0].Data[6].Tex[1].New[0] = "HDskins2.HDBrute2";
	//Lesser Brute
	Group[0].Data[6].Tex[2].Old[0] = "UnrealShare.Skins.Brute3";
	Group[0].Data[6].Tex[2].New[0] = "HDskins2.HDBrute3";

	//Krall Group
	Group[0].Data[7].Mesh = "UnrealI.KrallM";
	Group[0].Data[7].TexNum = 2;
	//Krall
	Group[0].Data[7].Tex[0].Old[0] = "None";
	Group[0].Data[7].Tex[0].New[0] = "HDSkins2.HDJKrall";
	//Krall Elite
	Group[0].Data[7].Tex[1].Old[0] = "UnrealI.Skins.EKrall";
	Group[0].Data[7].Tex[1].New[0] = "HDSkins2.HDEKrall";

	//Mercenary Group
	Group[0].Data[8].Mesh = "UnrealI.Merc";
	Group[0].Data[8].TexNum = 2;
	//Mercenary
	Group[0].Data[8].Tex[0].Old[0] = "None";
	Group[0].Data[8].Tex[0].New[0] = "HDSkins2.HDJMerc1";
	//Mercenary Elite
	Group[0].Data[8].Tex[1].Old[0] = "UnrealI.Skins.JMerc2";
	Group[0].Data[8].Tex[1].New[0] = "HDSkins2.HDJMerc2";

	//Gasbag Group
	Group[0].Data[9].Mesh = "UnrealI.GasbagM";
	Group[0].Data[9].bMultiSkins = True;
	Group[0].Data[9].TexNum = 1;
	//Gasbag
	Group[0].Data[9].Tex[0].Old[5] = "None";
	Group[0].Data[9].Tex[0].New[5] = "HDSkins2.HDGasbag1";
	Group[0].Data[9].Tex[0].Old[6] = "None";
	Group[0].Data[9].Tex[0].New[6] = "HDSkins2.HDGasbag2";

	//Devilfish Group
	Group[0].Data[10].Mesh = "UnrealShare.fish";
	Group[0].Data[10].bMultiSkins = True;
	Group[0].Data[10].TexNum = 1;
	//Devilfish
	Group[0].Data[10].Tex[0].Old[1] = "None";
	Group[0].Data[10].Tex[0].New[1] = "HDSkins2.HDJFish1";

	//Squid Group
	Group[0].Data[11].Mesh = "UnrealI.Squid1";
	Group[0].Data[11].bMultiSkins = True;
	Group[0].Data[11].TexNum = 1;
	//Squid
	Group[0].Data[11].Tex[0].Old[1] = "None";
	Group[0].Data[11].Tex[0].New[1] = "HDSkins2.HDJSquid1";

	//Fly Group
	Group[0].Data[12].Mesh = "UnrealShare.FlyM";
	Group[0].Data[12].bMultiSkins = True;
	Group[0].Data[12].TexNum = 1;
	//Fly
	Group[0].Data[12].Tex[0].Old[1] = "None";
	Group[0].Data[12].Tex[0].New[1] = "HDSkins2.HDJFly1";

	//Manta Group
	Group[0].Data[13].Mesh = "UnrealShare.Manta1";
	Group[0].Data[13].TexNum = 2;
	//Manta
	Group[0].Data[13].Tex[0].Old[0] = "None";
	Group[0].Data[13].Tex[0].New[0] = "HDSkins2.HDJManta1";
	//Cave Manta
	Group[0].Data[13].Tex[1].Old[0] = "UnrealShare.Skins.JManta2";
	Group[0].Data[13].Tex[1].New[0] = "HDSkins2.HDJManta2";

	//Tentacle Group
	Group[0].Data[14].Mesh = "UnrealShare.Tentacle1";
	Group[0].Data[14].bMultiSkins = True;
	Group[0].Data[14].TexNum = 1;
	//Tentacle
	Group[0].Data[14].Tex[0].Old[1] = "None";
	Group[0].Data[14].Tex[0].New[1] = "HDSkins2.HDJTentacle1";

	//Slith Group
	Group[0].Data[15].Mesh = "UnrealShare.Slith1";
	Group[0].Data[15].TexNum = 1;
	//Slith
	Group[0].Data[15].Tex[0].Old[0] = "None";
	Group[0].Data[15].Tex[0].New[0] = "HDSkins2.HDJSlith1";

	//Cow Group
	Group[0].Data[16].Mesh = "UnrealShare.NaliCow";
	Group[0].Data[16].TexNum = 1;
	//Cow
	Group[0].Data[16].Tex[0].Old[0] = "None";
	Group[0].Data[16].Tex[0].New[0] = "HDSkins2.HDJCow1";

	//Nali Group
	Group[0].Data[17].Mesh = "UnrealShare.Nali1";
	Group[0].Data[17].TexNum = 2;
	//Nali
	Group[0].Data[17].Tex[0].Old[0] = "None";
	Group[0].Data[17].Tex[0].New[0] = "HDSkins2.HDJNali1";
	//Nali Priest
	Group[0].Data[17].Tex[1].Old[0] = "UnrealShare.Skins.JNali2";
	Group[0].Data[17].Tex[1].New[0] = "HDSkins2.HDJNali2";

	//Predator Group
	Group[0].Data[18].Mesh = "Upak.Predator";
	Group[0].Data[18].bMultiSkins = True;
	Group[0].Data[18].TexNum = 1;
	//Predator
	Group[0].Data[18].Tex[0].Old[1] = "None";
	Group[0].Data[18].Tex[0].New[1] = "HDSkins2.HDJPredator1";
	Group[0].Data[18].Tex[0].Old[2] = "None";
	Group[0].Data[18].Tex[0].New[2] = "HDSkins2.HDJPredator2";

	//Spinner Group
	Group[0].Data[19].Mesh = "Upak.Spinner";
	Group[0].Data[19].bMultiSkins = True;
	Group[0].Data[19].TexNum = 1;
	//Spinner
	Group[0].Data[19].Tex[0].Old[1] = "None";
	Group[0].Data[19].Tex[0].New[1] = "HDSkins2.HDJSpinner1";
	Group[0].Data[19].Tex[0].Old[2] = "None";
	Group[0].Data[19].Tex[0].New[2] = "HDSkins2.HDJSpinner2";

	//Crucified Nali
	Group[0].Data[20].Mesh = "UnrealShare.CrossNali";
	Group[0].Data[20].TexNum = 1;
	//Nali
	Group[0].Data[20].Tex[0].Old[0] = "None";
	Group[0].Data[20].Tex[0].New[0] = "HDSkins2.HDJNali1";

//Decorations----------------------------------------------------------------------------------------------
	Group[1].DataNum = 23;

  //Trees

	//Tree1 Group
	Group[1].Data[0].Mesh = "UnrealShare.Tree1M";
	Group[1].Data[0].bMultiSkins = True;
	Group[1].Data[0].TexNum = 1;
	//Tree1
	Group[1].Data[0].Tex[0].Old[1] = "None";
	Group[1].Data[0].Tex[0].New[1] = "HDSkins2.HDJTree11";

	//Tree2 Group
	Group[1].Data[1].Mesh = "UnrealShare.Tree2M";
	Group[1].Data[1].bMultiSkins = True;
	Group[1].Data[1].TexNum = 1;
	//Tree2
	Group[1].Data[1].Tex[0].Old[1] = "None";
	Group[1].Data[1].Tex[0].New[1] = "HDSkins2.HDJTree21";

	//Tree3 Group
	Group[1].Data[2].Mesh = "UnrealShare.Tree3M";
	Group[1].Data[2].bMultiSkins = True;
	Group[1].Data[2].TexNum = 1;
	//Tree3
	Group[1].Data[2].Tex[0].Old[1] = "None";
	Group[1].Data[2].Tex[0].New[1] = "HDSkins2.HDJTree31";

	//Tree4 Group
	Group[1].Data[3].Mesh = "UnrealShare.Tree4M";
	Group[1].Data[3].bMultiSkins = True;
	Group[1].Data[3].TexNum = 1;
	//Tree4
	Group[1].Data[3].Tex[0].Old[1] = "None";
	Group[1].Data[3].Tex[0].New[1] = "HDSkins2.HDJTree41";

	//Tree5 Group
	Group[1].Data[4].Mesh = "UnrealShare.Tree5M";
	Group[1].Data[4].bMultiSkins = True;
	Group[1].Data[4].TexNum = 1;
	//Tree5
	Group[1].Data[4].Tex[0].Old[1] = "None";
	Group[1].Data[4].Tex[0].New[1] = "HDSkins2.HDJTree51";

	//Tree6 Group
	Group[1].Data[5].Mesh = "UnrealShare.Tree6M";
	Group[1].Data[5].bMultiSkins = True;
	Group[1].Data[5].TexNum = 1;
	//Tree6
	Group[1].Data[5].Tex[0].Old[1] = "None";
	Group[1].Data[5].Tex[0].New[1] = "HDSkins2.HDJTree61";

	//Tree7 Group
	Group[1].Data[6].Mesh = "UnrealShare.Tree7M";
	Group[1].Data[6].bMultiSkins = True;
	Group[1].Data[6].TexNum = 1;
	//Tree7
	Group[1].Data[6].Tex[0].Old[1] = "None";
	Group[1].Data[6].Tex[0].New[1] = "HDSkins2.HDJTree71";

	//Tree8 Group
	Group[1].Data[7].Mesh = "UnrealShare.Tree8M";
	Group[1].Data[7].bMultiSkins = True;
	Group[1].Data[7].TexNum = 1;
	//Tree8
	Group[1].Data[7].Tex[0].Old[1] = "None";
	Group[1].Data[7].Tex[0].New[1] = "HDSkins2.HDJTree81";

	//Tree9 Group
	Group[1].Data[8].Mesh = "UnrealShare.Tree9M";
	Group[1].Data[8].bMultiSkins = True;
	Group[1].Data[8].TexNum = 1;
	//Tree9
	Group[1].Data[8].Tex[0].Old[1] = "None";
	Group[1].Data[8].Tex[0].New[1] = "HDSkins2.HDJTree91";

	//Tree10 Group
	Group[1].Data[9].Mesh = "UnrealShare.Tree10M";
	Group[1].Data[9].bMultiSkins = True;
	Group[1].Data[9].TexNum = 1;
	//Tree10
	Group[1].Data[9].Tex[0].Old[1] = "None";
	Group[1].Data[9].Tex[0].New[1] = "HDSkins2.HDJTree101";

	//Tree11 Group
	Group[1].Data[10].Mesh = "UnrealShare.Tree11M";
	Group[1].Data[10].bMultiSkins = True;
	Group[1].Data[10].TexNum = 1;
	//Tree11
	Group[1].Data[10].Tex[0].Old[1] = "None";
	Group[1].Data[10].Tex[0].New[1] = "HDSkins2.HDJTree111";

	//Tree12 Group
	Group[1].Data[11].Mesh = "UnrealShare.Tree12M";
	Group[1].Data[11].bMultiSkins = True;
	Group[1].Data[11].TexNum = 1;
	//Tree12
	Group[1].Data[11].Tex[0].Old[1] = "None";
	Group[1].Data[11].Tex[0].New[1] = "HDSkins2.HDJTree121";

  //Plants

	//Plant1 Group
	Group[1].Data[12].Mesh = "UnrealShare.Plant1M";
	Group[1].Data[12].bMultiSkins = True;
	Group[1].Data[12].TexNum = 1;
	//Plant1
	Group[1].Data[12].Tex[0].Old[1] = "None";
	Group[1].Data[12].Tex[0].New[1] = "HDSkins2.HDJPlant11";

	//Plant2 Group
	Group[1].Data[13].Mesh = "UnrealShare.Plant2M";
	Group[1].Data[13].bMultiSkins = True;
	Group[1].Data[13].TexNum = 1;
	//Plant2
	Group[1].Data[13].Tex[0].Old[1] = "None";
	Group[1].Data[13].Tex[0].New[1] = "HDSkins2.HDJPlant21";

	//Plant3 Group
	Group[1].Data[14].Mesh = "UnrealShare.Plant3M";
	Group[1].Data[14].bMultiSkins = True;
	Group[1].Data[14].TexNum = 1;
	//Plant3
	Group[1].Data[14].Tex[0].Old[1] = "None";
	Group[1].Data[14].Tex[0].New[1] = "HDSkins2.HDJPlant31";

	//Plant4 Group
	Group[1].Data[15].Mesh = "UnrealShare.Plant4M";
	Group[1].Data[15].bMultiSkins = True;
	Group[1].Data[15].TexNum = 1;
	//Plant4
	Group[1].Data[15].Tex[0].Old[1] = "None";
	Group[1].Data[15].Tex[0].New[1] = "HDSkins2.HDJPlant41";

	//Plant5 Group
	Group[1].Data[16].Mesh = "UnrealShare.Plant5M";
	Group[1].Data[16].bMultiSkins = True;
	Group[1].Data[16].TexNum = 1;
	//Plant4
	Group[1].Data[16].Tex[0].Old[1] = "None";
	Group[1].Data[16].Tex[0].New[1] = "HDSkins2.HDJPlant41";

	//Plant6 Group
	Group[1].Data[17].Mesh = "UnrealShare.Plant6M";
	Group[1].Data[17].bMultiSkins = True;
	Group[1].Data[17].TexNum = 1;
	//Plant6
	Group[1].Data[17].Tex[0].Old[1] = "None";
	Group[1].Data[17].Tex[0].New[1] = "HDSkins2.HDJPlant61";

	//Plant7 Group
	Group[1].Data[18].Mesh = "UnrealShare.Plant7M";
	Group[1].Data[18].bMultiSkins = True;
	Group[1].Data[18].TexNum = 1;
	//Plant7
	Group[1].Data[18].Tex[0].Old[1] = "None";
	Group[1].Data[18].Tex[0].New[1] = "HDSkins2.HDJPlant61";

  //Decorations

	//Barrel Group
	Group[1].Data[19].Mesh = "UnrealShare.BarrelM";
	Group[1].Data[19].TexNum = 1;
	//Barrel
	Group[1].Data[19].Tex[0].Old[0] = "UnrealShare.Skins.JBarrel1";
	Group[1].Data[19].Tex[0].New[0] = "HDSkins2.HDJBarrel1";

	//Wooden Box Group
	Group[1].Data[20].Mesh = "UnrealShare.WoodenBoxM";
	Group[1].Data[20].bMultiSkins = True;
	Group[1].Data[20].TexNum = 1;
	//Wooden Box
	Group[1].Data[20].Tex[0].Old[1] = "None";
	Group[1].Data[20].Tex[0].New[1] = "HDSkins2.HDJWoodenBox1";

	//Steel Box Group
	Group[1].Data[21].Mesh = "UnrealShare.SteelBoxM";
	Group[1].Data[21].bMultiSkins = True;
	Group[1].Data[21].TexNum = 1;
	//Steel Box
	Group[1].Data[21].Tex[0].Old[1] = "None";
	Group[1].Data[21].Tex[0].New[1] = "HDSkins2.HDJSteelBox1";

	//Steel Barrel Group
	Group[1].Data[22].Mesh = "UnrealShare.steelbarrelM";
	Group[1].Data[22].TexNum = 2;
	//Steel Barrel
	Group[1].Data[22].Tex[0].Old[0] = "None";
	Group[1].Data[22].Tex[0].New[0] = "HDSkins2.HDJSteelBarrel1";
	//Tarydium Barrel
	Group[1].Data[22].Tex[1].Old[0] = "UnrealShare.Skins.Jsteelbarrel2";
	Group[1].Data[22].Tex[1].New[0] = "HDSkins2.HDJSteelBarrel2";

//Inventory------------------------------------------------------------------------------------
	Group[2].DataNum = 2;

	//Dispersion Pistol Group
	Group[2].Data[0].Mesh = "UnrealShare.DPistolPick";
	Group[2].Data[0].bMultiSkins = True;
	Group[2].Data[0].TexNum = 1;
	//Dispersion Pistol
	Group[2].Data[0].Tex[0].Old[1] = "None";
	Group[2].Data[0].Tex[0].New[1] = "HDSkins2.HDDPistol1";

	//Amplifier Group
	Group[2].Data[1].Mesh = "UnrealShare.AmplifierM";
	Group[2].Data[1].bMultiSkins = True;
	Group[2].Data[1].TexNum = 1;
	//Amplifier
	Group[2].Data[1].Tex[0].Old[1] = "None";
	Group[2].Data[1].Tex[0].New[1] = "HDSkins2.HDDPistol1";

//Player Skins and Carcasses--------------------------------------------------------------------------
	Group[3].DataNum = 2;

	//Female One Group
	Group[3].Data[0].Mesh = "UnrealShare.Female1";
	Group[3].Data[0].TexNum = 2;
	//Gina Default Skin (fixes bug in Unreal)
	Group[3].Data[0].Tex[0].Old[0] = "None";
	Group[3].Data[0].Tex[0].New[0] = "HDSkins2.HDgina";
	//Gina Skin (Just in case someone set the correct skin)
	Group[3].Data[0].Tex[1].Old[0] = "UnrealShare.Skins.Gina";
	Group[3].Data[0].Tex[1].New[0] = "HDSkins2.HDgina";

	//Female One Carcass Group
	Group[3].Data[1].Mesh = "UnrealShare.Fem1body";
	Group[3].Data[1].TexNum = 2;
	//Gina Carcass Default Skin (fixes bug in Unreal)
	Group[3].Data[1].Tex[0].Old[0] = "None";
	Group[3].Data[1].Tex[0].New[0] = "HDSkins2.HDgina";
	//Gina Carcass Skin (Just in case someone set the correct skin)
	Group[3].Data[1].Tex[1].Old[0] = "UnrealShare.Skins.Gina";
	Group[3].Data[1].Tex[1].New[0] = "HDSkins2.HDgina";
}
 

« Last Edit: May 18th, 2016 at 2:54am by Lightning_Hunter »  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
sn260591
Full Member
***
Offline



Posts: 111
Location: Russia
Joined: Aug 17th, 2011
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #2 - May 18th, 2016 at 5:51pm
Print Post  
Quote:
I was trying to replace PlayerPawns, but it's not working.  Here is the current code with all my additions.  The new PlayerPawns are defined at the bottom, with the group added near the top.

I checked it in single player - the texture is replaced.

Quote:
Also, am I reading correctly that there is a data limit of 32?  This will not work for decorations or inventory, as there are more than 32 of them.

This is not the limit, you can put a larger value.

Quote:
Does a new group for projectile need to be added for this?

Yes, apparently, it is necessary to create new group.
  

Sorry for my bad English
Back to top
 
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3200
Joined: Aug 7th, 2011
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #3 - May 18th, 2016 at 7:34pm
Print Post  
Difficulty:

Projectiles have bGameRelevant = true and therefore won't be mutated by mutators.

You'll probably have to use class'PROJECTILENAME'.default.Skin/texture/multiskins[x] = whatever.
  
Back to top
 
IP Logged
 
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #4 - May 18th, 2016 at 8:35pm
Print Post  
sn260591 wrote on May 18th, 2016 at 5:51pm:
I checked it in single player - the texture is replaced.


Did you use my code from above, or did you modify the script yourself?  I can't seem to get my code above to work.  The Gina skin remains the default, and I've checked the texture name and everything else 10 times.  I simply added the line,
Code
Select All
else if (Other.IsA('PlayerPawn'))
		g = 3; 



I also changed the Group[3]; code to be a number 4, which I assumed was necessary:
Code
Select All
var struct SGroup
{
	var int DataNum;
	var SData Data[32];
} Group[4];
 




[]KAOS[]Casey wrote on May 18th, 2016 at 7:34pm:
Difficulty:

Projectiles have bGameRelevant = true and therefore won't be mutated by mutators.

You'll probably have to use class'PROJECTILENAME'.default.Skin/texture/multiskins[x] = whatever.


This will start to get iffy, because the UT Oldskool mod replaces the projectile classes with new classes.  Furthermore, the Limbo difficulty mutator of mine replaces those classes yet again.  Is there a way to replace the projectiles by just checking for the mesh, rather than the class?  This way, the projectile class can be named anything and still be replaced as long as the mesh is "boulder1" for example.
  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3200
Joined: Aug 7th, 2011
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #5 - May 18th, 2016 at 9:02pm
Print Post  
Only way to do that reliably is to use SpawnNotify and not mutator

for what it's worth, 227 also reimplements spawnnotify
  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 940
Joined: Jul 31st, 2008
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #6 - May 19th, 2016 at 3:43am
Print Post  
SpawnNotify is the only way to do this. And you better pre-plan how to deal with mods that are going to cause issues.

To be honest this is flirting very hard with becoming over-ambitious. Monster skins is cool but you ought to do those damn near perfect then call it a mutator. Adding the kitchen sink and trying to reskin the entire game is going to be rife with heartache and aggravation. I can see a ton of coming mod conflicts. The monsters are great, don't kill the project by making it messy. At the very least subdivide it and release the work done already on the pawns.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3200
Joined: Aug 7th, 2011
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #7 - May 19th, 2016 at 4:00am
Print Post  
Only real way to work around it is make texture merged packages, but that would hit anticheat detectors. Hack hell is pretty much the only way to go sadly.
  
Back to top
 
IP Logged
 
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #8 - May 19th, 2016 at 4:31am
Print Post  
gopostal wrote on May 19th, 2016 at 3:43am:
SpawnNotify is the only way to do this. And you better pre-plan how to deal with mods that are going to cause issues.

To be honest this is flirting very hard with becoming over-ambitious. Monster skins is cool but you ought to do those damn near perfect then call it a mutator. Adding the kitchen sink and trying to reskin the entire game is going to be rife with heartache and aggravation. I can see a ton of coming mod conflicts. The monsters are great, don't kill the project by making it messy. At the very least subdivide it and release the work done already on the pawns.


Don't worry.  I am very thorough with my projects, and would never allow anything to conflict with other mods. Also, I never bite off more than I can chew when it comes to the scale of my projects.  To date, I have released every major project I ever worked on for Unreal, and none of them took more than 12 months max.  I also take pride in making sure they are polished off (there will be beta testers with this before a release).  You might be familiar with my track record already (mapper for the Deja Vu Map pack, Author of the RTNP Ultimate Edition, the Limbo difficulty mod, UT Classic Map Packs, and countless other tiny projects).

The Monster skins for this mod are already 100% complete to my satisfaction.  A handful of decorations have already been completed by Ahaigh, so I've been working on implementing those skins (I finished 90% of it this week).  I plan to at least complete the major decorations next.  If I get tired of working on skins, then I will just release the project with what I've got.  If someone steps up to the plate and decides to work on the weapons, then great.  If not, then I will likely leave them out for the first release, and possibly work on them later.  For the record, I do not plan on doing every single skin in the game.

After our discussion today, I've already pretty much decided to leave out projectile skins.  It was just a quick thought anyway, since the boulder is obviously low-res when the Titans throw it.  Unless someone figures out a simple hack that is sure not to cause conflicts with other mods, then I won't add the boulder skin with the Titan projectiles.
  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
sn260591
Full Member
***
Offline



Posts: 111
Location: Russia
Joined: Aug 17th, 2011
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #9 - May 19th, 2016 at 1:37pm
Print Post  
Lightning_Hunter wrote on May 18th, 2016 at 8:35pm:
I can't seem to get my code above to work.  The Gina skin remains the default, and I've checked the texture name and everything else 10 times.

Hmm, I once again checked mutator in Unreal227, and it really does not work. The texture is replaced only if the Skin parameter is empty in User.ini.
To edit the properties of the players need to use ModifyPlayer function in ut99, but Unreal227 not have this function.
  

Sorry for my bad English
Back to top
 
IP Logged
 
han
Global Moderator
Unreal Rendering Guru
Developer Team
*****
Offline


Oldunreal member

Posts: 572
Location: Germany
Joined: Dec 10th, 2014
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #10 - May 19th, 2016 at 2:15pm
Print Post  
One idea for an ugly hack would be to use Mutators MutatedDefaultWeapon() function and iterate over all PlayerPawns (using Level.PawnList) and modify the skins.
  

HX on Mod DB. Revision on Steam. Löffels on Patreon.
Back to top
 
IP Logged
 
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #11 - May 19th, 2016 at 8:34pm
Print Post  
That's a shame that it requires a hack to get the player skins replaced...  I may just leave the high-res Gina skin out of the mod if that's the case.  The other skins are not done, nor do I have plans to do them at this time.
  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 940
Joined: Jul 31st, 2008
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #12 - May 20th, 2016 at 1:44am
Print Post  
If all else fails you could copy the way I did it in goCostume. It's not as pretty or elegant but it works just fine online.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #13 - May 20th, 2016 at 6:28am
Print Post  
gopostal wrote on May 20th, 2016 at 1:44am:
If all else fails you could copy the way I did it in goCostume. It's not as pretty or elegant but it works just fine online.


I might take a look at it sometime.  At the very least, the Gina skin works on the carcasses; just not the player skins.

For the life of me, I can't figure out why the Knife texture won't be replaced.  The code appears fine, and the Knife is just a decoration after all.  Here is the code for it:

Code
Select All
	//Knife Group
	Group[1].Data[34].Mesh = "UnrealShare.KnifeM";
	Group[1].Data[34].bMultiSkins = True;
	Group[1].Data[34].TexNum = 1;
	//Knife
	Group[1].Data[34].Tex[0].Old[1] = "None";
	Group[1].Data[34].Tex[0].New[1] = "HDSkins2.HDJLantern1";
 



This is the same code I've been using for all decors that have the texture set to multiskin 1, and it's not working.  Strange.

Edit #2:  Ahhhh.  I had to change "var SData Data[32];" to something higher (I picked 64), otherwise the skins were maxed out at 32.  Strangely enough, the last skin in the group would always load, even if it was higher than 32!
« Last Edit: May 20th, 2016 at 7:45am by Lightning_Hunter »  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
Lightning_Hunter
Senior Member
****
Offline



Posts: 267
Location: somewhere on Earth
Joined: Mar 4th, 2003
Gender: Male
Re: High-Res Skin Project / Request for Skinners!
Reply #14 - May 21st, 2016 at 6:17am
Print Post  
Here is some more content for people to check out.  I have added these items to the completed skins list.

New Steel crate skin by me.  The Wooden Crate, Barrel, and steel barrel skins also shown in this screenshot were created by Ahaigh:


Table & Chair Skin by me.  The Knife skin was created by Ahaigh.  The candles aren't done yet:


Amplifier Skin by Ahaigh, but modified by me:


Nali Fruit and Bandage skin by Ahaigh but heavily modified by me:


Sludge Barrel by me:
  

For High-Res Unreal skins, click here.
Back to top
IP Logged
 
Page Index Toggle Pages: [1] 2 3 ... 21
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo