The shots don't look so bad... (56k take a nap)

Discuss every aspect of HDTP here.

Moderator: HDTP Team

Forum rules
Please do not feed the trolls.
User avatar
r00tb33r
MJ12
Posts: 410
Joined: Mon Apr 16, 2007 5:21 am
Location: fuckin' A

Post by r00tb33r »

DDL wrote:Wait, what exactly are you trying to do, here?

And why deusexcharacters? And why deusexcharacters as a utx? And why via unrealEd?

Need more detail!
I would like to change some textures, including UI and some character textures. Keeping the same resolution.
I have only tried it in UT before now, and it seemed to be able to add/remove character textures. That effort led to a crash in UT, but it does mean that I changed something. I've been trying to do the same in Deus Ex, but unfortunately I can't import stuff to the right group and name the texture right because UnrealEd does not support such long names.
For example, I exported(pcx) a glasses frame, edited it in Gimp, and fail upon trying to import it, because I can't type the full length of "DeusExCharacters".
I am using the version of UnrealEd included in the SDK download from the link above.
I have no idea where Deus Ex gets it's textures... Can it read from DeusExCharacters.utx in the Textures directory? Right now it does not.
Or do I have to compile a .u file? If so how do I do it to include the textures I made in those .utx files?
Naming imported textures needs to be addressed first though. If not using UnrealEd, what tool should I be using for replacing textures? It would be perfect if I could just change an original texture without touching the settings for it.
User avatar
Jonas
Off Topic Productions
Off Topic Productions
Posts: 14224
Joined: Sat Apr 24, 2004 9:21 pm
Location: Hafnia

Post by Jonas »

Deus Ex stores a lot of its textures in its .u files. This goes for all the items, decorations, and characters in the game - notice that there is no DeusExCharacters.utx, since the character textures are all in the .u file with the models.

You'll want to use WotGreal to extract DeusExCharacters.u and then override the relevant texture files and re-compile the package with uccmake.bat (which I don't remember whether or not was included in the SDK, otherwise Google around a bit and it should be easy to find - or DDL may have a link to it somewhere). Once you've compiled your modified DeusExCharacters.u package, make sure you back up the original and then replace it with your new one, and all your changes should show up in-game :)
Jonas Wæver
Chief Poking Manager of TNM

I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
DDL
Traditional Evil Scientist
Traditional Evil Scientist
Posts: 3791
Joined: Mon Oct 17, 2005 10:03 am

Post by DDL »

NB: this isn't actually possible with the current set up we have, I don't think.

To recompile deusexcharacters you'll have to export all the textures, and all the meshes. Currently there is no easy way to export the meshes in even a READABLE format, and exporting them in a fashion that will allow you to reimport them is....pretty much damn near impossible.

And even if it was, it'd be a ludicrous process: exporting textures leaves the .pcx files exported with the filenames they had in the game, not the filenames they were originally imported with: take this line for instance..

Code: Select all

#exec TEXTURE IMPORT NAME=PigeonTex1 FILE=Models\Pigeon.pcx GROUP=Skins
That's finding a texture called pigeon.pcx and importing it as pigeontex1. It will be exported as pigeontex1.pcx, so before recompiling you'd have to change the filename back to pigeon.pcx.

You'd have to do this for all instances of this sort of renaming, and there are a SHITLOAD of them.


So: don't do that. Change deusex.u instead (if you're deadset on altering textures to your liking).

In the editor, select classes in the browser (on the right) and hit export all. Wait, coz it'll pause for quite a while. It has now exported all the code.

Now make a .utx for your textures (you could import them manually via code, but to be honest, you might as well do it via the editor since you've already got the hang of that). Call it whatever you like, and call the textures whatever you like.

For example, lets call the .utx "myNewTextures.utx" and one of the textures "MyPDentonJKT". Give it a group of "chars".

Right, so we want to apply our new jacket texture to paul denton, so look in your deusex folder, find another folder called deusex: it should have a folder called classes in it. BACK THIS FOLDER UP, just in case. Now find pauldenton.uc inside the classes folder. Open it with notepad.

First things first, we want to force the game to load our .utx package, or else it'll never find the texture at compile time and spaz out and generally be a spoilsport.

So, beneath "Class PaulDenton extends HumanMilitary;"

put the line

Code: Select all

#exec obj load file=myNewTextures
Job done. Now find the defaultproperties at the bottom and work out which multiskin assignments correspond to paul's jacket. I find Dex's multiskins table super helpful for this
http://www.planetdeusex.com/constructor ... shskin.htm

So where it says
multiskins(1)=texture'deusexcharacters.pauldentontex1'
or whatever, change it to multiskins(1)=texture'mynewtextures.chars.MyPDentonJKT'

And save the file.

Now, go to your system folder, and rename deusex.u to BACKUP_Deusex.u, so you still have it if all goes tits up. Now you should have ucc.exe in your system folder if you have the editor, if you don't, then, shit.

Assuming you do, open a commandprompt and navigate to your deusex\system folder (yay DOS stuff). When there, type ucc make, and watch as the screen scrolls like a madthing.

At the end, assuming you've done everything ok, you'll be asked if you want to rebuild headers. You do NOT.

And that should be it: when you run DX now, you should find that paul has your jacket texture, not his original.


Now, to do this with the HDTP version of deusex.u....it's trickier. And it's late, so more tomorrow if you're desperate.
User avatar
Jonas
Off Topic Productions
Off Topic Productions
Posts: 14224
Joined: Sat Apr 24, 2004 9:21 pm
Location: Hafnia

Post by Jonas »

Oh... right. You are a lot cleverer than me, DDL :P
Jonas Wæver
Chief Poking Manager of TNM

I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
User avatar
r00tb33r
MJ12
Posts: 410
Joined: Mon Apr 16, 2007 5:21 am
Location: fuckin' A

Post by r00tb33r »

DDL wrote:NB: this isn't actually possible with the current set up we have, I don't think.

To recompile deusexcharacters you'll have to export all the textures, and all the meshes. Currently there is no easy way to export the meshes in even a READABLE format, and exporting them in a fashion that will allow you to reimport them is....pretty much damn near impossible.

And even if it was, it'd be a ludicrous process: exporting textures leaves the .pcx files exported with the filenames they had in the game, not the filenames they were originally imported with: take this line for instance..

Code: Select all

#exec TEXTURE IMPORT NAME=PigeonTex1 FILE=Models\Pigeon.pcx GROUP=Skins
That's finding a texture called pigeon.pcx and importing it as pigeontex1. It will be exported as pigeontex1.pcx, so before recompiling you'd have to change the filename back to pigeon.pcx.

You'd have to do this for all instances of this sort of renaming, and there are a SHITLOAD of them.


So: don't do that. Change deusex.u instead (if you're deadset on altering textures to your liking).

In the editor, select classes in the browser (on the right) and hit export all. Wait, coz it'll pause for quite a while. It has now exported all the code.

Now make a .utx for your textures (you could import them manually via code, but to be honest, you might as well do it via the editor since you've already got the hang of that). Call it whatever you like, and call the textures whatever you like.

For example, lets call the .utx "myNewTextures.utx" and one of the textures "MyPDentonJKT". Give it a group of "chars".

Right, so we want to apply our new jacket texture to paul denton, so look in your deusex folder, find another folder called deusex: it should have a folder called classes in it. BACK THIS FOLDER UP, just in case. Now find pauldenton.uc inside the classes folder. Open it with notepad.

First things first, we want to force the game to load our .utx package, or else it'll never find the texture at compile time and spaz out and generally be a spoilsport.

So, beneath "Class PaulDenton extends HumanMilitary;"

put the line

Code: Select all

#exec obj load file=myNewTextures
Job done. Now find the defaultproperties at the bottom and work out which multiskin assignments correspond to paul's jacket. I find Dex's multiskins table super helpful for this
http://www.planetdeusex.com/constructor ... shskin.htm

So where it says
multiskins(1)=texture'deusexcharacters.pauldentontex1'
or whatever, change it to multiskins(1)=texture'mynewtextures.chars.MyPDentonJKT'

And save the file.

Now, go to your system folder, and rename deusex.u to BACKUP_Deusex.u, so you still have it if all goes tits up. Now you should have ucc.exe in your system folder if you have the editor, if you don't, then, shit.

Assuming you do, open a commandprompt and navigate to your deusex\system folder (yay DOS stuff). When there, type ucc make, and watch as the screen scrolls like a madthing.

At the end, assuming you've done everything ok, you'll be asked if you want to rebuild headers. You do NOT.

And that should be it: when you run DX now, you should find that paul has your jacket texture, not his original.


Now, to do this with the HDTP version of deusex.u....it's trickier. And it's late, so more tomorrow if you're desperate.
Thanks so much for the clear directions. In just a couple of minutes I have produced this:
Image
A simple proof of concept. Switched Paul's face with Thug face. I removed the skin case selection from the code because I expected it to interfere with my change.
So I think I get the idea of how to change character textures.
Next question would be how to do this for HDTP. Whats the difference in the procedure?
I was thinking of increasing the character resolution of conversation font... Is there code for that that I could change?
User avatar
NVShacker
Off Topic Productions
Off Topic Productions
Posts: 178
Joined: Sun Sep 03, 2006 4:14 am

Post by NVShacker »

r00tb33r wrote: I was thinking of increasing the character resolution of conversation font... Is there code for that that I could change?
There's a really simple DeusEx.u change, I do something similar for TNM:

Open up ConPlay.uc and replace this:

Code: Select all

     ConversationSpeechFonts(0)=Font'DeusExUI.FontConversation'
     ConversationSpeechFonts(1)=Font'DeusExUI.FontConversationLarge'
     ConversationNameFonts(0)=Font'DeusExUI.FontConversationBold'
     ConversationNameFonts(1)=Font'DeusExUI.FontConversationLargeBold'
with this:

Code: Select all

     ConversationSpeechFonts(0)=Font'DeusExUI.FontConversationLarge'
     ConversationSpeechFonts(1)=Font'DeusExUI.FontConversation'
     ConversationNameFonts(0)=Font'DeusExUI.FontConversationLargeBold'
     ConversationNameFonts(1)=Font'DeusExUI.FontConversationBold'
All this does is swap the "large" and "normal" fonts so higher resolutions get the bigger fonts, I suspect this is just a DX logic bug that went unnoticed.
NVShacker
Are you still there?
User avatar
r00tb33r
MJ12
Posts: 410
Joined: Mon Apr 16, 2007 5:21 am
Location: fuckin' A

Post by r00tb33r »

NVShacker wrote:
r00tb33r wrote: I was thinking of increasing the character resolution of conversation font... Is there code for that that I could change?
There's a really simple DeusEx.u change, I do something similar for TNM:

Open up ConPlay.uc and replace this:

Code: Select all

     ConversationSpeechFonts(0)=Font'DeusExUI.FontConversation'
     ConversationSpeechFonts(1)=Font'DeusExUI.FontConversationLarge'
     ConversationNameFonts(0)=Font'DeusExUI.FontConversationBold'
     ConversationNameFonts(1)=Font'DeusExUI.FontConversationLargeBold'
with this:

Code: Select all

     ConversationSpeechFonts(0)=Font'DeusExUI.FontConversationLarge'
     ConversationSpeechFonts(1)=Font'DeusExUI.FontConversation'
     ConversationNameFonts(0)=Font'DeusExUI.FontConversationLargeBold'
     ConversationNameFonts(1)=Font'DeusExUI.FontConversationBold'
All this does is swap the "large" and "normal" fonts so higher resolutions get the bigger fonts, I suspect this is just a DX logic bug that went unnoticed.
Thanks! Thats just what I was looking for! I saw the various size fonts among UI textures so I thought there had to be a simple way of switching them.
And the result:
Image
Now just need to have all this incorporated into HDTP...

*EDIT*
Meanwhile I tried the UI fix on Wine(Linux), otpUIfix.dll does not work because the C++ runtime (msvcr80.dll) from Microsoft does not run on Wine. Kinda sad cause everything else works fine.
Post Reply