Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest WME version: WME 1.9.1 (January 1st, 2010) - download

Author Topic: LipSync?  (Read 4679 times)

0 Members and 1 Guest are viewing this topic.

brycecovert

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 3
    • View Profile
LipSync?
« on: August 07, 2005, 05:43:59 PM »

Is there a way to do lipsyncing in wintermute?

As it is, our project may be using dialogue portraits. So I was thinking that the portraits with entities that have some of the phenomes [correct terminology?] animations. Then, along with the custom "talk" function that I'd make, you'd pass a custom string that would be parsed to figure out the order to play the animations. Here's what I mean.

MyTalk(ego, "Hello, sir.", "helo..sur");

Is th is the best way of going about this?

Bryce
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: LipSync?
« Reply #1 on: August 08, 2005, 02:37:36 PM »

In WME you can specify an external definition file for each speech sound file, which describes what animation to play and when. But WME doesn't provide any means of lip-sync by itself. You'd have to use some external application, such as Pamela to generate the lip-sync data and then convert them to WME format.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

bryce

  • Guest
Re: LipSync?
« Reply #2 on: August 09, 2005, 03:26:54 PM »

I don't see this feature  in the documentation. Is it just the actor.Talk function?
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: LipSync?
« Reply #3 on: August 09, 2005, 05:11:27 PM »

Um, it's undocumented :-[
But it works like this: for example if you have a speech file called "somespeech.ogg", you can create a text file "somespeech.talk" in the same directory, which would look like this:

Code: [Select]
TALK
{
  DEFAULT_SPRITE = "actors\molly\talk.sprite"
  ACTION
  {
    START_TIME = 2000
    END_TIME = 3500
    SPRITE = "actors\molly\some_gesture.sprite"
  }
 
}

Now, when some Talk command references somespeech.ogg, the engine will automatically override talking animations by those in the .talk file. There is some default animation plus one or more "ACTION" sections specifying what gesture animations to play at what time. For lips-sync you'd use phoneme animatons as gestures.
« Last Edit: August 09, 2005, 05:35:17 PM by Mnemonic »
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

TillimannBanana

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 2
    • View Profile
lipsync with respect to the direction
« Reply #4 on: January 30, 2007, 10:23:00 PM »

I know. This entry is a bit old but nevertheless you might read it. So I'll give it a try. ;)
My question is how I can lipsync my actor with respect to his or her direction?
Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: LipSync?
« Reply #5 on: January 30, 2007, 10:32:14 PM »

It would look similarly to the example above, but instead of sprite you'd define a spriteset (i.e. one to eight directions, defined the same way as in .actor files).
Code: [Select]
TALK
{
  DEFAULT_SPRITE = "actors\molly\talk.sprite"
  ACTION
  {
    START_TIME = 2000
    END_TIME = 3500
    SPRITESET
    {
      LEFT       = "actors\molly\gesture_ll.sprite"
      RIGHT      = "actors\molly\gesture_rr.sprite"
      UP         = "actors\molly\gesture_uu.sprite"
      DOWN       = "actors\molly\gesture_dd.sprite"

      UP_LEFT    = "actors\molly\gesture_ul.sprite"
      UP_RIGHT   = "actors\molly\gesture_ur.sprite"
      DOWN_LEFT  = "actors\molly\gesture_dl.sprite"
      DOWN_RIGHT = "actors\molly\gesture_dr.sprite"
   
    }
  } 
}

Alternatively you can put the entire spriteset definition into a separate file and only reference it by filename:

Code: [Select]
TALK
{
  DEFAULT_SPRITE = "actors\molly\talk.sprite"
  ACTION
  {
    START_TIME = 2000
    END_TIME = 3500
    SPRITESET_FILE = "path\some_spriteset_file"
  } 
}
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

TillimannBanana

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 2
    • View Profile
Re: LipSync?
« Reply #6 on: January 30, 2007, 11:04:44 PM »

WOW!!! Thanx... Amazingly fast answer! ::thumbup
Logged
 

Page created in 0.154 seconds with 24 queries.