Page 1 of 1

Custom unit skins

Posted: Mon Oct 26, 2009 9:31 pm
by biohazard
biohazard wrote: I found the FAQs methods unsuccessful Maybe it was something I was doing wrong, I don't know, but this is how I do it.



Copy the side folder you want to change skins for (or change anything, really) and paste it in your DATA_ABC\Sides folser. Also copy the Common side folder there, it contains stuff that all the sides collectively use.

Open up the new folder and there should be two files, in addition to the folders, right off the bat. Open [side].req with Notepad. We're going to leave poor [side]shell.req alone, mostly for the purpose that I have no clue what it does.

Remove the lines in quotes for objects you won't be using on your map. For example, if you want to use your everyday average clone sniper, then rid of "ep3_inf_sniper_felucia". It should be rather obvious what ones you need and which you don't, if you've had any experience mapping, and/or looking at class names for objects. That this does is it tells the munger not to look at the files for stuff that you don't need, greatly reducing the filesize of your mod.

Now, go into your DATA_ABC\Sides\[side]\mshs\ folder, and look for the file you want to modify. Infantry and hero skins are prefixed by "[side]_inf_". Open it up in your favorite image editor and reskin away. Be sure when you save your image that you switch RLE compression off!

Okay, now go to your DATA_ABC\Common\Scripts\ABC\ directory and open up ABCc_con.lua with Notepad if you modified CIS or rep, and ABCg_con.lua if you changed imp or rebels. Go down to where it says ReadDataFile("SIDE\\[side].lvl" for the side you modified, and put a big fat dc: like shown: ReadDataFile("dc:SIDE\\[side].lvl" Now save, of course.

Now you're ready to munge. Go to your DATA_ABC\_BUILD\ folder and run visualmunge. But stop! Don't hit munge yet! You need to hit that little dropdown menu that says "NOTHING" for sides and make it say "[side]". Also be sure common is checked. Now you can munge.


Congrats! given you don't get any munge errors, your skins and changes should show up a-ok in SWBF2!

Re: Custom unit skins

Posted: Mon Oct 26, 2009 9:41 pm
by kinetosimpetus
Did you copy the "Common" side folder as well?

Re: Custom unit skins

Posted: Mon Oct 26, 2009 9:43 pm
by biohazard
That I did.

Re: Custom unit skins

Posted: Mon Oct 26, 2009 10:06 pm
by 501st_commander
post the error log.

Re: Custom unit skins

Posted: Mon Oct 26, 2009 10:27 pm
by Fiodis
501st_commander wrote:post the error log.
..which is useless if you have mungelog errors, so post those first if you have any.
biohazard wrote:I put all the infantry skins in my MOD_Data\Sides\[side]\[msh] folder and modified several.
I hope you don't have actual brakets [] in your side and msh folder names.

Re: Custom unit skins

Posted: Tue Oct 27, 2009 6:12 am
by biohazard
no, I just put that because I'm using all 4 normal sides.


Not to mention I did not get an error log (which is odd because I got one previously for having some high poly counts on a couple of my models)



EDIT:
BF2 modtools error log:
Hidden/Spoiler:
Opened logfile BFront2.log 2009-10-27 0612
shell_interface: Entered
shell_interface: gPlatformStr, gOnlineServiceStr, gLangStr, gLangEnum: PC GameSpy english 0
ifs_era_handler - Entered
ifs_era_handler - Exited
shell_interface: No custom_gc_0.lvl
shell_interface: No custom_gc_1.lvl
shell_interface: No custom_gc_2.lvl
shell_interface: No custom_gc_3.lvl
shell_interface: No custom_gc_4.lvl
shell_interface: No custom_gc_5.lvl
shell_interface: No custom_gc_6.lvl
shell_interface: No custom_gc_7.lvl
shell_interface: No custom_gc_8.lvl
shell_interface: No custom_gc_9.lvl
shell_interface: No custom_gc_10.lvl
custom_EraButtonList(): Finished building era button table Known eras buttons: 28
custom_GetGMapEras(): Finished building era table Known eras: 28
custom_GetGMapModes(): Finished building game mode table Known Modes: 39
custom_GetMPGameModeList(): Finished building game mode list table List Length: 40
custom_SetMovieLocation()
custom_GetGCButtonList()
custom_SetMovieLocation()
custom_GetFreeformBattleModeList(): Finished building freeform battle mode list Known Modes: 39
ingame stream movies\crawl.mvs
shell_interface: Opening movie: movies\shell.mvs
shell_interface: Leaving
Mission Checker: Entered addme
Mission Checker: addme: Now listening in on AddDownloadableContent() calls
Mission Checker: Exited addme
prev = none iLastPage = nil
prev = texture iLastPage = 1
prev = texture iLastPage = 2
prev = texture iLastPage = 3
ifs_legal.Exit

Message Severity: 2
.\Source\GameMovie.cpp(399)
Unable to find open movie segment shell_main

ifs_saveop_DoOps LoadFileList
ifs_saveop_DoOps LoadFileList
ifs_saveop_DoOps LoadProfile
ifs_saveop_DoOps LoadProfile
ifs_sp_campaign: Input_Accept(): Entered: _tab_instant
missionlist_ExpandMapList()
ifs_missionselect_pcMulti_fnSetMapPreview(): Defaulting index to 1
this.CurButton = check_mode1
cur_button = nil
Checkbox for check_era3 clicked
this.CurButton = check_era3
cur_button = nil
custom_AddMapNew()
custom_printTable(): table: 051111EC
The key, value is: era_g 1
The key, value is: mode_con_c 1
The key, value is: isModLevel 1
The key, value is: mode_1flag_g 1
The key, value is: mode_1flag_c 1
The key, value is: era_c 1
The key, value is: bSelected 1
The key, value is: mode_con_g 1
The key, value is: mode_eli_g 1
The key is mapluafile, the formated value is: KBN<A>_<B>
custom_printTable(): Returning
custom_printTable(): table: 0511672C
The key, value is: key mode_con
The key, value is: subst con
The key, value is: showstr modename.name.con
The key, value is: descstr modename.description.con
The key, value is: icon mode_icon_con
custom_printTable(): Returning
gMapEras.key = era_c Era = era_c subst = c
Adding map: KBNc_con idx: 1
this.CurButton = _map_add
cur_button = nil
this.CurButton = Launch
cur_button = nil

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\StatusDisplay.cpp(489)
StatusDisplay::SetSquadCommand: can't find localize string for 0x276fbbc

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string common.victoryin for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string common.defeatin for HUD text element

Message Severity: 2
.\Source\HUDElementBitmap.cpp(380)
HUD BitmapElement unable to find texture hud_target_hint_offscreen

Message Severity: 2
.\Source\HUDElementBitmap.cpp(380)
HUD BitmapElement unable to find texture hud_target_hint_offscreen

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.weaponOverheat for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.popup.hintTitle for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.popup.pressToContinue for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.popup.pressToContinue for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.popup.objectiveTitle for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.popup.pressToContinue for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.objectives.updated for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.objectives.showdetails for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.objectives.showhints for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.mapdisplay.pressToReturn for HUD text element

Message Severity: 2
.\Source\HUDElementBitmap.cpp(380)
HUD BitmapElement unable to find texture btn_directional_pad_LR

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string ifs.controls.presets.A for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string ifs.controls.presets.B for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.missilelock for HUD text element

Message Severity: 2
.\Source\HUDElementText.cpp(509)
Unable to find localization string game.spawndisplay.commandpost for HUD text element
game_interface: Entered
utility_functions2: Listening on AddUnitClass() calls
utility_functions2: Listening on SetHeroClass() calls
utility_functions2: Listening on ReadDataFile() calls
game_interface: Reading in custom strings
game_interface: No user_script_0.lvl
game_interface: No user_script_1.lvl
game_interface: No user_script_2.lvl
game_interface: No user_script_3.lvl
game_interface: No user_script_4.lvl
game_interface: No user_script_5.lvl
game_interface: No user_script_6.lvl
game_interface: No user_script_7.lvl
game_interface: No user_script_8.lvl
game_interface: No user_script_9.lvl
game_interface: No user_script_10.lvl
ifs_sideselect_fnBuildScreen()
game_interface: Exited

Message Severity: 2
.\Memory\RedMemoryPool.cpp(317)
Memory pool "ClothData" set item count after being allocated

Message Severity: 3
.\Source\Weapon.cpp(1604)
Weapon base class "com_weap_inf_lightsaber" not found

Re: Custom unit skins

Posted: Tue Oct 27, 2009 10:16 am
by Yodakid
Message Severity: 3
.\Source\Weapon.cpp(1604)
Weapon base class "com_weap_inf_lightsaber" not found


Hmm, this just makes me think that the common folder isn't there..

Anyway, post your luas.

Re: Custom unit skins

Posted: Tue Oct 27, 2009 11:51 am
by 501st_commander
Is your common folder in data_ModID/sides? If it is clean and remunge. If its not copy it over then munge.

Re: Custom unit skins

Posted: Tue Oct 27, 2009 4:04 pm
by biohazard
What exactly does cleaning do?

I'd say that might be my problem, I haven't chose to clean it once yet.

Re: Custom unit skins

Posted: Tue Oct 27, 2009 6:34 pm
by AQT
biohazard wrote:What exactly does cleaning do?
Depending on what is checked or what sides are chosen in VisualMunge, it deletes previously munged files.

Re: Custom unit skins

Posted: Tue Oct 27, 2009 9:27 pm
by Fiodis
To expand on that, VM (Visual Munge) munges things based on time stamps. Items that it detects have been modified since the last munge will be munged. This stops you from re-munging files that you haven't opened and resaved. To do this kind of remunge, you need to run a clean first so that VM will munge the files during the remunge.

Sometimes a VM clean won't help. In that case, you must use a manual clean and remunge.

It deletes previously munged files, but not source files, so you needn't worry about it deleting, say, a custom side.

Re: Custom unit skins

Posted: Wed Oct 28, 2009 7:39 pm
by biohazard
Ok, I think I'm on the right track because the units I'm trying to modify don't show up at all in the unit select screen (lol?)

I would be very happy if someone would post a working example of a side folder that only changes a couple of skins for a side, and the modified g_ or c_ con lua.


Thanks in advance.

Re: Custom unit skins

Posted: Tue Nov 03, 2009 3:42 pm
by Diststripe
hey followed http://www.youtube.com/user/AllTheTutor ... KcG0kgqEsM

this tutorial and for some reason I think that it is way off, what is the ttorial that you guys were using??? please help

Re: Custom unit skins

Posted: Tue Nov 03, 2009 3:44 pm
by mswf
The one's that came with the modtools? (they are located in the "documentation" folder of the modtools) They are all a bit difficult to read, but just do it. I know, we all know, they're not fun to read, but there's no easy way around that. Though the only one you really, really, really, really have to read is the "getting_ started.doc" That's elemantary stuff (not even all of it)
Also, you just opened up your own thread, you could ask your questions in your own next time, it makes the forums more tidy. :wink:

Re: Custom unit skins

Posted: Tue Nov 03, 2009 10:07 pm
by Fiodis
That isn't the one that came in the Modtools; it's a link to a video (you can tell by the "youtube" part :wink:)

Check the FAQ thread under Skinning.

Re: Custom unit skins

Posted: Tue Nov 03, 2009 11:22 pm
by Diststripe
I have already read the getting started doc but I guess Ill read it again and get my self familier with it but zi dident hewre anyting about skinning

Re: Custom unit skins

Posted: Tue Nov 03, 2009 11:43 pm
by Fiodis
That's right; it doesn't have anything about skinning. For that, check the FAQ. Also, the shipped Jedi_creation.doc talks, in one part, about how to set up a custom side. However, you may have a hard time understanding that one (I know I certaintly did), and so it'd probably be easier to check the FAQ again (though you should skim through to doc, too).

Re: Custom unit skins

Posted: Wed Nov 04, 2009 7:16 am
by biohazard
I found the FAQs methods unsuccessful Maybe it was something I was doing wrong, I don't know, but this is how I do it.



Copy the side folder you want to change skins for (or change anything, really) and paste it in your DATA_ABC\Sides folser. Also copy the Common side folder there, it contains stuff that all the sides collectively use.

Open up the new folder and there should be two files, in addition to the folders, right off the bat. Open [side].req with Notepad. We're going to leave poor [side]shell.req alone, mostly for the purpose that I have no clue what it does.

Remove the lines in quotes for objects you won't be using on your map. For example, if you want to use your everyday average clone sniper, then rid of "ep3_inf_sniper_felucia". It should be rather obvious what ones you need and which you don't, if you've had any experience mapping, and/or looking at class names for objects. That this does is it tells the munger not to look at the files for stuff that you don't need, greatly reducing the filesize of your mod.

Now, go into your DATA_ABC\Sides\[side]\mshs\ folder, and look for the file you want to modify. Infantry and hero skins are prefixed by "[side]_inf_". Open it up in your favorite image editor and reskin away. Be sure when you save your image that you switch RLE compression off!

Okay, now go to your DATA_ABC\Common\Scripts\ABC\ directory and open up ABCc_con.lua with Notepad if you modified CIS or rep, and ABCg_con.lua if you changed imp or rebels. Go down to where it says ReadDataFile("SIDE\\[side].lvl" for the side you modified, and put a big fat dc: like shown: ReadDataFile("dc:SIDE\\[side].lvl" Now save, of course.

Now you're ready to munge. Go to your DATA_ABC\_BUILD\ folder and run visualmunge. But stop! Don't hit munge yet! You need to hit that little dropdown menu that says "NOTHING" for sides and make it say "[side]". Also be sure common is checked. Now you can munge.


Congrats! given you don't get any munge errors, your skins and changes should show up a-ok in SWBF2!