Search Unity

LDC (Localized Dialogs & Cutscenes) - Powerful and intuitive Dialog System with tons of features!

Discussion in 'Assets and Asset Store' started by melgeorgiou, Nov 3, 2012.

  1. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi mzamara,

    The next update of LDC will be 100% Unity 5 compatible (although I was told by another user that LDC already seemed to work fine in Unity 5). In any case, I'll be working to fix any snags that exist within the next week. If you can send me an email regarding what compile errors you were seeing I'll keep an eye out for that too! :)

    Also, thanks for the link to the read-along stuff. I'll take a look at it! :)

    - Mel
     
    mzamara likes this.
  2. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    LDC 4.3 UPDATE HAS BEEN SUBMITTED!

    LDC 4.3 has been submitted to the Unity Asset Store for approval (and should be available on my website later today)!

    As well as full Unity 5 support, here's a quick look at the new features:

    SEAMLESS DIALOG THREAD NAVIGATION

    LDC 4.3 makes navigating between different dialogs insanely easy and flexible! In previous versions of LDC, if you switched to a different dialog thread the entire thread would have to fade out before the new one could be loaded in.

    "Seamless Dialog Thread Navigation" in LDC 4.3 extends the navigation tab to allow you to seamlessly inject a new dialog thread without fading out the entire DialogUI which makes everything feel completely streamlined. The welcome result of this new functionality is you can now better organise your dialogs into different prefabs / GameObjects so you don't need to have crazy long lists of dialogs if you're making a large thread. This is perfect for RPGs, Visual Novels and other conversation-heavy games where organising complex dialogs is so important.

    As the icing on the cake, it is now possible to override the start ID of a dialog thread which you can use to jump seamlessly to the exact screen of ANY dialog!

    SeamlessDialogNavigation.png

    TOKENS AS CALLBACK ARGUMENTS

    LDC 4.3 allows you to use Tokens as your callback, for even easier integration into your own custom functions and scripts:

    TokensAsCallbacks.png

    OTHER FEATURES:

    - Option to finish the Typewriter effect early when touching the screen or clicking mouse ( DialogUI > Options > Complete Typewriter Effect On Click Or Touch ).

    - Set an independant fade in time of the background dialog graphics ( Dialog UI > Options > Background Fade Duration ).


    BUGFIXES AND IMPROVEMENTS:

    - Performance Improvement in the Editor for large dialog threads ( LDC also helps you to split up your dialog screens when they are getting too large ).

    - Fixed 2 Button navigation callbacks always returning 0 as a button ID.

    - Typewriter effect algorithm improved to be more consistent across all devices.


    Hope you guys are looking forward to the new update - and remember to ALWAYS backup your projects before updating! :)

    ... Remember, if you purchased LDC from my website the new version will be available within the next few hours! :)

    - Mel
     
    red2blue likes this.
  3. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
  4. daisySa

    daisySa

    Joined:
    Dec 29, 2011
    Posts:
    340
    Hey Mel, the performance improvements inside the editor are FANTASTIC! Many thanks for implementing this, we have a lot of large dialogues so it's very much appreciated.
     
  5. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi daisyDynamics,

    Thanks for the positive feedback, always great to hear! lol :)

    - Mel
     
  6. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi Everyone,

    I'd like to let all my great LDC users know that I am close to releasing another tool called "MeshKit". I have started a thread for it in the link below:

    MESHKIT THREAD
    http://forum.unity3d.com/threads/meshkit-3d-editing-optimisation-and-asset-management-plugin.322637/

    I'm wondering if around 5 - 10 people are interested in helping me beta test the tool? In exchange I will offer them a free voucher for it upon release! :)

    Some requirements:
    - Must be using Unity 5.0.1.
    - Must be able to test on a 3D project (not 2D).
    - Must provide feedback for how well everything worked, if it met your expectations, what you would consider a fair price for it, and any thoughts / requests, etc.

    The beta would probably start early / mid next week. If you're interested in this please send me a PM / email. I'm ideally looking for an equal number of mac and windows users.

    Thanks! :)
     
  7. AGaming

    AGaming

    Joined:
    Dec 26, 2013
    Posts:
    87
    Hello again, I have a question, how can I manually set the language? What would be the player to select via the button.
     
  8. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi AGaming,

    You'd need to do this via script. Here's some sample code I used in the demo overview scene as an example:

    Code (JavaScript):
    1. // You need to reference the GUISkin of each language
    2. var originalEnglishSkin : GUISkin;
    3.  
    4. // Function to set GUISkin to English
    5. function SetToEnglish(){
    6.  
    7.    // Sets the language ( literally the language with a capital first letter!)
    8.    DialogLocalization.language = "English";
    9.  
    10.    // Sets the correct GUISkin.            
    11.    DialogOnGUI.com.skin = originalEnglishSkin;
    12.  
    13.    // Helps correct some GUI related issues.
    14.    DialogOnGUI.com.UpdateForceFocusButton();
    15. }
    If you want to toggle this via LDC, you would need to use the SendMessage action to send functions to a custom script. Another thing is if you are going to use custom language settings, you should setup your game to use prefabs for all dialogs that get loaded in dynamically.

    This is because the correct localisation is chosen as soon as the dialog's Start() function hits, if you override the automatic language detection with a custom language these dialogs that are in the scene will not be affected and use the old language.

    I'm probably going to change the way this works in an update. I think it would be cool to make this easier, perhaps adding it to some built-in actions.

    In the meantime, hope this helps! :)

    - Mel
     
  9. allisonrose

    allisonrose

    Joined:
    May 18, 2015
    Posts:
    1
    Hey there! Hopefully this hasn't been asked before, I searched but couldn't find the answer.

    I was wondering if LDC integrates with Adventure Creator? I've been using AC to make a point-and-click game, but am looking for an alternate solution for the dialogs. Thanks! :)
     
  10. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi allisonrose,

    Firstly, thanks for your interest in LDC! :)

    I haven't had first hand experience with Adventure Creator but I can say LDC is designed to work with pretty much everything! :)

    As long as Adventure Creator can either do "SendMessage" or instantiate a GameObject (which I would guess it most certainly can), then you have absolutely nothing to worry about! :) LDC dialogs are self-contained in a standard unity game object so can be easily used by anything in Unity.

    Hope that helps! :)

    - Mel
     
  11. rocarolsalomao2

    rocarolsalomao2

    Joined:
    Jun 12, 2015
    Posts:
    1
    Hi! We are having problems to use the global tokens in different scenes of the same project. We made a Dialog UI prefab in each scene, we checked "use global tokens". but they are still not being used correctly for example the variable $PlayerName (the player inserts he/his name in the first scene). Would you know what is the problem?

    Thank you very much!

    :)
     
  12. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi rocarolsalomao2,

    It sounds like you've probably overlooked something.

    As with all specific support requests, if you could send me an email / PM with your invoice ID I'll be more than happy to help out :)

    Thanks!

    - Mel
     
  13. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,126
    This looks incredible.... I'm looking through the manual, but maybe I will just ask:

    If I want to substitute my own 3D avatar instead of LDC's 2D Actors, would it simply be a matter of hiding the Actor and layering my avatar cam layer over/behind LDC? ...Is there a system within LDC that can fade in/out 3D avatars (with audio and anim)? Or would I basically be syncing events with Useq/Playmaker to control it...?
     
  14. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi wetcircuit,

    Firstly, thanks for your interest in LDC! :)

    If I've understood you correctly, you simply want to have 3D actors and animations, etc happening in the scene with LDC driving it all. This is very possible and is in fact the very thing I'm doing in my upcoming mobile title: "Post Brutal" (lol shameless plug - theres a small section towards the end of the video that shows LDC interacting with characters!)

    From a technical perspective, LDC can easily send messages to other scripts at the start or end of each screen and works with practically every system in Unity. Playmaker and Useq shouldn't have any issues. :)

    You would use the SendMessage approach to easily sync events and I've found that workflow to be intuitive, easy to use and extremely powerful in my own projects!

    Hope that helps! :)

    - Mel
     
    wetcircuit likes this.
  15. TopThreat

    TopThreat

    Joined:
    Aug 7, 2012
    Posts:
    136
    Hi Mel,

    I have implemented LDC in my project and have a couple of items that I can't seem to find an answer to, I apologize if I simply overlooked these somewhere in the documentation.

    1) When my dialogs begin at least one button is already selected. How can I disable this so that the hovering text change works properly? After a few moments it deselects the button and the text color change on mouse over works. I am not sure what I did wrong here :(
    2) When using the grid I have not figured out how to actually have the buttons in the grid do things such as send messages to other objects, or even send a debug.log statement. How do I make these actionable?

    Thanks!

    Lee
     
  16. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi LeeAllen,

    Firstly, thanks for purchasing LDC! :)

    Both of your questions most definitely have solutions!

    If you can please send me an email / pm with either your Asset Store invoice no. or your Paypal receipt if you bought LDC directly from my site, I'll be happy to help! :)

    - Mel
     
  17. TopThreat

    TopThreat

    Joined:
    Aug 7, 2012
    Posts:
    136
    Got it from the asset store. I am sending PM now :) Glad to hear there are solutions!!!
     
  18. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    LDC 4.4 UPDATE HAS BEEN SUBMITTED!

    LDC 4.4 has been submitted to the Unity Asset Store for approval (and should be available on my website later today)!

    This update is a localisation system overhaul, bringing super awesome new features!

    ONE CLICK TRANSLATIONS FOR CHINESE, KOREAN AND JAPANESE!!!

    LDC can finally automatically translate your dialogs into Chinese, Korean and Japanese!

    Chinese should be working pretty well but please note Korean and Japanese are currently still in beta. In the coming months as Yandex improves the service the results should be way better. In any case, as soon as it improves online, you'll have it in LDC automatically! :)


    A NEW VISUAL EDITOR TO SETUP LOCALIZATIONS!!!

    It's easy to use and intuitive, it's improved with new features, it's got rid of confusing people with build templates making them automatic within the system, and allows for 2 different types of language detection!

    You can of course debug the editor's language to easily simulate different systems using a simple drop down menu!

    Screen Shot 2015-06-16 at 22.28.01.png

    The screenshot above shows the traditional LDC detection system, which is to use the runtime device's operating system to detect which language to use. This is automatic and easy to use without having to script anything or bother the user.

    SET UP YOUR SUPPORTED LANGUAGES

    It's easy to support a language in LDC, just click the box next to the flag! :)

    Screen Shot 2015-06-16 at 22.34.17.png


    USE A PLAYER PREF STRING FOR LANGUAGE DETECTION!

    It's now possible to use a Player Pref string to handle the detection of languages. English will be used as the default but it will be possible to change it using the PlayerPref string within your own scripts, via the API, or even via new visual actions!

    Screen Shot 2015-06-16 at 22.28.14.png

    CHANGE THE LANGUAGE (AND GUISKIN) DURING RUNTIME WITH EASY TO USE VISUAL ACTIONS!

    It's now possible to change the language (and update the GUISkin) while the game is running, all within the LDC Actions tab (You can of course use the API too)!

    Screen Shot 2015-06-16 at 18.07.42.png

    In the screenshot above, you can see that LDC is being instructed to use Chinese and to also update the GUISkin. This automatically sets the PlayerPrefs key (if you are using that mode) so LDC will use that language from there on out, even if the user quits the game! Doesn't get simpler than that!

    ... Also, it allows you to create working dialog tools like this:

    Screen Shot 2015-06-16 at 16.40.10.png

    That's right! It's now easy to create fully working language selectors totally from within LDC's inspectors without coding a thing. There is a fully working demo added to "The LDC Demos & Extras" folder so you don't need to figure out how to do it, I've already built it for you and its good to go! LOL :)

    ... AND A PESKY BUG HAS BEEN SQUASHED!

    Managed to nail down an annoying bug that has been bothering some users for a while know, which was to mess up new dialogs from playing properly if the scene ended too early. This version *should* fix this! :)

    I hope you guys are excited about the new features and of course, everything here is a FREE upgrade!

    IMPORTANT: BACKUP BEFORE UPDATING!

    LDC Direct Website Link
    http://www.mel-georgiou.co.uk


    Will post again when it is available on the Unity Asset Store! :)


    A big thanks to all of you for supporting LDC (and myself) over the last few years - I truly appreciate it! :)

    All the best,

    - Mel
     
    Last edited: Jun 16, 2015
  19. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
  20. idurvesh

    idurvesh

    Joined:
    Jun 9, 2014
    Posts:
    493
    does it use Unity's new UI? i.e, uGUI for creating tutorials and dialog scenes ?????
     
  21. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi idurvesh,

    Thanks for your interest in LDC! =)

    It doesn't use UGUI but it works perfectly fine alongside it (internal testing shows that it works absolutely fine on mobiles too!)

    However, UGUI support is in the wish list for a future update!

    Hope that helps! :)

    - Mel
     
    Last edited: Jul 4, 2015
    idurvesh likes this.
  22. idurvesh

    idurvesh

    Joined:
    Jun 9, 2014
    Posts:
    493
    thanks for clearing out, looking forward to uGUI support soon, any idea when it will start support uGUI?

    I know you have invest alot of time on making it work with earlier GUI yet I think having uGUI sooner will help asset as just for workaround going back to legacy technology is not good for projects's future...
     
  23. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi idurvesh,

    The traditional GUI system is still the one Unity uses in the Unity Editor, built-in tools, etc, As far I'm aware it will continue to be in Unity going forward since it is a core technology the app is built with.

    All things considered uGUI is actually less beneficial when working programmatically, its benefits are in free-form UI creation where its easier to place items on screen when you're in the design stage and there is a draw call benefit too (I've spoken about this before and generally in LDC the draw call count is so low it won't even make a dent in real-world tests, even on mobile! ).

    In any case, UGUI support is planned but it is going to be a huge amount of work. In terms of the wishlist and features going forward, there are still a couple of things I would like to add to the current system for the 4.x cycle, so it's likely UGUI will be an LDC 5.0 feature!

    Hope that helps! :)

    - Mel
     
    idurvesh likes this.
  24. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    893
    Can't seem to find the playmaker actions for this, although they're clearly advertised on your Asset Store listing. Am I missing something? I've looked everywhere I could think to look for them.

    Also, is there a way to do /named/ dialogue id's or some way of referencing them without having to check the exact dialogue number to go to a given dialogue box? I'm finding the biggest problem I have with this asset is flopping through a lot of different scenes with lots of different dialogues and not being able to access each very quickly. I know you can use the find feature for the gameobject containing your dialogue, but within the system's menus themselves tends to get very tedious trying to go back and find out what the exact ID a given bit of text was on.
     
    Last edited: Jul 11, 2015
  25. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi awesomedata,

    PlayMaker Actions

    You should be able to find the PlayMaker actions in your project here:

    The LDC Demos & Extras/Third Party Extras/PlayMaker/LDC_PlayMakerActions

    Its a unity package - double click to install them!

    Navigation

    In the future it might be possible to change the ID values in the navigation tab to drop down menus which grab the notes of the dialog instead - that might make it easier to find your dialogs and connect everything together within the same dialog. I'll add that to the wishlist! :)

    In the meantime there are ways of doing it which may make sense for your project...

    Ideas

    You said you were spanning different scenes as well as dialogs which implies you have very large and complex dialogs. Most of this can be overcome with dialog management and naming conventions. I'm not sure how you've set your project up so I'm mostly theorising here. I'll explain how I've set it up in a personal RPG project and maybe it'll give you some ideas to make it easier for you.

    When talking to a character, there are several different dialogs I create for them.

    1) Logic controller - use playerprefs to figure out which dialog should play. If we've never spoken to the character before, go to introduction, otherwise play the others, depending on keys.

    2) Introduction Dialog - e.g. "Hey my name is Mel" This automatically ends with going to the Choice Dialog.
    3) Choice Dialog - e.g. " Talk, Trade, etc" ... The general choices for this character.
    4) Other Specific Dialogs for various events (handled by the controller)

    So I know that Dialog ID 1 of the Intro Dialog will start the introduction to a character, and I know that Dialog ID 1 will begin the natural "choices" of the character, etc. This means I don't really need to remember the IDs, because the dialogs have been planned out into logical sections to begin with. In the model above you should also be able to connect to the Logic Controller Dialog which *should* connect to the right dialog AND ID! lol

    In short, break up your dialogs into logical groups that make sense for your game - It'll make things way easier to manage and keep track of! :)

    Hope that helps! :)

    - Mel
     
  26. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,126
    Wow, I am loving this system....

    But one thing I do not understand is how to send an event to a Playmaker FSM... I see the actions for Playmaker, and the only thing I can think to use might be the Get Token as String/Float actions, but that means Playmaker needs to constantly "ask" for the token value to test for a change....

    I see how to trigger uSequencer, but not Playmaker... Am I missing something? What do you suggest?

    Screen Shot 2015-08-02 at 12.28.39 PM.png
     
  27. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi wetcircuit,

    Glad you're enjoying LDC! :)

    Luckily I've already built a solution for this so I'll post here on the forum so everyone can benefit:

    PLAYMAKER EVENTS

    OK, so PlayMaker events are pretty tricky because they don’t accept SendMessage events directly. Because of this, I have written a special wrapper class that allows you to use the SendMessage actions and direct them to a special script which will in turn activate the PlayMaker Event for you. It’s *almost* as easy as doing it the normal way. :)

    STEP 1 - Add This Script!
    1) Add the LDC_PlayMakerEventBridge.cs file on to your Dialog UI GameObject in the scene (script is below).

    LDC_PlayMakerEventBridge.cs
    Code (CSharp):
    1.  
    2. // PlayMaker Bridge For LDC
    3.  
    4. using UnityEngine;
    5. using System.Collections;
    6.  
    7. // NOTE: Add this component to the DialogUI GameObject!
    8.  
    9. public class LDC_PlayMakerEventBridge : MonoBehaviour {
    10.  
    11.     // Should we show console messages?
    12.     public bool showConsoleMessages = true;
    13.  
    14.     // We send an argument like this:
    15.     // PlayMakerGameObjectName|FSMName|EventName
    16.     public void PlayMakerEvent( string s ) {
    17.  
    18.         // Make sure the string we sent isn't empty ...
    19.         if( s != null && s != "" ){
    20.  
    21.             // Split the string into sections using the | character
    22.             string[] args = s.Split('|');
    23.             if(args.Length == 3){
    24.  
    25.                 // Find the PlayMaker GameObject and send the Event if it exists ...
    26.                 if( GameObject.Find( args[0] ) != null && GameObject.Find( args[0] ).GetComponent<PlayMakerFSM>() != null ){
    27.                    
    28.                     // Cache all the FSMs on this GameObject
    29.                     PlayMakerFSM[] fsms = GameObject.Find( args[0] ).GetComponents<PlayMakerFSM>() as PlayMakerFSM[];
    30.                     if( fsms != null && fsms.Length > 0){
    31.                         foreach( PlayMakerFSM fsm in fsms ){
    32.  
    33.                             // Make sure the FSM is valid and its name matches
    34.                             if( fsm != null && fsm.FsmName == args[1] ){
    35.                                 fsm.Fsm.Event( args[2] );
    36.                                 if(showConsoleMessages){ Debug.Log("Sent Function: "+ args[2] + " to FSM: "+ fsm.FsmName + " on GameObject: "+ fsm.gameObject.name ); }
    37.                                 return;
    38.                             }
    39.                         }
    40.  
    41.                         // If we couldn't find the FSM, let us know!
    42.                         if(showConsoleMessages){ Debug.Log("LDC / PlayMaker Bridge: Couldn't find an FSM called: " + args[1] ); }
    43.                     }
    44.                    
    45.  
    46.                 // Show a discreet console message if the GameObject couldn't be found.  
    47.                 } else {
    48.                     if(showConsoleMessages){ Debug.Log("LDC / PlayMaker Bridge: Couldn't Find GameObject called '"+args[0]+"' in the scene." ); }
    49.                 }
    50.             }
    51.         }
    52.     }
    53. }
    54.  
    55.  

    STEP 2 - SET UP SENDMESSAGE ACTIONS
    2) When setting up your SendMessage action in LDC - do it like this:

    Screen Shot 2015-03-28 at 13.26.28.png

    So basically you would setup the function name to be "PlayMakerEvent" and to find the "Dialog UI" GameObject.

    You also need to send a String variable - which will be in this format:

    <PlayMakerGameObject Name>|<FSM Name>|<Event Name>

    ... At this point it should work fine!

    Hope this helps! :)

    - Mel
     
    wetcircuit likes this.
  28. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,126
    WOOHOO! It works! Thank you so much!
    And record time support!
     
  29. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    You're welcome! :)

    - Mel
     
  30. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi All,

    I'm hard at work building the next version of LDC (v4.5) and I'd like to share one of the new features with everyone. I've teamed up with Stefan Laubenberger, creator of RT-Voice (a text-to-speech) plugin for Unity and created some really cool integration with LDC! :)

    Demo Video

    Here's a super quick video of some of the things that are possible:



    How It Works

    Playing a voice is incredibly easy with LDC! After you setup some voices in the DialogUI (so you can easily access them per screen), all you need to do is tell LDC to play it in the actions tab:

    RTVoice Actions.png

    There are only 2 options:

    1) You can tell the system to speak the title, the text or both (as well as silencing any existing speech).

    2) If you have chosen to speak some text, choose a voice that you've already setup!

    Voice profiles can be setup in the DialogUI for Mac and Windows independently! This makes it easy to setup your screens by simply referring to the voice by name. LDC does the rest! :)

    Please note that RTVoice only works on Mac and Windows standalone builds (and the Editor). If you want to check out RTVoice, you can find out more here!

    More info on new LDC features coming soon! :)

    - Mel
     
    Stefan-Laubenberger likes this.
  31. AlaaSerry

    AlaaSerry

    Joined:
    Mar 13, 2015
    Posts:
    11
    Hi,

    I came across your product and it looks interesting!

    Does Unity games using LDC could be ported as Windows Apps?
    Could point me to any windows App (Win8.1 or Win10) that is already published in the Windows App store?

    The reason for these questions is that I was burned once before! I had bought Crazytalk7 Pro, its Unity plugin, a punch of its content and tried to create a simple Windows App (as a proof-of-concept) to no avail and eventually told by CT folks that this was not possible:-(

    Once I got your feedback, I will decide whether to buy the product or not.

    Thank you kindly
    Alaa
     
  32. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi Alaa,

    Firstly, thanks for your interest in LDC! :)

    Well, I'm not sure about the apps my users create so I'm sure there are way more, but Ninja Guy used a very early version of LDC (like version 1.0), Flight Unlimited Las Vegas uses LDC for mission cutscenes and Post Brutal is a commercial game my company will be releasing in the next 3 - 4 months. And we have internal builds working on Metro! :)

    The Windows App store is an important platform so I'll always be doing my best to support it. :)

    Hope that helps! :)

    - Mel
     
  33. AlaaSerry

    AlaaSerry

    Joined:
    Mar 13, 2015
    Posts:
    11
    That's great, thanks!
    One last question: What is the best-practice to set and interact with LDC using scripts?
    Thanks
    Alaa
     
  34. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi Alaa,

    The great thing about LDC is it's very flexible and you can work with it in a variety of ways. My personal preference is to save all dialogs as prefabs so that each section is separate and can be easily loaded in, etc.

    But as I said, it's super easy to work with so whatever your workflow it will most likely work. You can of course do everything with the API too, but in most cases it's not necessary to do it that way. :)

    - Mel
     
  35. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi All,

    I'd like to tell everyone about the EPIC update that is coming in LDC 4.5! :)

    Here's a quick video I made to show off some of the new features like: Scrolling Text, Rich Text Injectors (with color animations), Updated Title Dialog Style, completely re-written typewritter effect with Cadence, delays, and options to control scrolling speed and type speed in real time!

    There's a huge amount more too that I'll talk about in the next post! In the meantime, here's the quick demo:



    Hope you guys are excited about this new update! It's literally the biggest revamp of LDC yet! :)

    .... More info in the upcoming posts!

    - Mel
     
  36. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    LDC - 4.5

    In this post I'm going to talk about a powerful new feature in LDC v4.5 called "Live Injectors".


    Live Injectors - Tokens, Styles and Keywords

    I'm sure most of you know about Tokens in LDC. They are easy to use typeless variables that can be "injected" throughout the system by typing the "$" character and then the name of your token. Style injectors follows on from this idea using a whole new system.

    Live injectors are different to the way tokens used to work in LDC. Previously, tokens were pre-injected before the text would display. Now, Live injectors is a constantly running process in LDC in which the system is able to provide some really powerful functionality - namely a small token language for injecting tokens, rich text and to set commands to the scrolling text or the typewriter - live!

    This means that rich text will work even when using the typewriter effect, colors can be animated, font size can be changed and alpha channels will be aware of their status so that things fade in and out as they should - all automatically!


    The New Rich Text Solution - For LDC

    Style injectors work in a similar way to tokens but instead of variables, you can apply rich text anywhere in the system. The workflow is similar to the concept of css for webpages. You create custom styles visually in the editor and then you can reference said style using the "@" character followed by the style's name. You set them up just like tokens in the Unity inspector:

    Screen Shot 2015-08-28 at 19.07.02.png

    In the screenshot above, I've opened the "@bold" style, which has been setup to make the text bold. The great thing about LDC Style injectors is how easy they are to use in your dialog text.

    Let's assume I wanted to make the following text bold:

    Screen Shot 2015-08-28 at 19.10.57.png

    All we'd need to do is write this:

    @BoldThis text should be bold.​

    That's it! LDC doesn't even need a closing bracket! All code is generated on the fly and it just works! :)

    Compare this to the ugly raw rich text codes that unity uses - which also doesn't pick up the opacity of the rest of the UI and breaks during a typewriter effect: <b>This text should be bold.</b>

    The only thing you need to tell LDC about is when a style changes. So lets say I wanted text to look like this:

    This text should be bold. This text should be in italics. This text should be normal.​

    You would write it like this:

    Screen Shot 2015-08-28 at 19.57.19.png

    ... Super easy! :)


    Injecting Keywords - @wait, @Type and @Scroll

    There are some powerful keywords you can use to control the typewriter and scrolling effects at runtime!

    Cadence - @wait

    Use the @wait keyword to apply cadence (delays) in your typewriter effect to make storytelling way more powerful by adding natural pauses. Note you can add as many delays in the text as you like!

    Example:

    "I've been thinkin',@Wait100 maybe we should talk."​

    This will pause the typewriter after the word thinkin' for 100% of a simulated typewriter second (based on the master speed of the typewriter effect).



    TypeWriter Speed - @Type

    Use the @Type keyword to change the speed of the typewriter for the remainder of the screen.

    Example:

    "@Type50This text is written at 50% Speed."​

    This will cause the typewriter effect to type 50% as fast as normal. Note you can change the speed of the typewriter as much as you want within the same text!



    TypeWriter Speed - @Scroll

    Use the @Scroll keyword to change the speed of the new automatic scrolling effects.

    Example:

    "@Scroll200This text is scrolling twice as fast!"​

    This will cause the automatic scrolling effect to type 200% as fast as normal. Note you can change the speed as much as you want within the same text (except if you're not using the typewriter effect, in which case the last setting you've written will be used)!


    API - Injectors For All!

    Even better, the rich text injectors have been created into an API for you guys to use OUTSIDE OF LDC! This means its possible to use @StyLe and $Token in your own text! There's demos showing how to use it inside OnGUI and even in uGUI too! Whatever text can support Unity's rich text system can utilise LDC's Style Injectors!



    I hope that gives some cool insights into the most powerful new feature of LDC since tokens. Hopefully you guys are excited about this! It was one of the hardest things I've ever worked on in my whole career! LOL

    I'll write some more posts about other features (of which there are many) shortly! :)

    Cheers! :)

    - Mel

    PS: Apologies for the links next to the @ symbols! The forum does this automatically! lol
     
    Last edited: Aug 29, 2015
  37. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    ... Here's what else is new in the upcoming LDC v4.5! :)

    SCROLLING OPTIONS!

    Now, automatic scrolling is the new default setting in LDC (to all but a few dialog styles where it doesn't make sense such as data entry, password, etc)! This means wherever you have dialog text that is too long, it will automatically scroll through it without showing any scroll bars, etc.

    Screen Shot 2015-08-29 at 12.04.51.png

    You can also set the scrolling to be manual with a vertical bar that the user has to manually scroll through. Alternatively, you can of course turn it off completely and have it the way it was in previous versions of LDC :)

    The DialogUI > Options section allows you to setup the default scrolling type, as well as the default speed and the ability to cut some extra space from the bottom of your text fields (to tweak it better with your own skins).


    TYPEWRITER AND SCROLLING OPTIONS CAN NOW BE SET PER SCREEN!

    There are now some easy to use drop down menus to select the kind of typewriter and scrolling effects you want on a per screen basis:

    Screen Shot 2015-08-29 at 11.56.46.png

    Typewriter can be set to "Use Default" which uses the settings in Dialog UI > Options, or you can explicitly use "Yes" and "No" to override it.

    Text scrolling can also be set to "Use Default", as well as "Automatic Scrolling", "Manual Scrolling with vertical scrollbars", or "Off".


    TITLE SCREENS ON STEROIDS!

    The title screens have been revamped to provide a huge amount of control! This is now a really powerful tool for visual novel story sections, credit screens, Title sequences, or to simply display text in any way to the user. Here's what's new:

    Screen Shot 2015-08-29 at 12.14.15.png

    Other than the new typewriter and scrolling options, the Title screens can now use many powerful overrides instead of having to set it up through skins. You can use custom fonts for the title and subtitle, have text alignment set, override the size of the text, as well as to setup text "areas". This is basically a way of cropping your text on the screen to make sure it doesn't exceed custom boundaries.

    Combining these options with various text effects (especially using injector styles to insert color animations, etc) allows you the power to create some really cool results! :)

    API UPDATES!

    - Have LDC inject rich text @Styles and $Tokens in your own strings!
    - API_DialogCreate function can now take an extra string to allow for custom GameObject names.
    - API for all relevant screens updated to use typewriter and scrolling overrides, as well as all the new features for Title screens! (your existing code may need a few tweaks if you're using the API).
    - The Dynamic Dialogs demo has also been updated so it’s easy to learn how the API works!
    - Fixed an issue that could cause custom button labels to not appear correctly!

    THE OTHER STUFF:

    DEBUG VERBOSITY OPTIONS
    - New Options to control the feedback from LDC via the console!
    - Options to toggle system, action and logic console messages independently.
    - Helps to debug your setup when you need it, and switch it off when you want an uncluttered console!

    RUNTIME
    - Code enhancements to various styles.
    - New routines should make it possible to add shadows to your title and body text regardless if you have custom backgrounds in your GUIStyles.

    INSPECTOR / EDITOR
    - Added some labels in DialogUI to better organise the dialog options.
    - Fixed an issue where adding conditions to Icon Grids would cause the UI to become too wide.

    DEMO PROJECTS & DOCS
    - Two new demo projects! The credits screen demo, and a special demo showing how to use LDC’s injectors outside of the system!
    - Documentation PDF updated!


    So that's about it - it took me 4 posts to describe all the new things coming in LDC 4.5 so that's an indicator of just how massive it is! :)

    I hope you guys are excited about this and looking forward to all the new stuff! :)

    All the best,

    - Mel
     
    Last edited: Aug 29, 2015
  38. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    LDC v4.5 IS AVAILABLE ON MY SITE!

    IMPORTANT: BACKUP BEFORE UPDATING! Also note that LDC 4.5 requires Unity 4.6.6 or higher.


    LDC Direct Website Link
    http://www.mel-georgiou.co.uk


    Will post again when it is available on the Unity Asset Store! :)

    All the best,

    - Mel
     
    Last edited: Aug 29, 2015
  39. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
  40. Arieljade

    Arieljade

    Joined:
    Sep 14, 2015
    Posts:
    2
    I tried putting some html tag <color> in the dialogue.It works though but it usually show the dialogue including the html first before changing its color. Please help me with that. TY in advance
     
  41. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi Ariejade,

    The new @ Styles feature in LDC 4.5 totally fixes that :)

    - Mel
     
  42. Arieljade

    Arieljade

    Joined:
    Sep 14, 2015
    Posts:
    2
    Cool Thanks. By the way i have another question. Can i use this in a NPC for giving quest and will i be able to follow the progress of the quest even if it is completed or not?
     
  43. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Yep, tokens can handle all of that for you :)

    For more specific advice feel free to email / pm me with you invoice No. and I'll be happy to help! :)

    - Mel
     
  44. flap_jack

    flap_jack

    Joined:
    Sep 16, 2015
    Posts:
    1
    Hi :) i have a question how can i disable the function of: for example a button, or mobile joystick when the dialogue is running?Meaning the only enabled for clicking is the next or ok button in the dialogue.
     
  45. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi flap_jack,

    Feel free to email or pm me with your invoice ID and I'll be happy to help! :)

    - Mel
     
  46. escic

    escic

    Joined:
    Aug 6, 2013
    Posts:
    31
    Hi, i want to know does LDC work fine with portrait orientation?
    because i want to put it in my portrait app game project.^__^ thanks very much!
     
  47. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi escic,

    LDC does work with Portrait orientations but bare in mind it uses screen scaling and anchoring to achieve this. In other words, landscape is the "default" orientation and it is then rotated and scaled up in order to fit the portrait orientation and keep the original aspect ratio.

    You would then need to choose how to anchor this to the screen. In most cases, choosing an orientation to the bottom of the screen would work best in this case! Check out the online manual for more info:

    >> LDC PDF DOCUMENTATION

    Check out page 70 for info on the various scaling options. There are other scaling methods but the "Scale To Fit" method (as described above) )would work best for portrait orientations.

    Hope that helps! :)

    - Mel
     
  48. LarryWP

    LarryWP

    Joined:
    Oct 31, 2014
    Posts:
    57
    I bought LDC last year but have not been using it for a while. With all these changes, I'm going to load it up and check all these new features out. You have been busy Mel!
     
  49. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    611
    Hi LarryWP,

    Haha glad you're revisiting LDC! :)

    There's another update planned for some point this month with even more great features too! :)

    - Mel
     
  50. aurel_unity

    aurel_unity

    Joined:
    Jun 21, 2015
    Posts:
    18
    Hi! I just purchased your asset, and I'm very, very happy with it !!!
    You put a lot of time in it, and it shows, congrats! I'm making a game including a lot of dialogs, so, really, $100 well spent.

    I'm curious about the next update you're talking about. Could we get a few more styles by any chance?
    I'd love to be able to tag @shake to get a spooky effect on some words, as in the Nintendo games. Or @ Bounce to get a jumping / super happy effect on some other words.

    I know it can be difficult to code, so i'd understand if it's too complicated to add, but it would bring a very polished touch to the games using your asset.

    Cheers, and congrats again. I just rated 5 stars, but LDC deserves at least ten.
     
    Last edited: Nov 5, 2015
unityunity