I'm writing a mod component for Siege of Dragonspear and I found that some of the characters that appear at the beginning of the game are somehow eluding my patching attempts:
Could you help identify the name of their CRE files?
I'm indeed having a hard time with these CREs. The lady in my first screenshot appears to be BDSHIS01.CRE as you mentioned; however BDSHIS01.CRE, the same used by his male friend, is in fact a male CRE. Whatever gives her the female appearance is defaulting to BG2 sprites even if I patched every CRE to use BG1's. Where can I find cutscenes? Perhaps it's a script within the cutscene that does it and I can amend it.
As for the Flaming Fist fellows, they seem to ignore the colors set in their CRE files and just display blue and gold regardless. Do you know whether there is a way for me to undo this and make them use their CRE colors?
The SoD intro cutscene is called BDINTRO.BCS and is executed by the starting area script (BD0120.BCS). The relevant cutscene script starts around line 523. Btw, it contains the script action ActionOverride("intro_follower2",Polymorph(FIGHTER_FEMALE_HUMAN)) which is probably the reason for your troubles with the CREs.
All of them are wearing cloaks with "Set Color" effects for every color location, overriding whatever values you set in the CRE file. The Flaming Fist have cloaks "BDFF1000.ITM" and "BDFF1002.ITM". The Followers of Sarevok have cloak "UNIBBEG.ITM". You would need to edit the colors set by these cloaks. There are two other such cloaks, "BDFINCA1.ITM" and "BDFINCA2.ITM", used by Caelar Argent for the same purpose.
The second Follower of Sarevok has its animation altered by script "BDINTRO.BCS", towards the bottom:
...
IF
True()
THEN
RESPONSE #100
CutSceneId(Player1)
ApplySpellRES("bdslow","intro_follower2") // No such index
ActionOverride("intro_follower2",Polymorph(FIGHTER_FEMALE_HUMAN))
...
When the Area specifies a label for the creature, that label will be used in scripts in place of their script name. To find script references to creatures such as this, take their "label" in the area file, "INTRO_FOLLOWER2", and do a Search -> Text Search -> BCS(match case off) for that name.
Indeed, that polymorphing script is referencing the BG2 female fighter animation, so I'll need to change that to my BG1 animation instead. Can I target a specific line from within the bcs with WeiDU? Like, "find the line with "polymorph(FIGHTER_FEMALE_HUMAN)" and change it to whatever I want"?
The intro guards had been set up for quite a long time before the VO came along. It was simply quicker to swap the animation than creating a brand new creature for that small scene.
But anyway, here is some WeiDU for you.
COPY_EXISTING bdintro.bcs override
DECOMPILE_AND_PATCH BEGIN
REPLACE_TEXTUALLY ~FIGHTER_FEMALE_HUMAN~ ~FIGHTER_FEMALE_HUMAN_BG1~
END
BUT_ONLY
All of them are wearing cloaks with "Set Color" effects for every color location, overriding whatever values you set in the CRE file. The Flaming Fist have cloaks "BDFF1000.ITM" and "BDFF1002.ITM". The Followers of Sarevok have cloak "UNIBBEG.ITM". You would need to edit the colors set by these cloaks. There are two other such cloaks, "BDFINCA1.ITM" and "BDFINCA2.ITM", used by Caelar Argent for the same purpose.
There's also a bunch of UNI****.ITM uniforms, including Daggerford, Waterdeep, Flaming Fist, Chill, Crusaders etc.
I've run Balquo's code but WeiDU says my animation isn't found in ANIMATE.IDS.
Thing is, I'm running the APPEND ~ANIMATE.IDS~ code before patching the BCS, and indeed Near Infinity shows my BG1 female fighter animation right there within ANIMATE.IDS. The name I'm using is BG1_FIGHTER_HUMAN_FEMALE, so I modified @Balquo's code to use it. Not sure why WeiDU doesn't pick it up. Can I amend the BCS file to use the animation slot code instead? My animation is in 0x5604
EDIT: It does work using FIGHTER_FEMALE_HUMAN_BG1 as Balquo originally wrote, as that animation appears to already be in the game files, although the INI is setup incorrectly. I would prefer to reference my own, but I'll inject code to change the INI of the existing one if it comes to that.
Comments
BDFF1000
BDFF1001
BDFF1002
Easy way to find them: open the Area, turn on Layers->Actors, then click on them:
It won't work for Global creatures or those spawned by scripts.
How can I see the name of the area I'm in?
Use the Ctrl+M debug.
I'm indeed having a hard time with these CREs. The lady in my first screenshot appears to be BDSHIS01.CRE as you mentioned; however BDSHIS01.CRE, the same used by his male friend, is in fact a male CRE. Whatever gives her the female appearance is defaulting to BG2 sprites even if I patched every CRE to use BG1's. Where can I find cutscenes? Perhaps it's a script within the cutscene that does it and I can amend it.
As for the Flaming Fist fellows, they seem to ignore the colors set in their CRE files and just display blue and gold regardless. Do you know whether there is a way for me to undo this and make them use their CRE colors?
The Flaming Fist have cloaks "BDFF1000.ITM" and "BDFF1002.ITM".
The Followers of Sarevok have cloak "UNIBBEG.ITM".
You would need to edit the colors set by these cloaks.
There are two other such cloaks, "BDFINCA1.ITM" and "BDFINCA2.ITM", used by Caelar Argent for the same purpose.
The second Follower of Sarevok has its animation altered by script "BDINTRO.BCS", towards the bottom: When the Area specifies a label for the creature, that label will be used in scripts in place of their script name. To find script references to creatures such as this, take their "label" in the area file, "INTRO_FOLLOWER2", and do a Search -> Text Search -> BCS(match case off) for that name.
Indeed, that polymorphing script is referencing the BG2 female fighter animation, so I'll need to change that to my BG1 animation instead. Can I target a specific line from within the bcs with WeiDU? Like, "find the line with "polymorph(FIGHTER_FEMALE_HUMAN)" and change it to whatever I want"?
But anyway, here is some WeiDU for you.
Thing is, I'm running the APPEND ~ANIMATE.IDS~ code before patching the BCS, and indeed Near Infinity shows my BG1 female fighter animation right there within ANIMATE.IDS. The name I'm using is BG1_FIGHTER_HUMAN_FEMALE, so I modified @Balquo's code to use it. Not sure why WeiDU doesn't pick it up. Can I amend the BCS file to use the animation slot code instead? My animation is in 0x5604
EDIT: It does work using FIGHTER_FEMALE_HUMAN_BG1 as Balquo originally wrote, as that animation appears to already be in the game files, although the INI is setup incorrectly. I would prefer to reference my own, but I'll inject code to change the INI of the existing one if it comes to that.