Pausing one single frame of a speech view (SOLVED)

Started by Knox, Tue 25/08/2009 20:57:41

Previous topic - Next topic

Knox

Hi,

Ive been trying different solutions and I cant seem to get what I want without doing a "hack". Im sure there is a much simpler way of doing what I need done. Ok, here we go:

All I need is once a character finishes saying something to the main character, I want him to smile, but hold the smile for 4 seconds...and nothing else is displayed (and everything else is locked/paused).

Right now what I have is my normal speech view and a "smile" speech view...just 3 frames of my main character smiling. What I tried doing was in my dialog simply changing the speechview to my smile view...it works fine, but since the line he says while smiling is very short ("Great!"), that smile view only gets displayed for like 1 second.

I tried gamepause...Wait(80)...putting a delay, etc...

I tried looking in the manual for some sort of "display for x seconds then disappear" kind of deal, without luck.

A little nudge in the right direction is all I would need :)
--All that is necessary for evil to triumph is for good men to do nothing.

ddq

You could use Character.LockViewFrame(int View, int Loop, int Frame), then do the Wait(80), and then use Character.UnlockView().

This probably won't work perfectly, but it's just how I do it. You might want to wait for a more experienced user to post and then we can both learn!  ;)

Joseph

I would like to know too how to do this.
Spread the love...One.Turtle.At.A.Time.
http://www.youtube.com/watch?v=y0A77rohcyg

Knox

Hi DDQ,

I tried that, it does work, however, since Im using SierraStyle Dialog, when it locks the view specified, its shrunk down and next to the player (thinking its LucasArts Style I imagine).

What I need is get a specific SierraStyle's portrait frame to lock at the same place the speech animation was running ("SierraStyle Potrait Location" in "General Settings" is set to BasedOnCharacterPosition).

Right now with the lockViewFrame, it shrinks the portrait down small, and moves it next to the character's body.
--All that is necessary for evil to triumph is for good men to do nothing.

Khris

I've never used Sierra speech style, but you could try setting the smile frame's delay to 80 in the view editor.

Knox

Hey Khris,

Thats a good idea...I tried that, unfortunatly, it seems the portrait is displayed for a time that is "set" by the length of text that the player is saying...as in, if I have a huge monologue, the portrait will be animiated in loop mode for an "estimate" time that the text is in length. Doh!

Ill keep trying stuff out and let you know what I come up with. Thanks though :)
--All that is necessary for evil to triumph is for good men to do nothing.

Vince Twelve

I haven't tested this (I also have never used Sierra speech style), but could you just have
Code: ags
cChar.Say("                                                              ");
with a ton of spaces in there?

Akatosh

If I recall correctly, there's also some way to adjust how the game determines how long a line of text stays onscreen; there's some variable you can manipulate during run-time, but I'm at a loss as to what it's called. If I don't recall this from some sort of AGS-themed fever dream, that is.

Anyway, if the var is real, just multiply it by four, make the character smile and say great, then set it back.


Akatosh

Yeah, one of these. The latter (Game.MinimumTextDisplayTimeMs) is probably the one you want. Briefly setting it to 4000 should work just fine.

Knox

These are all very good ideas.

When I get home tonight I will try them out and let you know what happens.

Thanks for your help, I appreciate it. ;D
--All that is necessary for evil to triumph is for good men to do nothing.

Knox

Hi,

This works perfectly...exactly what I needed.

Thanks a lot guys :)
--All that is necessary for evil to triumph is for good men to do nothing.

SMF spam blocked by CleanTalk