Forum rules - please read before posting.

Gabriel Knight dialogue system?

Hey Guys, are there any tutorials on creating a Gabriel Knight style dialogue system?


  • Welcome to the community, @AntonieG.

    You're referring to GK1, i.e. portaits either side of the list of options, on a black background?

    You can use the Menu Manager to display a full-screen black texture background, set its Appear type to Manual so that you have full control over its display. When you want to begin such a scenario, you can use the Menu: Change state Action to turn it on - and off again at the end.

    The list of dialogue options in the middle would come from a DialogList element, as shown in the default interface's Conversation menu. This can be restyled to appear in the centre of the screen.

    Just be sure to place the "full-screen black background" menu above it in the Menu Manager's list of Menus. When Menus that have their Source set to Adventure Creator, their drawing order is based on their name order in the Menu Manager - so the bottom-most Menu will be drawn atop those above it.

    Character portraits can be assigned at the bottom of the Player / NPC Inspectors, and then displayed in Graphic elements. A tutorial on this can be found here.

    However, this type of graphic will - currently - only display while that particular character is speaking. In GK1, such portraits display while a character is in idle as well. I shall have a think about how this can be done in AC and get back to you.

  • Awesome thank you for the update, started learning unity from scratch and the features and functionality your tool has brought to the table has kept me pushing to learn.
  • edited April 2020

    Glad to hear it!

    OK, so Graphic elements of type "Dialogue Portrait" are indeed auto-set to the current speech. I can make it so that - through extension - you can override this by assigning a character directly, so that e.g. the NPC you're speaking to is always shown.

    However, this will take a bit of doing on the development side - but I'll make those changes as part of the upcoming v1.71.0 release. Once out, however, I'll see about providing a template or some kind of example to demonstrate how to get this kind of thing set up.

    Sorry for the wait, but I appreciate your patience.

  • Thanks for waiting, @AntonieG. A new GK-style dialogue template is now available on the Downloads page, though you'll need to first update vo AC v1.71.

  • Awesome thank you! I'll start playing with it right away
  • edited July 2021

    I cannot, for the life of me, get the GK UI working properly.
    Maybe I misunderstood how it's supposed to work.
    When starting a new conversation in this style are you meant to switch scenes to the GK demo scene (demo scene runs as I expect).
    Should I be able to run the GK UI to replace the standard UI in chosen conversations (Chosen by adding the GK script below the Conversation script in the inspector).

    Demo works fine but when I add the Gabriel Knight script to the conversation (using the same prefab, same names, same action list) it returns the error:

    NullReferenceException: Object reference not set to an instance of an object
    AC.GabrielKnightConversations.AssignMenuVars () (at Assets/AdventureCreator/Downloads/Gabriel Knight conversations/GabrielKnightConversations.cs:127)
    AC.GabrielKnightConversations.OnEnable () (at Assets/AdventureCreator/Downloads/Gabriel Knight conversations/GabrielKnightConversations.cs:30)

    I can see in the inspector (with debug on) that the Conversation menu/dialogue list/player subs etc. are not being populated (they do populate in the demo.)

    Maybe it's relevant - the scene I'm working in is 3d and the conversation starts by clicking on an npc (Action list Run, in scene, ActionList = Onstart(cutscene).

    I am not currently switching scene's - just starting the cutscene/dialogue.
    The conversation GUI does not switch to the GH version - however, if you unpause the error the conversation does play correctly in the normal AC dialogue UI.

    What I'm hoping to achieve is to have the Gabriel Knight style conversation with certain (important) npc's and the normal AC style conversations with other (less important) npc's.


  • The template works by referencing elements of the conversation menu directly, by name. The list of dialogue options, for example, is referenced as being named "DialogueList" in the script.

    You can copy the template's Conversation menu and re-style it to suit your purposes, or edit the GabrielKnightConversations script file to reference different elements based on what you need it to control. The element variables are assigned in its AssignMenuVars function, starting line 124.

  • Hi @ChrisIceBox
    I'm sorry but I have been copying everything I can over from the demo scene.

    I'm using the same conversation asset, the same menu settings, same dialogue, same everything, just copying it from the demo to the game scene.

    There's probably something really basic that I've done wrong but as I said - I've been banging my head against this for a few evenings and can't see it.

    I appreciate you taking time to look at this, thanks!

  • FYI GK_Conversation has been added to the menus. I just didn't scroll down enough.

  • FYI GK_Conversation has been added to the menus. I just didn't scroll down enough.

    I'll need to see it to learn more, elements list included.

  • Thanks again for taking time to look at this @ChrisIceBox

    Is this what you are looking for?
    I have not (to the best of my knowledge) made any changes to the default AC conversation and GK menu's.

    Also a video of creating a new AC scene and adding the GK script.

  • Thanks for the details. Yes, your menu looks fine.

    I suspect the issue is to do with the order in which the script is executed relative to AC - and the menus are being accessed by the script before AC has generated them.

    Open up the GabrielKnightConversations script and find this line at the top:

    [RequireComponent (typeof (Conversation))]

    Immediately above it, add:

    [DefaultExecutionOrder (10)]

    Does that resolve it?

  • @ChrisIceBox Excellent! Thanks, that works!
    Thanks again Chris, this has got to be the best-supported add-on to Unity!
    The game is coming along nicely - hope to get it to a level where I'm happy to share despite only being able to steal an hour here and there to work on it!

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.