Aller au contenu

Photo

Cutscene causing a crash


  • Veuillez vous connecter pour répondre
5 réponses à ce sujet

#1
BillHoyt

BillHoyt
  • Members
  • 109 messages
Concurrent development is a bear, we all know that. But I have to explain that as background to properly explain how a certain cut is causing a crash, so maybe somebody can tell me why.

The short version is that I am in the process of assembling The Lay By for the Sappho's Daughters team. We have a cutscene that plays upon successful completion of a puzzle quest, created by an animator member of our team.  Because DADBDATA seems to work for everything but cutscenes*, he sent me the CUT and CUB files which I installed into the module override directories.  This free-standing cut is then run from a script called from a conversation which has no stage.  Clear as mud?

It gets worse.  The cut itself features two solders who "enter" the Lay By for the first time and therefore must leave with what they came to get. Since they start 'outside' a safe position end outside of it, the cut throws them back in and then I safedelete them**. We also have a few people performing sitting animations who are also moved to safe locations when the cut end and I move them back.***. I only mention all that because while the scripts are not the problem, it might jog someone's memory.

OK, with all that setup, the problem is this: The animator, who set the cutscene up with a DADBDATA copy of my area, can run it perfectly.  I can run it perfectly from overrides on my machine.  When I create a DAZIP, the animator can install it on his machine and it runs perfectly.  However, when anyone else installs the DAZIP, the cutscene runs and when it ends, it hardcrashes their game.

I have removed all parms, run the script from a trigger, done everything I could to ensure that something tangential to the cut was not causing the problem.  Our testers have also been able to run a dummy cutscene in place of the real one, and it's fine. We have other cuts that run from conversations and scripts and they are all fine. In short, we have done everything we could think of to ensure that this problem is with the cutscene itself, and we are pretty sure that is the case.

But we can't figure out what might be causing the problem. Has anyone else managed to cause a hard crash at the end of a free-standing cutscene? If so, what turned out to be the problem? 

I'll admit that I am frankly stumped, so any and all ideas would be appreciated.

* I have a potential solution for that problem but have not tested it yet because this keeps getting in the way.
** in a separate script unrelated to this. It's not the problem.
*** ditto.

Modifié par BillHoyt, 29 juillet 2010 - 02:08 .


#2
Beerfish

Beerfish
  • Members
  • 23 867 messages
I've been able to send cutscenes via dadbdata successfully.



Regarding the problem it does sound like a stumper. You all have similar quality machines resource wise?



There must be some resource in the mix that you and the animator have that others do not have.



I don't recall the hard crash type of thing you speak of in any of my dealings with sending cutscenes and having them run.

#3
BillHoyt

BillHoyt
  • Members
  • 109 messages
Thanks for the response, Beerfish. Since I have your attention, do you mind if I pick your brain? No? Great.

I've been able to send cutscenes via dadbdata successfully.

Every time we've tried, I get some variation of
E: 11:51:23 - Could not find referenced resource bw-db://.\\BWDATOOLSET/bw_dragonage_content?resrefid=21887 for ch_a_spy_04.cut

Does that error mean anything to you?

If I create a DADBDATA myself, I can re-load it into the same mod (deleting the original, of course), but never into another mod on the same machine nor onto any other machine. Am I missing a trick somewhere?

My gut says that the problem is at least partially caused by my inability to directly load cuts (workarounds like putting stuff in overrides or running cuts from scripts in conversation are just asking for trouble). So if this was fixable, I would owe you big time.

There must be some resource in the mix that you and the animator have that others do not have.

Yes, and this has proven nearly impossible to trace. I have very few mods installed and have a vanilla setup. But every person (we are up to 5) who has run this has blown it up, and they all have different mods installed on very diffeent machines. So that is a road I have not followed very far - if everyone has blown up something I've created, that tells me I'm setting up something up wrong*. I'm inclined to leave this in the beta coming Saturday (with a warning in the test notes, of course) and maybe hopefully we can begin to get our arms around this.

I don't recall the hard crash type of thing you speak of in any of my dealings with sending cutscenes and having them run.

That is, to be honest, what I was afraid you would say. Many years ago, my first boss told me that the secret to professional growth was to make new mistakes every time. He did not warn me that this means eventually you get to the mistakes no one else has made. ../../../images/forum/emoticons/grin.png

Any advice you could give on DADBDATA would be appreciated, as if I could make that work, it would change the structure of my setup enough that hopefully I could make a new mistake that is easier solved.

* I'm ignoring the animator on this one because the cut is 'native' to his machine.

#4
Beerfish

Beerfish
  • Members
  • 23 867 messages
I'll have to talk to the lead mod maker who I am providing cutscenes with to find out again exactly what he does for import success once again.



One thing you need to do is to document how exactly you are exporting (builder to builder create) and importing (builder to builder load). There are options for using existing stringids or creating new stringids. That might be a problem.



The unfortunate thing is that I don't think you can see a list of all that is getting exported when you do the exporting. However when you do the import it shows all the things it wants to import and how this is handled will have an effect on things as well.

#5
BillHoyt

BillHoyt
  • Members
  • 109 messages
Thank you, sir. I appreciate your insight.

And no, you don't see everything that goes into it. If you select only one thing to export, you still get XML files for dozens of related resources in your archive. I do't know that they do anything, but they are there.

EDIT: I managed to load a cut from a DADBDATA file and may have discovered the problem at the same time.  The secret was to click "show dependants," sort the file by directory, and then click only the items that are not already on your machine (I also created new string IDs).  That may be limited to just a handful and ought to include the cut name. 

I did have to create one dummy .UTC and I had to import a few extra characters - it took a half-dozen times, unZIPping the DADBDATA file and searching through the XMLs (the RESREFID error codes appear in there).  But now I can watch the scene, and with the exception of one missing custom animation, I can export it.

I don't know if the problem is solved yet or even on the way to being solved, but I do appreciate you comments.

Modifié par BillHoyt, 29 juillet 2010 - 09:15 .


#6
Proleric

Proleric
  • Members
  • 2 350 messages
Beerfish asked me to comment on how to make a Builder-to-Builder Load work for a cutscene.

Sounds to me like you've already found the answer. The wiki is helpful, too. Here's my pennyworth. I ain't Winston Wolf on this, you understand.

Before attempting the load, backup the data base, just in case.

If the cutscene and any resources it references already exist in the target data base, check them in.

The reason is that you can't over-write a checked-out resource. If you try, resource xyz will load as a new copy xyz_1 which may be incomplete / bugged / unusable. If you do that by mistake, check it in, delete, try again.

A resource can't exist with the same name in more than one module on the same database, so don't even try, or you'll get xyz_1 copies again. If you need to test on the source machine, load to the original module (you can always recover from the backup).

Your approach to the load itself, including the search for missing resources if it fails first time, is pretty much what I do.

I only check the resources for load that Beerfish holds the master copies of. That will include the cutscene itself, placeholders etc. I don't check resources like the area, because my copy is the master.

That may require some thought when reloading an existing cutscene.

As you already discovered, if there's an error, make a note of the missing resource ids, check everything in again, and reload.

I've never managed to get this right first time, so don't feel bad about those reworks.

Hope that helps.

Modifié par Proleric1, 30 juillet 2010 - 05:15 .