Aller au contenu

Photo

Alternate Dialogue Modes


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

#1
FollowTheGourd

FollowTheGourd
  • Members
  • 572 messages
Hi,

I've been thinking about ways of creating an alternate dialogue mode that would be closer to NWN1, Infinity Engine games, or Fallout (not FO3), for those of us who wouldn't be using voice overs. I'm posting this in general discussion since I'm curious what others think, and I don't want to post it in announcements since I'm not sure if I'll continue on this or do something completely different. I doubt it'd be popular with players clamouring for fully voiced cutscenes (I can imagine the thumbs down on DANexus already), but I think it would help get more story content out there.

Granted you could just have unvoiced cutscenes, but I feel it's a bit unnatural and you're expecting the user to keep their eyes glued on the text where they won't be focusing on the animations as much anyway.

So here's a hacked up prototype actually running in-game of what I had in mind:
*click to enlarge*
Posted Image

You wouldn't have to *only* use this mode - the best I think is to trigger it if the first dialogue line is some actual value, but it would probably require a (probably very short) fade in every time to give it time to set up. A fade in for this mode would be ideal anyway since it'll make the transition less jarring.

Then to simplify it, you can use a template stage to position the player and speaker (and others) so you can guarantee they'll be properly visible in the conversation and the camera is oriented and positioned properly (and no DOF, "Look at type" == None).
*click to enlarge*
Posted Image

If you wanted to mix it up, you could have different stages with different positions and cameras, but the scene would be mostly static.

As far as portraits or automatically indicating the name of the speaker: I think I'd need a TLK post-processing tool for that to automatically append that information, but we could live without it as well. And I suppose there's no way in a non-cutscene to add effects (like a ring for the current speaker).

Modifié par FollowTheGourd, 09 août 2010 - 12:39 .


#2
ladydesire

ladydesire
  • Members
  • 1 928 messages
I like the idea; you're a veritable fountain of design suggestions.

#3
Noir201

Noir201
  • Members
  • 1 015 messages
Great idea, i know i would use something like that, imo a game can use voiced aswell as non voiced, like what final fantasy does, that way, can add more to the story, from a mods view, then having to rely on a voiced npc. :)

#4
FergusM

FergusM
  • Members
  • 460 messages
A very interesting development. Mind sharing how you're getting the texture to display?

I had similar thoughts about finding other ways to present unvoiced conversations, but I've been using a much more primitive approach. It works for me, but this would probably be a very good general solution for the community.

Modifié par FergusM, 09 août 2010 - 12:19 .


#5
tmp7704

tmp7704
  • Members
  • 11 156 messages
Interesting; with the mentions of DA2 UI i'd maybe try to go for a tapestry theme rather than the wooden plank bits, but the base concept feels solid.

#6
FollowTheGourd

FollowTheGourd
  • Members
  • 572 messages

FergusM wrote...

A very interesting development. Mind sharing how you're getting the texture to display?

You have to mod the UI files. Not to plug my own group, but if you're interested in modding the UI http://social.bioware.com/group/2083/ and my (terrible) UI tutorial. Although to be up front, I personally think modding the UI itself should be a last resort if there's no other good way to do something since it's a core resource.

tmp7704 wrote...

Interesting; with the mentions of DA2 UI
i'd maybe try to go for a tapestry theme rather than the wooden plank
bits, but the base concept feels solid.

I mostly just cannibalized the chanter's quest board textures for that. Hopefully I'd find some others or somebody could provide some nicer textures.

EDIT: also, I suppose it'd eat up even more resources, but it might also be interesting to have various background textures with different themes depending on the overall tone you want to set.

Modifié par FollowTheGourd, 09 août 2010 - 12:28 .


#7
-Semper-

-Semper-
  • Members
  • 2 259 messages
that's indeed very nice! gratz ;)

#8
JasonNH

JasonNH
  • Members
  • 237 messages
Good work!

#9
FollowTheGourd

FollowTheGourd
  • Members
  • 572 messages
Thanks. Also, we still don't have a way to create dynamic stages, or do we? It's just that spontaneous conversations (with companions) would probably have to use a non-staged conversation, I'm presuming. But even if you can move or reorient an existing stage, the camera may still get blocked.

Modifié par FollowTheGourd, 09 août 2010 - 01:10 .


#10
Mengtzu

Mengtzu
  • Members
  • 258 messages
I'd be extremely interested in seeing text-centric dialogue UI work done :)

#11
FergusM

FergusM
  • Members
  • 460 messages
By the way, for indicating who is speaking, simply making use of the conversation animations could be sufficient. Just throw a simple talk animation on to every line and it'll be easy to see who is talking.

Modifié par FergusM, 09 août 2010 - 05:14 .


#12
CID-78

CID-78
  • Members
  • 1 124 messages
Why so fat borders? i mean you need space for the text under. but can't you have a bigger view with slimmer border? and do it work with all resolutions?

#13
FergusM

FergusM
  • Members
  • 460 messages

CID-78 wrote...

Why so fat borders? i mean you need space for the text under. but can't you have a bigger view with slimmer border? and do it work with all resolutions?


As far as I can guess:

1) It's a placeholder, so you certainly could do that.
2) Yes, it would work with all resolutions.

#14
FollowTheGourd

FollowTheGourd
  • Members
  • 572 messages

FergusM wrote...

CID-78 wrote...

Why so fat borders? i mean you need space for the text under. but can't you have a bigger view with slimmer border? and do it work with all resolutions?


As far as I can guess:

1) It's a placeholder, so you certainly could do that.
2) Yes, it would work with all resolutions.

Yep, and I think that was at 800x600 (or something anyway) in window mode when I made that screen shot. Right now it just stretches to fill the screen, so you'll get a more open view if you have a wider screen resolution (because that hole in the graphics will be bigger). And as I said - it's just a hacked up prototype and the aesthetics weren't really a concern, but making sure I can get things to work right.

The point of stage templates would be to ensure that your places will always be seen in the open window at any resolution. I could just use an "isometric view stage" and not even modify the UI anyway, but I think it'd work well so you can zoom out with the camera and still focus on a narrower area in your scene. One stage template could be full of alternate character places at different locations to make it even easier to have some variety or create a customized resource template.

FergusM wrote...
By the way, for indicating who is speaking, simply making use of the
conversation animations could be sufficient. Just throw a simple talk
animation on to every line and it'll be easy to see who is talking.

Yep, the thought crossed my mind. But is there any way to automatically make the gestures always less subtle than something like a weight shift when you do "generate * for children"? That might be controlled by the emotion set, or that robobrad config stuff, but the more automated the better. Or maybe it'd look OK either way with gesticulations being less common.

Also, if people want to see fat borders, look at screen shots for Fallout 1 and 2 dialogue (with or without the talking heads). I'd have almost preferred something more like a NWN1 style dialogue box (only not stuck at the corner of the screen), but you're going to go into conversation mode and so it wouldn't be a seamless transition anyway where you can just freeze everything and pop up a box.

Modifié par FollowTheGourd, 09 août 2010 - 06:30 .


#15
tmp7704

tmp7704
  • Members
  • 11 156 messages
For indication of speaking, i figure it could be done simply by putting name of the person as part of their line, like this:

Alistair: blah blah blah

since there's no actualy spoken dialogue and the camera is pulled away, there's no longer issue of text and lip sync not matching.

#16
FollowTheGourd

FollowTheGourd
  • Members
  • 572 messages
I'm just lazy and would hate to type that out (or even copy & paste it repeatedly), but that's why I was thinking some tool that could post-process the TLKs, but it'd also need to read the DLG files or XML export with a B2B (the easiest I think), or see if something like autoit could get the information out of the toolset's standalone GFF editor. It'd be tricky supplying a name for a tag, but could be simplified by only requiring you to prefix the name somewhere once in the dialogue and then having it autopopulated elsewhere, but "aliases" like OWNER could make that even harder.

Modifié par FollowTheGourd, 09 août 2010 - 02:57 .


#17
Elvhen Veluthil

Elvhen Veluthil
  • Members
  • 353 messages
This is a really great idea FollowTheGourd, something many of us was asking for from the beginning. I hope you continue your work in this project and release it soon.

#18
FollowTheGourd

FollowTheGourd
  • Members
  • 572 messages
It's been forever, but it just hit me there's an easy way to get the speaker's name: get it from the conversation history while the conversation is still happening. I tried it and it works. And it works for any speaker so far, just like in the conversation history, whether it's the OWNER or somebody specifically set. You just have to make sure to check all our conversation and creature resources back in before exporting the talk table so the TLK is properly updated.

I was kind of hoping the Screenshot() function would work and see if I could do something cringe-worthy like display the screen shot to simulate a frozen game world, but maybe the best I can do is let you specify what background image to throw up. It wouldn't even have to be a border image - any background, even one for that particular dialogue. Makes sense it would be disabled in a retail build for security reasons.

If anybody's interested, this is the hacked-together conversation UI script fragment that I tried:
        var sAttributeConversationLines:String = "Journal.Conversations.0.ConversationLines";
        var nConversationLines:Number = ExternalCommands.GetNumMembers(sAttributeConversationLines);
        
        // Find the last NPC line spoken. Probably doesn't need the loop, but whatever.
        for (var i = nConversationLines - 1; i >= 0; --i)
        {
            var bPlayerLine:Boolean = ExternalCommands.GetValue(sAttributeConversationLines + "." + i + "." + "Player") != 0;
            if (bPlayerLine)
            {
                continue;
            }
            var sSpeaker = ExternalCommands.GetTlkString(ExternalCommands.GetValue(sAttributeConversationLines + "." + i + "." + "Speaker"));
            a_sNewText = sSpeaker + ": " + a_sNewText;
            break;
        }        

Modifié par FollowTheGourd, 07 décembre 2010 - 02:47 .