Search Unity

  1. Unity 2018.3 is now released.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. We've updated our Terms of Service. Please read our blog post from Unity CTO and Co-Founder Joachim Ante here
    Dismiss Notice
  4. Want to provide direct feedback to the Unity team? Join the Unity Advisory Panel.
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice

[RELEASED] RPG Conversation Editor

Discussion in 'Assets and Asset Store' started by CreativeSpore, May 15, 2018.

  1. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019

    Asset Store Link
    : http://u3d.as/1aZ8

    DESCRIPTION:
    Simple but powerful conversation system for your indie games.
    It isn't more complicated than necessary, so you don't need to spend much time learning to use it.
    It doesn't matter if you are a newbie or a professional, you will learn how to use it very fast and it will save you time with your dialogues.
    Equipped with a wide range of events, you won't need to write a single line of code to trigger actions when a conversation is started or ended or a dialog option is selected.
    In addition, due to its simplicity, you can adapt it to your needs without any effort.

    Manual | API Doc. | WebGL Demo
    Getting Started in 3 steps

    FEATURES

    Scene View Flow Graphs (2D & 3D mode): Edit your dialogues directly in the Scene View. Just click the gameObject with a conversation to display all the Conversation Flow.

    Conversation Data: Embedded or External in an Asset File : Save memory and time by using the same conversation asset in different gameObjects or just embed the conversation data in a gameObject.

    UIDialog Component for Visual Representation: Use this component to visualize the dialog box data in game.

    Dialogue Preview: A dialog preview will show you how the UIDialog will display the dialog box in game.

    TypewritterText Component: Inherited from UI.Text component, this components also supports filled text and typing sound.

    ConversationTrigger: Start a conversation with no code using a wide range of events like onEnable, OnCollision, OnTrigger, OnTimer, OnClick, etc.

    Full Source Code & Documentation

    Demo Examples with Use Cases

    Easy Setup and Fun to Use

    Great Support: If you need help with something, just contact the support email or forum.


    GettingStarted3Steps.png 2018-05-01_16-59-53.png 2018-05-01_21-19-21.png 2018-05-01_21-28-27.png 2018-05-01_21-31-07.png
     
    Last edited: Jun 28, 2018
    Gregorik and Neviah like this.
  2. Neviah

    Neviah

    Joined:
    Dec 1, 2016
    Posts:
    190
    I really love this. Any integrations with other assets/packs/complete project templates?
     
    CreativeSpore likes this.
  3. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    Thanks for your commentary ;)
    I think it should be really easy to integrate it with any other asset, even with TextMeshPro.
    Anyway, once it is released, I will work on it based on any feedback I receive to make sure it works perctly in any situation.
     
    Neviah likes this.
  4. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    Neviah likes this.
  5. pxx00207

    pxx00207

    Joined:
    Mar 13, 2018
    Posts:
    3
    Congraturations on your release this asset!
    I bought it immediately.
    I will ask you a question if I have any problems.Thank you!
     
    CreativeSpore likes this.
  6. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    Thanks for buying it ;)
    If you have any problem let me know. It's a first release so it could be normal to find any issue even I have tested it a lot.
    Also, let me know if you think about any improvement for the tool.
     
  7. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    A new version is on the way with new features.
    I have created a tutorial video for getting started with RPG Conversation Editor. Enjoy ;)
     
    Neviah likes this.
  8. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    A new version v1.1.0 is available!

    Change Log v1.1.0:

    - ADDED TimeToContinueText to the UIDialog component to automatically go to the next text after a while.
    - ADDED ConversationTrigger events: OnKeyDown and OnKeyPressed
    - ADDED Tag Filter to ConversationTrigger so only the gameObject with certain trigger will activate it on collision
    - FIXED The UIDialog transform position is set after playing the conversation to avoid the onExit event of current conversation to change it, for example, calling OverrideUIDialogParent.
     
  9. lostdragon

    lostdragon

    Joined:
    Mar 23, 2014
    Posts:
    42
    This looks good.

    Does this handle basic quests?

    Please make a simple inventory system in the same vein. One or the other should handle quests as part of the package.

    Separate asset is okay.

    The draw here is simplicity.

    PS: Any word on part 2 of "Super Tilemap Editor: Temple of Doom"? Part 1 went up 7 months ago.
    Thanks,
     
  10. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    Good to know you liked it ;)

    About the quests, you can use Unity Event for almost any conversation action like opening/closing a dialog or conversation, selecting a dialog answer, etc.
    There is an example using conditional dialogs with a simple quest.

    But if you are talking about a parameter system or LUA scrits, it is not supported.

    Anyway, I am working in a top down game framework right now and I will include this Conversation Editor and maybe at some point I will figure out something for quests.

    Also I am thinking about creating a simple inventory system as well.
     
    lostdragon likes this.
  11. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    New version of RPG Conversation Editor v1.2.0 available!

    Changelog v1.2.0:

    • ADDED unscaledTime property to UIDialog
    • ADDED pause game property to UIDialog
    • ADDED event OnFilledTextEvent to TypewriterText component
    • ADDED property displayActionsAfterTextIsFilled to UIDialog to display the dialog actions only when the full text is displayed
    • ADDED UIDialog events OnEnableEvent and OnDisableEvent
    • FIXED don't restart the conversation when using OnButtonDown trigger using the "Submit" button and the UIDialog was not animated.
    • FIXED select the first action when actions are visible after the text is filled
    • FIXED some bugs generating the Dialog Preview
    • FIXED dialog preview displacement when the pivot is not centered
    • FIXED not enabling the actionList UIDialog element when the dialog has no actions to show
     
  12. lostdragon

    lostdragon

    Joined:
    Mar 23, 2014
    Posts:
    42

    This framework you're talking about - is that another asset you're working on?

    I ask because what I'm really into is tile-based, turn-based, top-down games ala "Magic Candle" or "Ultima" - maybe with some Roguelike thrown in. They're very nostalgic for me.

    I feel like existing inventory and dialogue systems are overkill for a game like that though.

    This dialogue system is more in line with the setup I had in mind. Can it handle some kind of scrolling message log like you see in common roguelikes ("You hit the monster. The monster hit you. You open the door.", etc.)?

    Super Tilemap Editor covers tile map editing quite well. I use it all the time.

    Thanks for your time.
     
  13. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    This framework you're talking about - is that another asset you're working on?
    Yes, it is a new framework I am working on. Right now the player I am taking Stranger Things (the game) as reference, so it is moving the character using pathfinding in a grid base. Character and enemies are moved in real time.
    You can see it working in some recent tweets https://twitter.com/CreativeSpore/status/1023941977635790849

    This dialogue system is more in line with the setup I had in mind. Can it handle some kind of scrolling message log like you see in common roguelikes ("You hit the monster. The monster hit you. You open the door.", etc.)?
    It doesn't have a scroll message dialog, but you could create one easily. Anyway, it is more thought to interact with the environment, like an NPC giving you a quest (using conditional dialog actions) or a Door that is unlocked and ask you to find a key, etc
     
    lostdragon and Neviah like this.
  14. lostdragon

    lostdragon

    Joined:
    Mar 23, 2014
    Posts:
    42
    I like the demo.

    Can the inventory handle more than 8 objects? It's nice that items stack, but I need something that could handle 30 or 40 slots.
     
  15. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    Right now, the inventory is a draft. There is nothing done.
    But when it is being implemented, I will take that into account.
     
  16. gferrari

    gferrari

    Joined:
    Jan 14, 2015
    Posts:
    76
    It will support multiple language? or I could use another asset for the translation? Thanks!
     
  17. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    I have no plans to add support for multiple language yet, but it could be posible in the future if it is worth it.
    If you need to add support for multiple languages you can do it by modifying the UIDialog component to map the dialog text with then multilanguage system you are using.

    For example, with i2 localization you can add a Localization component in the same gameObject used to display the text and refresh the term when the text is changed.
    Or you can get the translated term like this using the i2 localization class as a wrapper for the dialog text:
    text.text = ScriptLocalization.Get( sentenceText )
    ex:
    upload_2018-12-2_17-39-54.png

    BTW, Thanks for your review ;)
     
    gferrari likes this.
  18. paulson_101

    paulson_101

    Joined:
    Mar 21, 2018
    Posts:
    5
    So I added this plugin to my game. And it works fine, however. When the dialogue box pops up. I cant click on the text to move to the next conversation section.. Any ideas?
     
  19. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    I am not sure but maybe you have something blocking your mouse input. Maybe a transparent UI image or something.
    If you can send me a test project I could check what is wrong in the setup.
     
  20. paulson_101

    paulson_101

    Joined:
    Mar 21, 2018
    Posts:
    5
    Okay I have played with this thing for a few hours, and I think i am starting to get it.
    I changed the Dialog Prefab, and that fixed my clicking issue.

    Next is simply moving from one conversation to the next. I cannot get it to work:

    I have 2 conversations:

    1.png

    And I just want each to play, in order, and never repeat.

    On Sillion conversation, I have this on exit:

    2.png

    This does not trigger the next conversation, it just keeps saying conversation 1 over and over again...
     
  21. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    You need to select the default conversation in the trigger instead of an specific conversation.
    You can see an example in the demo "1. RPG Character Dialogues" where the boy last sentence moves to the next conversation. But the trigger is set to Default Conversation:
    upload_2019-1-3_12-1-26.png
     
  22. paulson_101

    paulson_101

    Joined:
    Mar 21, 2018
    Posts:
    5
    THank you so much! I have a few other quick questions, unless you can show me in a guide somewhere where to do it?

    If I wanted to make it so once a conversation is run through once, it cannot repeat?

    Can I make it so my character needs to be close to a sprite in order to be able to click? Or this is a custom feature Ill need to add?

    If I wanted to say switch scenes on button press? How would I set that up? I assume I would do a on Submit() - of some sort?
     
  23. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    I answer you below:

    If I wanted to make it so once a conversation is run through once, it cannot repeat?
    Do you mean you want to disable the conversation trigger? You can do that with an event after the conversation is over where you disable the trigger component, for example.

    Can I make it so my character needs to be close to a sprite in order to be able to click? Or this is a custom feature Ill need to add?
    You can use the event OnButtonDown instead. It checks if the player is inside the trigger collider. User the Fire1 button, usually connected to the left mouse button.

    If I wanted to say switch scenes on button press? How would I set that up? I assume I would do a on Submit() - of some sort?
    I guess you can make a dialog action that is triggering a change in the scene through some method in a game manager script.
     
  24. paulson_101

    paulson_101

    Joined:
    Mar 21, 2018
    Posts:
    5

    Everything is working great! I am down to my last issue.
    We are saving using Steam Cloud. How can I make my progress in a conversation save, to my save file? So when I load the game again, everything is remembered?
     
  25. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,019
    Hi there,

    You can save the current conversation and dialogId:
    ConversationController.ActiveConversationIndex will give your the current conversation index.
    ConversationController.uiDialogInstance.CurrentDialogId will give you the current dialogId.
    Now, when you start the conversation, you can read these values and start the conversation with:
    ConversationController.StartConversation(int conversationIndex, int dialogId)