Forum rules - please read before posting.

Dialogue close ups

I'm a total newb in AC and unity. I just bought AC, followed few tutorials and played around a bit enough to understand the basics. I'm set in making a 2d game and I was now trying to do something slightly out of the scope of the tutorials: implementing close-ups for dialogues, something similar to monkey island and pillars of the earth.

Unfortunately I couldn't find much about this in past threads, as "close-up" seems related more to zooming in on items, so pardon me if it's the wrong term and this has been already discussed.

Ideally these close ups would have animated sprites for the characters that change expression between lines, but they wouldn't be the "normal" game sprites and animations but customized ones (so I won't just use a zoomed in camera), and the background wouldn't probably be the same from the scene but a bespoke redraw background.

I've been trying the Gabriel Knight conversations example which uses a new menu item with animatable portraits, but I'm not sure if it's the right tool for what I'm thinking about. For starters, the characters shouldn't have a fixed position (they could be on either side or anywhere in the screen), and the player characters wouldn't necessarily have the same portrait in all conversations, as I could use different angles. Furthermore all elements (characters and background) should naturally overlap to give the impression of an organic shot and not a UI screen.

I'm thinking maybe I should make a new scene with custom animated elements for every conversation and animate them manually from the action list, and cut back and forth from the playing scene and these scenes when the dialogues start. But I have no idea how to make the sprites talk (maybe teleporting the "real" characters behind them?). I don't know if it's "hacky" or if it's going to be an absurd amount of work for something that can be achieved in an easier or more elegant way.

Additionally I would like to be able (ideally with the same method) to create cut scenes between gameplay sections. Again, "cut scene" seems uniquely related to scripted events happening in the scene, so sorry if it's the wrong term. My idea is having something visually similar as the above (just without interactive elements like the dialogue list) to make short simple 2/3 frames animations with entirely custom sprites. Having the possibility to slightly move the camera for a bit of parallax flavor during these animations would be the icing on the cake.

Thanks for any advice


  • edited February 2022

    Welcome to the community, @Zombiehype.

    The "Gabriel Knight converations" example is intended to demonstrate a very specific type of interface, and how AC can be extended through scripting. I'd say it's not so relevant here.

    Going with separate scenes for your dialogue sequences would certainly be viable, and may make management easier since your "shots" are then split up by scene.

    In a 2D game though, it's just as viable to have such sequences off to the side of the "regular gameplay" area of the same scene. I'd probably go with this approach myself, as it allows for easier back-and-forth between these sequences and gameplay.

    When it comes to the characters: you could have the "close up characters" be AC NPCs themselves, technically separate to the characters seen during gameplay. This'd allow you to more easily animate them, as you could give them separate idle / talking animations and not have to deal with teleporting the "real" characters behind them.

    AC SimpleCameras can be placed at the left and right sides of a sequence's background art, and then the Camera: Switch Action be used to transition between them to create a panning effect. Any background art that has AC's Parallax 2D component will pan at a different speed to create the illusion of depth.

    It may be worth looking into Timeline for such sequences, as it's great for times that feature animation, dialogue, camera and sound are all time-dependent on one another. A video on AC's Timeline integration can be found here. Though it's primarily used in 3D games, AC's MainCamera and Speech tracks will still work in 2D.

  • Hi Chris, thank you very much for the comprehensive answer! Creating substitute characters sounds a much better solution.

    In this case I won't be using portraits so the expression feature won't be available, is that correct? In order to be able to cycle through different expressions, would it be sensible to assign several 1/2 frames animations to the characters (one animation per expression) and control which one is showing through the dialogue action list?

    I will definitely look into the timeline feature to manage the whole thing, especially when it comes to cut scenes. Thanks again!

  • Expressions aren't limited to portraits - they're just the most common/convenient way of using them.

    If your characters rely on the "Sprites Unity Complex" animation engine, then you can assign an "Expression ID integer" parameter in their Inspector. If an Integer parameter matching this name is present in the character's Animator Controller, then it will take the value of their active expression ID number at runtime.

    Sprites Unity Complex is a bit more involved to work with, but offers much more control over how characters are animated - as it relies on parameters and transitions rather than AnimationClip naming convention.

    For more details on this animation mode, see the Manual's "Character animation (Sprites Unity Complex" chapter.

  • edited March 2022

    Thanks Chris! Just wanted to say that I tried with expressions in Sprite Unity Complex, tinkered a bit with the animation controller, and it worked like a charm! I think this method will suit just fine

    edit: for anyone as green as me, here's what I did:

    1) Create a new character with AC character wizard, set the "sprite unity complex" as animation engine
    2) On the character inspector, enter a custom name as "expression id integer" (eg: "expID")
    3) On the character inspector check "use expressions" and add as many expressions you need with custom names. Keep note of the ID of each ("expression #0, #1, #2 etc..). The animator will use these numbers instead of the names.
    4) Assign a new animation controller to the character as you would normally do
    5) In the animation controller, under "parameters" add a new int parameter with the same name as the value of step 2 ("expID").
    6) In the animation controller, include all your animations normally, but you will need to add transitions manually to manage the expressions change. From the "any state" block create transitions that points to each expression. For each transition, in the inspector add a new condition that says "expID equals N", where N is the expression ID as per point 3.
    7) in the action list use [expression:X] within the dialogue line text, where X is the name you gave the expression as per point 3.


  • Nice, thanks for sharing!

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.