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

FaceFX and AnimCut$!&&

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: FaceFX and AnimCut$!&&

Postby SirCxyrtyx » 17 Aug 2016, 03:51

I'm not pulling FaceFXAsset data into the editor. In general, those seem to be just a definition of how the FaceFX curves get turned into actual movement of the bones on the face. I don't see any reason to edit that.

However, in BioD_CitCas_530Goodbye.pcc, there are a bunch of FaceFXAsset objs that are each for a specific character, not for a race. In this specific case (and possibly for other animcutscenes as well), these objects seem to contain the actual animation curves. If Deager figures the format out, then adding the ability to edit these specific FaceFXAssets to the editor will be somewhere on my list of things to do.
User avatar
SirCxyrtyx
Toolset Lead
 
Posts: 345
Joined: 16 Apr 2014, 00:20
Has thanked: 28 time
Have thanks: 288 time

Re: FaceFX and AnimCut$!&&

Postby giftfish » 17 Aug 2016, 14:10

SirCxyrtyx wrote:However, in BioD_CitCas_530Goodbye.pcc, there are a bunch of FaceFXAsset objs that are each for a specific character, not for a race. In this specific case (and possibly for other animcutscenes as well), these objects seem to contain the actual animation curves. If Deager figures the format out, then adding the ability to edit these specific FaceFXAssets to the editor will be somewhere on my list of things to do.

Oh wow! I never noticed they were actually FaceFXAssets, b/c BW uses similar naming conventions in the export names for both (FXA). I think this solves a mystery about Thane's romance scene... I'm almost certain it does. I was pretty sure it had something to do with the bones, but it also followed a strange pattern, so I thought something else was also going on.

Here's the deal:

1. The first portion of Thane's scene is taken from Kaidan's. Thane's lipsync work's 90% of the time. I've determined all the times it *works* are during the 5 separate animcutscnes.

2. Peppered in between the animcutscenes are pieces of standard dialogue that use the dialogue wheel. These exist outside of the cutscenes, since player response can vary, and the time sitting at the dialogue wheel can vary. This is where Thane's lipsync doesn't work, but all the other facial expressions *do work*.

3. The second portion of the scene is taken from Garrus's. Thane's lipsync and facial expression works perfectly for all lines, BUT it's overexaggerated.


So, here's what I think is happening:

1. The FaceFXAsset in Kaidan's portion of the scene is used during animcutscenes. Those only animate bones, and since Thane and Kaidan share the same bones, those work perfectly.

2. The regular dialogue portions of Kaidan's use the FXE in the LOC file, and the lipsync for those use mouth phonemes ("m_X"). Thane has none of these anywhere in his dialogues, so I'm, guessing they are incompatible.

3. Garrus is like Thane. He doesn't use phonemes either. So, Garrus' lipsync animates properly for Thane, but it's using the bone data from the turian FaceFXAsset file, which makes it overexaggerated. I edited one line in this part of the scene to test the new FaceFXEditor and once changed to appropriate values for Thane, they look great.


This then leads me to two questions:

1. Why are the phonemes incompatible for Thane? What data is missing and where for those not to work? My guess is the game is using the HumanMaleFXA file in the main PCC for this,so it seems like it should work. I know meshes contain a lot of information and maybe Thane's mesh lacks some... stuff?

2. When first experimenting with Garrus's portion of the scene, I replaced the turian FaceFXAsset with the drell asset to see if it would fix the overexaggeration. It didn't. I don't remember if it made no difference, or if it prevented any animation. But, in light of the above, it seems like doing this in itself should fix all the borked lipsync for that scene, since it would be using Thane's definitions. That was my logic at the time, and the above seems to support that. I decided that maybe that didn't matter b/c the weights are baked into the animation itself? That technically, once the animset is created, the asset really isn't used anymore, it's just there in the files as... a leftover?


SirCxyrtyx wrote:I'm not pulling FaceFXAsset data into the editor. In general, those seem to be just a definition of how the FaceFX curves get turned into actual movement of the bones on the face. I don't see any reason to edit that.

Maybe, maybe not. Model swapping might provide reason. I guess we'll have to wait and see :)
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: FaceFX and AnimCut$!&&

Postby Deager » 17 Aug 2016, 19:42

I have, what I believe to be, bad news for modding but good news for all of our personal lives. I will explain briefly.

I did the maths. The "points" portion I knew was going up in time in insanely minute values, like 1/3 of a second or less per mouth movement, gesture tweak, or whatever. When I clocked in the bytes and divided by 16, it was still over 27,000 lines. 27K!

I then looked at the the list after the points and confirmed that it has about 84 entries which matches the "names" list in this file. And when I added up the values for amount of points for each name, sure enough, I was within 200 of my exact over 27,000 value.

Here's what I think they did and I don't know why such an inefficient programming method was used, but this is probably it. They suck in the FaceFX stuff from some other source and when they suck it in, the program doesn't bother with efficient curves and tangents exactly, it just goes at a set interval or close to a set interval and does tons of points. I can't even imagine how many points are for Jaw+ alone. Actually, I don't have to. I just checked. 193 points.

Now sure, I could be off on a few values here or there, but the fact is, there are
- a crazy number of points
- they are going up in incredibly small amounts in time
- there are no tangents. which kind of makes sense because why bother with a point every 1/3 of second or less?

If anyone else wants to start looking at object 254 in BioD_CitCas_530Goodbye.pcc be my guest. In HxD, I started my hunt at offset 7041DF which looks like the start of the names list. Granted, some values in the names list following it are too high in some cases so I'm not really sure what's going on.

I still know that zeroing out all the values in the points section did stop all mouth movement and nuanced facial movement, but I don't see how we get past 27,000 points for just 3 sentences by Miranda.
User avatar
Deager
Modder
 
Posts: 805
Joined: 16 Feb 2013, 01:37
Has thanked: 284 time
Have thanks: 164 time

Re: FaceFX and AnimCut$!&&

Postby giftfish » 17 Aug 2016, 19:56

@deager -- Hrm. That could definitely be problematic.

My only thoughts is they didn't use any of the automatic FXE generated and did it all by hand. There might be something that autoextrapolates datapoints in or something creating such a crazy amount >.>

This could throw a wrench in my plans a bit. I need to look at part 1 of Kaidan's romance scene and see if the FXA exports have the same copious amounts of hex as your example.
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: FaceFX and AnimCut$!&&

Postby Deager » 17 Aug 2016, 20:11

Yeah, I'm not bummed. I find it ironic that CEM's final scene will now easily be the worst scene in the entire mod. Well, unless I go drastic as I think there are other ways to skip by things. It's difficult since everything has to shift together, but I could cut the middle line...the one I had to mod the most, and cut Shep's line short and make for a quicker, but more professional ending.

I'll include my document here. It's in the vein of my ramblings but I think more coherent as I was trying to lay it out as best I could today.
https://1drv.ms/w/s!AusivyhMZZYmgloF0dyQEXa-jwHu
User avatar
Deager
Modder
 
Posts: 805
Joined: 16 Feb 2013, 01:37
Has thanked: 284 time
Have thanks: 164 time

Re: FaceFX and AnimCut$!&&

Postby giftfish » 17 Aug 2016, 20:16

Btw, total FXA hex for the first 49s of Kaidan's romance scene: 11584 bytes. Total for your Miranda: 65402.
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: FaceFX and AnimCut$!&&

Postby Deager » 17 Aug 2016, 21:25

giftfish wrote:Btw, total FXA hex for the first 49s of Kaidan's romance scene: 11584 bytes. Total for your Miranda: 65402.


I mostly shared the post and document because I had 500mL of steroids with a med yesterday and am finally going to sleep now for the first time since waking up yesterday morning at 8. So yeah, I'm not completely trusting my numbers on this one. Regardless...this is still a lot bytes. I see the pattern pretty well but man, I'm patient but I have like, life to do. ;)
User avatar
Deager
Modder
 
Posts: 805
Joined: 16 Feb 2013, 01:37
Has thanked: 284 time
Have thanks: 164 time

Re: FaceFX and AnimCut$!&&

Postby giftfish » 17 Aug 2016, 21:50

@deager -- I'm not saying your wrong about anything. I'm just saying Kaidan's file is much smaller than Miranda's for some reason. Who knows why....
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: FaceFX and AnimCut$!&&

Postby Deager » 18 Aug 2016, 00:07

giftfish wrote:@deager -- I'm not saying your wrong about anything. I'm just saying Kaidan's file is much smaller than Miranda's for some reason. Who knows why....


I just read your last quote before I finally slept for a few hours so that was nice at least. Total zombie now. I just figured I did some math wrong since I was so tired.

But, yeah, I too noticed some pretty heavy size differences, even among characters with 3 lines in the goodbye scene of the same file as Miranda. When I counted out what I think is the entire "names" list I was like, "What are these names?" I mean, yeah, I saw a few familiar ones but there was just a crazy amount of things in there.

And I was almost relieved to find such a ridiculous situation because, well, I can safely say I've done all I can so far. Granted, maybe there's something slick one of us will come up with. Or I'll get creative with the goodbye scene and you'll get creative with the Thane romance scene. It'll be a pain no matter what we end up doing, or not doing, but at least I left it all out there and that actually is some satisfaction right there. Fortunately, we at least edit a lot of animations now for most scenes so it was still a good process to tackle.
User avatar
Deager
Modder
 
Posts: 805
Joined: 16 Feb 2013, 01:37
Has thanked: 284 time
Have thanks: 164 time

Re: FaceFX and AnimCut$!&&

Postby Deager » 18 Aug 2016, 19:10

Well, hey, I slept. And I'm totally medicated up and probably not thinking straight but, I have a question.

Is there any way which might be possible to change what an animcutscene controls or even tell the game, "No, you're not using an animcutscene. You're going to treat this like a normal convo and read the lines and camera work from the LOC_INT file instead."

The LOC_INT file, even when an animcutscene is involved, seems to still have all the data just sitting there, available to be used.

I was looking at a more normal convo, like with the 525PreGoodbye and it seemed like the setup to reference the LOC_INT (or whatever language is in use) didn't have that much, relatively speaking, going.

I still think it's not possible but, am I wrong? Is there a way we can change how the base 530Goodbye file works with the 530Goodbye_LOC_INT?
User avatar
Deager
Modder
 
Posts: 805
Joined: 16 Feb 2013, 01:37
Has thanked: 284 time
Have thanks: 164 time

PreviousNext

Return to Modders' Research

Who is online

Users browsing this forum: No registered users and 0 guests

cron
suspicion-preferred