Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

SFXStuntActor Research and NPC Editing

Semi-technical area to discuss content modding research and discoveries. Technical information necessary for coding tools should be posted in Technical Research on the Coders board.

Re: SFXStuntActor Research and NPC Editing

Postby giftfish » 16 May 2016, 16:59

Kinkojiro wrote:The way to think of archetypes is how Bioware uses them.

...

This is why they use multiple levels of archetypes.

Thanks for expanding on this :) Mostly makes perfect sense.

Kinkojiro wrote:SFXStuntActors are made even more complicated because each has multiple components (Skeleton Mesh components for the head/body/face/headgear, default animations, Talk modules, wrinkle modules, lighting, interaction event modules etc etc). Each of these usually has its own archetype in the stuntactor archetype etc.

Yeah, and I'm seeing that even the base archetypes in many instances have no actual data in their objects. Does that mean it's defaulting to what's in the SFXGame.pcc?

Also, here's something that would be handy to visualize in the toolset: a way to know if an export/import is *being used as* an archetype. Then we'd immediately know if it's being overridden, and *which object* is overriding it. A bit like how the Dialogue Editor now shows which TLK is being referenced for each line.

@Sir -- Any way we can make this happen?

Kinkojiro wrote:BioHeadMorphs
This is where it gets tricky. The object you are looking at is a bioheadmorph. That adjusts the standard archetype very slightly both the mesh (e.g. makes a Turian's fringe longer, or human face) and the materials (changes colors etc) for the head of a certain character.

I have found that editing it is a bit hit and miss. It appears some things are overwritten by the materials used in the level actor or maybe even the archetype. Certainly editing the skintone in my limited experience is generally done via the materials in the ultimate actor. I am guessing here but I think that the final actors materials can override the headmorph but only have a comparatively limited set of variables to work with.

This is where things are still confusing. There's a few things that are still stumping me:

1. MorphFeatures
Inside the BioHeadMorph there's two major groups of properties: FinalSkeleton and MorphFeatures.

What I found with Aethyta was that edits to the FinalSkeleton worked, but edits to MorphFeatures did not. In addition, the SFXStuntactor used (9404) doesn't have an equivalent Biomorphface object directly linked to it or in any of its children, so there's nothing that I've found so far that has the ability to override. The scalar/texture/vector properties are repeated in so many objects, and these aren't repeated anywhere. Therefore, I have no idea why MorphFeatures edits don't work.

2. Property repetition in higher linked objects that aren't referencing archetypes
I mean this in relation to the flow chart. All the pink objects contain repeated properties. Almost always the exact same scalar/vector/texture properties. These are found in the Biomaterialsovveride for the Biomorphface, 2 different MaterialsInstanceConstants for the Body/HeadSMCs, and then the MaterialExpressionParameters for the RvrEffectsMaterialUsers (associated with the SMCs).

None of these have any type of archetype thing going on, so what's the use of repeating all these properties? Editing these likely wouldn't work, as they are children of the Aethyta archetype, anyway, but I haven't tried editing the SFXStuntactor (for the level) counterparts. My guess is that they would also have no effect, since I already know that editing the 8021/8023-25 MaterialInstanceConstants work.

Looking at some of these in tree view gives me a couple ideas. For example, the MaterialExpressionParamaters are part of the Asari package in BIOG_Humanoid_MASTER_MTR_R. So, are these... default values for all asari or something? Then the stuntactor values would override these, even though there's no archetype thing?

3. Other unknowns
There are a few other things I'm wondering about -- some other issues with Kelly -- but they might have been due to flat out inexperience with my first time doing this. I couldn't get the skintone to change for her scalp or her body; only her face. I specifically edited the scalp/body MIC objects (I think), with no changes. No idea how that could be. Edits to Aethyta's body color worked fine, so... I guess I'll see how it goes with Bailey, once I get started on him.

----------

FYI, I put up a list of asari appearance properties in the OP, hidden under a spoiler. I'll do the same thing for each race I do in the future.
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: SFXStuntActor Research and NPC Editing

Postby SirCxyrtyx » 16 May 2016, 17:35

giftfish wrote: 9469, a SkeletalMeshComponent references a MaterialInstanceConstant export (8021) as an archetype. These are different classes and have different properties. This happens in several other instances in both 214/9469/their children.

9469 should be showing 8021 as its Archetype. Are you using an old version of ME3Explorer? The Archetype name display used to be broken, I don't remember when I fixed it.

giftfish wrote:8023/8024/8025 are children of 9404, and are essentially the counterparts of 7974/7975/7976. Edits to the former work in game, and the latter do not. Yet, the trios themselves, aren't directly linked as archetypes. 9472 references 8023 as an archetype (another cross-class thing), but the other two are omitted. How does the game know to use 8023/8024/8025 rather than 7974/7975/7976, then?

8023/etc, are not children of 9404, they are children of 9472, the HeadSMC. They are referenced by 9472's Materials property, which overrides 8022's (the export 9472 is actually Archetype linked to) Materials property. So 7974/7975/7976 are just completely unused.

giftfish wrote:What I found with Aethyta was that edits to the FinalSkeleton worked, but edits to MorphFeatures did not.

I'm assuming that, based on what works to edit, as well as the names of the properties, that MorphFeatures was used by BioWare's editing software as as a user-friendly way to edit things, but actual changes were written to the FinalSkeleton property. You could probably just delete the whole MorphFeatures array and everything would work fine as I doubt the game even reads it.

giftfish wrote:None of these have any type of archetype thing going on, so what's the use of repeating all these properties?

It's stuff used by the editor BioWare used. There is no point in having it in the game files, but that's the case for a lot of things. It's a lot easier to leave everything in than take stuff out that isn't needed for the game to run.
User avatar
SirCxyrtyx
Toolset Lead
 
Posts: 345
Joined: 16 Apr 2014, 00:20
Has thanked: 28 time
Have thanks: 288 time

Re: SFXStuntActor Research and NPC Editing

Postby giftfish » 16 May 2016, 17:57

[quote="SirCxyrtyx"]
9469, a SkeletalMeshComponent references a MaterialInstanceConstant export (8021) as an archetype. These are different classes and have different properties. This happens in several other instances in both 214/9469/their children.

9469 should be showing 8021 as its Archetype. Are you using an old version of ME3Explorer? The Archetype name display used to be broken, I don't remember when I fixed it.

It is; that's exactly what I'm saying above. My confusion is this: they are two different classes. Therefore, they have totally different properties. In other words, it makes sense to me that export 543, a collision cylinder, uses another collision cylinder (531) as an archetype. What doesn't make sense is that 9469, a skeletal mesh component, is using 8021, a MaterialsInstanceConstant, as an archetype.

Edit: Before responding to this, read my next response. Mystery solved.

[quote="SirCxyrtyx"]
8023/8024/8025 are children of 9404, and are essentially the counterparts of 7974/7975/7976. Edits to the former work in game, and the latter do not. Yet, the trios themselves, aren't directly linked as archetypes. 9472 references 8023 as an archetype (another cross-class thing), but the other two are omitted. How does the game know to use 8023/8024/8025 rather than 7974/7975/7976, then?

8023/etc, are not children of 9404, they are children of 9472, the HeadSMC. They are referenced by 9472's Materials property, which overrides 8022's (the export 9472 is actually Archetype linked to) Materials property. So 7974/7975/7976 are just completely unused.

In this case, I didn't mean direct children -- they are two links away -- apologies for that.

Okay, I get it now... I was forgetting to subtract the 1. The 8023 archetype reference for 9472 is actually 8022, which is another HeadSMC, and therefore is the same class. Distracting to have the 8023 export listed right below that. Got it now. Makes sense.

[quote="SirCxyrtyx"]
What I found with Aethyta was that edits to the FinalSkeleton worked, but edits to MorphFeatures did not.

With regards to the BioHeadMorph, I'm assuming that, based on what works to edit, as well as the names of the properties, that MorphFeatures was used by BioWare's editing software as as a user-friendly way to edit things, but actual changes were written to the FinalSkeleton property. You could probably just delete the whole MorphFeatures array and everything would work fine as I doubt the game even reads it.

Oh wow. That would explain things. It might also mean there's no way to actually get the NPCs to fully look like their ME1/2 counterparts. Damn.

[quote="SirCxyrtyx"]
None of these have any type of archetype thing going on, so what's the use of repeating all these properties?

It's stuff used by the editor BioWare used. There is no point in having it in the game files, but that's the case for a lot of things. It's a lot easier to leave everything in than take stuff out that isn't needed for the game to run.

Ugh. That's unfortunate. Makes it very difficult to figure things out >.>

How do you and Kinko know all this ****, lol? Btw, Sir, what about the question in my last post about creating some type of way to see if something is being used as an archetype? So we can more easily tell if something is being overridden?
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time
Top

Re: SFXStuntActor Research and NPC Editing

Postby FemShep » 16 May 2016, 18:57

Archetypes are just partial abstract classes then, it sounds like. Abstract properties are propagated to subclasses even if they aren't used. Sometimes they won't even be visible without looking at the superclass.
Image
ME3Tweaks has modding guides, tools, forums for mods, a modding wiki, and ModMaker, an online mod creation tool.
ME3 Mod Manager, the civilized way of installing and managing ME3 mods.
ME3Tweaks Facebook Page
User avatar
FemShep
Modder
 
Posts: 1101
Joined: 18 Oct 2012, 20:48
Has thanked: 42 time
Have thanks: 76 time

Re: SFXStuntActor Research and NPC Editing

Postby Kinkojiro » 16 May 2016, 23:59

BioHeadMorph - this discussion prompted me to relook at something I was working on. You can copy a headmorph from one file to another so the data is used.

The headmorph object contains a large binary data section - I think this is where the actual data is stored. However it doesn't look like a skeleton mesh, instead a very long list of floating numbers. To me this looks like offsets for vertices on a mesh rather than materials data. At least some of the materials section should work.

How do you and Kinko know all this ****, lol?

For me it is about breaking the game again and again until I work something out.
User avatar
Kinkojiro
Modder
 
Posts: 578
Joined: 02 Dec 2013, 04:14
Has thanked: 233 time
Have thanks: 249 time

Re: SFXStuntActor Research and NPC Editing

Postby giftfish » 17 May 2016, 02:07

[quote="Kinkojiro"]BioHeadMorph - this discussion prompted me to relook at something I was working on. You can copy a headmorph from one file to another so the data is used.

The headmorph object contains a large binary data section - I think this is where the actual data is stored. However it doesn't look like a skeleton mesh, instead a very long list of floating numbers. To me this looks like offsets for vertices on a mesh rather than materials data. At least some of the materials section should work.

That makes sense about the vertices, which is something else I keep coming back to. I keep saying we need a Project Lazarus for NPCs, and that's what it adjusts: the vertices. If we could actually do that, then NPCs would basically look like their old selves.

Kinko, assuming there's binary in the ME2 headmorphs, it wouldn't work to copy the binary from the ME2 object to the ME3 object, would it? I'm not exactly sure how Project Lazarus works. I know it takes the loaded headmorphs of Shepard from ME2 & ME3 and remaps the vertices to make them match as closely as possible, but that's about all I know.

[quote="Kinkojiro"]
How do you and Kinko know all this ****, lol?

For me it is about breaking the game again and again until I work something out.

This is basically what I do for scene editing. I guess it's just a different can of worms :)

I feel much better-equipped to tackle Bailey, now. He's going to be a chore, with being in so many files. Plus, I'd really like to change his body mesh so he isn't so muscular and is more his ME2 self, but... we'll see how that goes.
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time
Top

Previous

Return to Modders' Research

Who is online

Users browsing this forum: No registered users and 0 guests

suspicion-preferred