Jump to content
The Dark Mod Forums


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Geep

  1. Sorry for the "math speak". By modulo 5 (aka just mod 5), I mean integer values of 5, 10, 15, etc., and referring to the duration in units of seconds. Since the duration is a float, we're really talking 5.000, 10.000, 15.000, etc. No good reason, IMHO. Not at this time. I only got about through about 50 voice clips in the spreadsheet, before it became obvious that there was this problem. My workflow doesn't generate the .subs file of a test mission (initially with all inline, with srt candidates flagged by comments) until the spreadsheet is done. It's because the vocal set is chopped into individual voice clips, that the game individually invokes. So (unlike subtitling a movie or TDM video briefing), each unique voice clip must be represented by either a separate inline entry or srt file. The inline entry is an easier prep. It generally handles > 95% of a vocal set's clips. And would for Lady02 if the .ogg files had been properly trimmed.
  2. Update of the "Explained" Doc for Spreadsheet Template v5 This doc covers all the vocal sets done with template v5, from June's Average Jack to November's The Critic. (Subsequent work will involve template v6.) Within, changes from the original Explained are shown in blue. That original file, and the still-relevant "Overall" Doc, were linked here. Explained - Subtitles Template v5 & Vocal Sets Using It
  3. A Problem Arises I've paused subtitling of the Lady02 vocal set, because of a problem with the voice clips described here: https://forums.thedarkmod.com/index.php?/topic/21741-subtitles-possibilities-beyond-211/&do=findComment&comment=490151 While a way forward is being determined, I'll work on a different vocal set. Maybe manbeast, for which Kingsal just provided me the voice script.
  4. There's a problem with Lady02 sound clips. A number of them are untrimmed, having dead air at the end up to modulo 5 seconds. Out of 310 sound clips, counts of suspect clips are: 69 at exactly 5 seconds 15 at exactly 10 seconds 4 at higher values, modulo 5 seconds If a clip has, say, 3 seconds of dead air, I don't want to keep showing the subtitle during those 3 seconds. Solutions are: 1) trim the clips. The best solution, but a good amount of work (that I hate doing. Any volunteers?) 2) use SRT in each case to end the subtitle early. This is a fair amount of extra work for me, for those clips that otherwise would not need SRT (namely, the 5 second and some of the 10 second ones). But I'll do this if (1) and (3) seem out of reach. 3) Change the -dx command so it can take a negative value, and end the subtitle early. It would still take some effort to determine the -dx value, but less than (2), and with less file proliferation. @stgatilov, is this viable/easy? EDIT: Reported to bugtracker as https://bugs.thedarkmod.com/view.php?id=6352
  5. I rather regret that the namedEvent and runScript ideas were put in the same bugtracker request, since they each clearly justify their own topic. From the discussion above, it seems that namedEvent would be easier/safer to implement this round. It appears runScript is more problematic, and furthermore, may not be the only or best way to implement new capabilities for readables. The latter (e.g., tabs, different backdrops for different pages) probably also needs a separate bugtracker item. Turning to namedEvent... @stgatilov in the OP was wondering about whether the in-GUI call to namedEvent should be synchronous (i.e., happen immediately) or asynchronous. Synchronous is easier for the script writer to think about, and would be my preference. As he indicates, this would be less like other gui script aspects (some of them "weird"), but more like calls to gui named events from doomscript. And, by introducing nested call stacks, he thinks may provide future opportunities for reduction in weirdness. It is unclear to me if HMart's implementation is synchronous or asynchronous. Probably we should not worry about whether this usage is consistent with Quake 4, since we'll probably never know.
  6. The situation with "entity" is like "tomato". To a botanist, it's a fruit. To a grocer or chef, it's a vegetable. So if a mapper says "entity", often it's meant to exclude worldspawn, even though technically it's included. The meaning depends on context.
  7. The subtitles of The Wench vocal set are now available for eventual incorporation into TDM Two versions, created earlier in the year, are released today with just-revised names. The first (created on Apr 21) was fully QA tested under April's 2.12dev: testSubtitlesWenchOriginal.pk4 But it was noticed at the time that some of the voice clips do not correspond well with their TDM event categorizations. So, the second testSubtitlesWench version (created on Apr 24) is designed to be used with corrected voice clip names and categorizations, as detailed in bugtracker 6284. It was hoped that this bug report could be addressed in a timely way, so that this patched version could also be given final testing. But waited long enough; released now without final testing: testSubtitlesWenchPatched.pk4 CAUTION: If you run this version with current 2.12dev and step through the subtitles, at some point it will fail with a console error. It will only fully succeed with a future 2.12dev with bugtracker 6284 changes incorporated. EDIT: Since this was posted, progress has occurred on 6284. The result is reportedly a bit at odds with "Patched". Expect a 3rd, fully-aligned version of testSubtitlesWench to be forthcoming. About The Wench The Wench character is described as "uneducated, saucy and bold. The wench has been around the block; she is confident and flirty." She is further characterized in the wiki as "a low-class woman with something of a foul mouth". This vocal set comes with slightly different versions for soft-spoken women and "barmaids, whores, and female thieves". Statistics Original: In file fm_root.subs there are 535 inlines, including: 50 with an explicit linebreak, intending 2 lines 485 without Patched: In file fm_root.subs there are 533 inlines, including: 48 with an explicit linebreak, intending 2 lines 485 without None of these needed explicit duration extensions. For both original and patched, there are 20 SRTs, including: 19 with 2 messages 1 with 3 messages Of the 41 total SRT messages, there are: 13 with an explicit linebreak, intending 2 lines 28 without In all, in this vocal set, there are: Original: 555 voice clips with subtitles, showing 576 messages. Patched: 553 voice clips with subtitles, showing 574 messages. Corresponding Excel Spreadsheet WenchOriginalSubtitles.xlsx This spreadsheet was organized with an early "v1" barks template.
  8. The subtitles of The Critic (aka Bossy) vocal set are now available for eventual incorporation into TMD: testSubtitlesCritic.pk4 The wiki's "Voices" article describes The Critic as "a slightly upper-class, know-it-all voice", good for a male character who "has an opinion on everything and frequently offers advice. Suitable for nobles, mages, inventors, and snooty servants or guards." For inventors and mages, specific vocal phrases are provided. This speaker is a relatively fast talker, requiring more subtitle time extensions than most characters. Statistics In file fm_root.subs there are 293 inlines, including: 79 with an explicit linebreak, intending 2 lines 214 without 69 of these inlines have explicit duration extensions, as follows: 33 from 0.25 to 0.49, for 17 cps 32 capped at 0.50 seconds, for 17-20 cps 4 with more than 0.50 seconds, for 20 cps. The worst case one of these also was given non-verbatim shortening ("would have" replaced by "would've") There are 14 SRT files, including: 12 with 2 messages 2 with 3 messages Of these, 7 were given a time extension past the end of the clip, in the range 0.20-0.50 sec, analogous to duration extensions in the inline files. (In fm_root.subs, there are actually 15 srt commands. Two of these had the same subtitle text and so shared an .srt file. This file is one of those with a time extension.) Of the 30 total SRT messages, there are: 21 with an explicit linebreak, intending 2 lines 9 without In all, for this vocal set, there are 307 voice clips with subtitles, showing 323 messages. Corresponding Excel Spreadsheet SubtitlesCritic.xlsx As usual, this is based on Version 5 of the Excel Template for TDM bark subtitles.
  9. In thinking about this further, maybe a savefile is just a memory image. In which case ANY difference between the two machines (in OS version, CPU, GPU, amount of RAM, etc.) could prevent portability. If so, this approach to debug is likely a hopeless endeavor.
  10. Maybe TDM's .ini and .cfg files need to duplicated too? I could imagine if there was some settings mismatch, say, how shadows were handled, that could cause problems.
  11. With my method, you get the results for all the successful matches back in a convenient single temp file (i.e., tabbed pane); each match is a single line, that you can examine and, if of particular interest, click on to open the relevant file in a separate tab within Textpad. I'm not sure that 7zip->Textpad would deliver the same convenient summary, even if it might spare having to pre-expand the .pk4 trees.
  12. Maybe you have to duplicate the entire FM environment (the .pk4 if packaged) to get it to work?
  13. While Notepad++ does have a "Find in Files" feature, it's not well suited for this particular task (examining all the files of a particular type within a large directory tree). TextPad works well for Windows, but there's no doubt plenty of other ways to do it.
  14. Yeah, there's nothing in the syntax that tells you if the gui parameter is set in a gui script or the engine. Sometimes there's a comment in the script that helps out by saying, for instance, "// set by SDK". If you really need to know - say, you're writing a wiki article - then typically you'd do a full-text search for the parameter name within and across files. Namely, the search scope may include: FM-specific .gui files Core .gui (and sometimes .guicode) files Engine .cpp (and sometimes .h) files, of the source code retrieved from, for instance, github I use TextPad to do this. In the case of (2), I have a local copy of the latest official TDM distribution (currently 2.11), where I have replaced every .pk4 with its unzipped equivalent. Because TextPad can't look inside .pk4 files. In the case of "ModNotesText", method (2) found nothing except the line you indicated. Method (3) found this line in a version of the source code: \darkmod_src-trunk\darkmod_src-trunk\game\ModMenu.cpp(81): gui->SetStateString("ModNotesText", info != NULL ? info->GetModNotes() : ""); So, yes, it's set by the engine.
  15. Good catch. I fixed the .gui name, and added afterwards this brief explanation: The value here is a path to a custom video material shader. It is set at runtime by the engine, based on information the FM author provided in mainmenu_custom_defs.gui as, e.g.: #define MM_BRIEFING_VIDEO_MATERIAL_1 "video/tdm_briefing_video" (In older FMs, the video was chopped into parts, in which case the engine updates the value just-in-time. See comments in mainmenu_custom_defs.gui for details.) FYI, there is a similar system for debriefing videos.
  16. The subtitles of the Builder 1 and 2 shared vocal set are now available for eventual incorporation into TDM: testSubtitlesBuilder1and2.pk4 Under the wiki's "Voices", Builder 1 is described as "middle-aged; somewhat zealous; (suits builder guards, acolytes)". Note: The St. Lucia FM has a dozen-odd "conversation" subtitles for Builder 1 & 2 distributed with the core files, and already defined in tdm_sound_vocals_decls01.pk4\tdm_stlucia.subs. These are excluded from the work here. Statistics In file fm_root.subs there are 483 inlines, including: 61 with an explicit linebreak, intending 2 lines 422 without Four of these have explicit duration extensions, all from 0.25 to 0.49, for 17 cps. There are 11 SRTs, all with 2 messages. Of the 22 total SRT messages, there are: 14 with an explicit linebreak, intending 2 lines 8 without In all, there are 494 voice clips with subtitles, showing 505 messages. Corresponding Excel Spreadsheet SubtitlesBuilder1and2.xlsx As usual, this is based on Version 5 of the Excel Template for TDM bark subtitles.
  17. Sounds plausible. Perhaps you could file a bug report?
  18. You will find windowDef leftPageCurl {.... within each multipage .gui, for example: tdm_gui01.pke\guis\readables\sheets\sheet_paper_print_stone.gui (line 20) I was just using this as a syntax example. I am not responsible for the code itself. As to newish more numerous console warnings: It is certainly possible that some syntax forms that were previously accepted without complaint (at the time I wrote this wiki series) are now causing warnings.
  19. Yeah, but that line is used in a zillion .gui's, for example: tdm_gui01.pk4\guis\readables\sheets\sheet_paper_print_stone.gui(line 124): transition "leftPageCurl::matcolor" "1 1 1 0" "1 1 1 1" READABLE_FADE_TIME 0.5 0; What I said was accurate. But I'll rearrange the text to avoid future confusion.
  20. ??? I'm seeing READABLE_FADE_TIME on line 12 of readable.guicode for TDM 2.10 and 2.11, and also the version of 2.12dev I have installed (admittedly not the latest).
  21. What you are describing is a different use case (controlled by the mapper rather than the game player), but worthwhile.
  22. I suppose you could have the player rather than the guard cause the trigger, then somehow check in the script if the guard is being carried or is otherwise in the right place to kill. Possibly too hard to make that robust.
  23. Hm, I wasn't being too serious here, just riffing off stgatilov's note of the weariness of TDM veterans hearing the canned barks yet again. If there is an existing way for the player to suppress the audio of everything except "story" clips throughout the entire game, I'm unaware of it.
  24. @MirceaKitsune, looks like you're in luck: https://wiki.thedarkmod.com/index.php?title=Custom_Death
  25. I wonder if scripting would work. If the AI is $guard1, either $guard1.kill(); or $guard1.setHurt(0); Maybe you'd have to heal first with $guard1.setHurt(1); then immediately kill. Probably your script should check the AI_KNOCKEDOUT flag before some of that, to confirm unconsciousness.
  • Create New...