Official Thimbleweed Park Forums

Delores: Meowlation

For the moment I added a little line here as you suggested.

See the (currently two) commits https://github.com/Frenzie/DeloresDev/commit/768d5e880a717bedefe8c2ed0bb399b67d3289d6#diff-fee905f759fe081f3166a6312d3d87e9 and https://github.com/Frenzie/DeloresDev/commit/129cf3bf05024ea405e905eaa8d5cb189dafb846#diff-fee905f759fe081f3166a6312d3d87e9

1 Like

Brilliant!

1 Like

Meow! :cat2:
Now you could make a generic talkie/meowie version!

So I just downloaded FMOD Studio Tool, and it doesn’t scale very nicely. Luckily you can force an integer scaling factor as detailed here. It’s reasonable enough at 2.

Recording the cats will be a bit more difficult, but first I suppose I should figure out if I can create a soundbank and load it.

Hm, the engine says “Can only load one bank (for now).” That’s unfortunate. Another obstacle is the apparently the version. I simply downloaded the most recent one (2.01.01).

Tomorrow I’ll try 2.0.3, like the DLL that comes with the game.

Edit:

In the meantime, here’s a recording.

1 Like

Add them to the main bank. FMOD merges very well since it’s all just text.

Not sure why I never added the ability to load more than 1 bank, I guess the need never came up.

2 Likes

Oh, I’d overlooked the Source/FMODSound folder! :man_facepalming:

Edit: good news, playing audio works. The bigger problem, coming up with audio that makes some kind of sense…

1 Like

I seriously think you should add a cat translation for every new game of yours, from this moment on.

2 Likes

Settings screenshot

I hadn’t noticed before, but the options were broken due to a lack of string replacement. I added %[ds]| at the front of the regex to fix that.

Meowlation Demo Video

And here’s a video illustrating what the talkie version could sound like, at least after I’ve done more cleanup/editing of recordings in Audacity.

How to record your game

With regard to the recording itself, I noticed that I could select a “Windows 10” recording setting. That solved the issue.

5 Likes

2 Likes

If the words are not generated at random, each od them can be an event with a sample (or multisamples for variety). These would have to be cut tightly, like single words, so when they are played, it resembles a sentence with a rythmic pattern, otherwise it’ll sound just like cat vocalisations which is what happens in the demo above. It sounds like there’s just a sample of cat playing and it’s not related to speech.

1 Like

I don’t know if a rhythmic pattern is a realistic target but yes, in the video it’s just a straight up recording with no relation to much of anything. Just one small part of that recording would be a prr or something.

It shouldn’t be that hard to get a rhythmic pattern related to speech. Fmod would have events related to the length of the word. Short word - play short sample, long word - play longer sample. And these would be multisamples, so the speech would be varied. Fired in sequence, it would be like speech. It would be more complex and certainly time consuming to have samples that are mirroring the text, so that purr is not meow in audio.

Personally though, for such a silly idea I would go with how cat speaks in this cartoon.

1 Like

Yes, you just described exactly what I was thinking about experimenting with, at the very least a bit manually in Audacity to determine what I think of it. If I should decide to proceed, the basic principle would simply be an extension of the meow text generator.

Does it mean that Delores is completely ready for voicing? Adding custom sound bank with proper IDs without additional changes in code is enough to make the game talk?

I think it should be (see _startSayLine) but that’s not quite what I tested. :slight_smile:

1 Like

I didn’t implement any of the talking code in the new engine. You could kludge something up by intercepting _startSayline() but you’d need to continually monitor the playing sound to know when it ended. Talking is something that best to embedded in the engine due to other issues like lip syncing.

2 Likes

I see…

At first sight I thought it is already handled by

	if (SETTING(jibber)) {
		actor._jibber_sid <- playSound(actor?.jibber_sid)
	}

and _doneSayline(actor) but it seems that jibber_sid is just some kind of dummy ID because it does not really identify the line…?

jibber was a failed experiment to add animal crossing like jibbler voice. It was never completed so all the code is not there.

2 Likes

I’ve never played or even seen Animal Crossing so I had to find some video to get some idea what you meant. :blush:

I guess it would have been quite interesting… :slightly_smiling_face:

1 Like
Official Thimbleweed Park Forums powered by Discourse.