Announcement

Collapse
No announcement yet.

Dialogue Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by CodeSpartan View Post
    Hi,

    You could easily add sequencer events, the second video tutorial demonstrates how to add matinee events, but adding sequencer would be very similar. And the reason we didn't add camera behaviour is because it's generally easy to implement on your own and each game needs a different implementation. The focus of this plugin is to provide a custom made, built-in node-based dialogue editor.
    So i guess that's a solid "no" on the further development? It would be really cool if you'd consider adding at least a camera behavior. I'd say this way your plugin will cover the audience of lazy game designers as well ) I'm not talking about something complex like my colleagues did for Witcher 3, but it would be cool to have a possibility to tie a more or less full dialogue producing pipeline to one tool

    Leave a comment:


  • replied
    Originally posted by Roland_Price View Post
    Hi

    As a guy who recently bought your plugin i must say that the simple stuff is solid - everything works as intended and pretty easy to use. But is there any plan for the further development? In case it's only bug fixing than i must say the price is questionable with no camera placement and sequencer support...
    Hi,

    You could easily add sequencer events, the second video tutorial demonstrates how to add matinee events, but adding sequencer would be very similar. And the reason we didn't add camera behaviour is because it's generally easy to implement on your own and each game needs a different implementation. The focus of this plugin is to provide a custom made, built-in node-based dialogue editor.

    Leave a comment:


  • replied
    Hi

    As a guy who recently bought your plugin i must say that the simple stuff is solid - everything works as intended and pretty easy to use. But is there any plan for the further development? In case it's only bug fixing than i must say the price is questionable with no camera placement and sequencer support...

    Leave a comment:


  • replied
    Originally posted by Jazz View Post
    Hello, I seem to be running into a problem but have no idea how to fix it. My conditions don't work when applied to an NPC node but do work when applied to a PC node. Is there an extra step I'm missing that's needed for them to work with NPC nodes?
    Looks like a known bug that will be fixed in the next version.

    Please try this hotfix at the bottom of post #53.

    Leave a comment:


  • replied
    Hello, I seem to be running into a problem but have no idea how to fix it. My conditions don't work when applied to an NPC node but do work when applied to a PC node. Is there an extra step I'm missing that's needed for them to work with NPC nodes?

    Leave a comment:


  • replied
    Originally posted by Glabrezu View Post
    Here's how I'd do it:

    [Visited Dialogues Explanation]
    Thanks so much Glabrezu! I don't know if I was being daft and the crunch was getting to me, but that works perfectly well.

    In addition to implementing it, I exposed some a bool to the PC Nodes that allow the developer choose whether the node will be stored into the gameinstance list.

    Thanks so much! Also, I managed to avoid dead ends by turning nodes that don't go into another node as instructions to close out the Dialogue System and return to game. This freed up the space so there won't be needless wires going to the goodbye/end node.

    It took getting use to this plugin throughout yesterday, but I have to say it turned out to be EXACTLY what I want.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    Any ideas on how to add a local bool so that once a PC Reply is selected, it won't show up again?
    Here's how I'd do it:

    Make an array of structs "VisitedDialogues" on GameInstance or on PlayerState. Could also put it on PlayerController. Whichever you prefer, just make sure it's persistent between levels.

    The struct "VisitedDialogues" itself should contain:
    1) A reference to a dialogue asset
    2) An array of ints. These will contain the node IDs that you've already clicked before.

    Then, I assume you don't want to hide any nodes that end the dialogue, even if you've clicked them before, right? Because that may result in inescapable dialogues
    Save your reply here, so you avoid saving the dialogue ending nodes in your history:



    Then insert a simple check in the "DisplayReplies" event (it spawns reply lines), so you don't spawn the ones you've already clicked before. You can find it in DemoDialogueWidget -> Event Graph.

    If you have troubles with these explanations or need a more thorough guide, don't hesitate to ask.
    Last edited by Glabrezu; 07-30-2016, 08:24 AM.

    Leave a comment:


  • replied
    So I managed to dive in and after a ton of modifications I got it working really well.

    The problem I'm having right now is that Conditions aren't working during NPC nodes. The conditions work properly with PC nodes, but when I have the NPC change conversation depending if the player has an item or if its a specific day, it defaults to the left most node no matter what. Is this a bug? I can confirm that the conditions I added work. Just not when used from NPC nodes.

    EDIT: Nevermind, I just added a condition check for NPC responses and now everything works.

    Any ideas on how to add a local bool so that once a PC Reply is selected, it won't show up again?
    Last edited by sbnewsom; 07-30-2016, 01:36 AM.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    - How acceptable is this plugin for a primarily blueprint project? I'd rather stick to blueprints, to save time and money for the project.
    Basic functionality (displaying dialogues and playing voiceover) can be done in a pure blueprint project. To add events and conditions, you need to edit one C++ file, but only the most basic C++ knowledge is required, and if you have any problems with that, just feel free to ask.

    Originally posted by sbnewsom View Post
    - I see that when you put a player choice node, it allows you to click on it, but goes right into the reply from the NPC. Can you make it so the player's dialogue is spoken when clicked on the choice? My character is fully realized and I don't want him to be a mute.
    Sure, I made a mini guide on how to do that in post #47.

    Originally posted by sbnewsom View Post
    - Is there any hope for Articy:draft integration in the future?
    Not planned at the moment.

    Originally posted by sbnewsom View Post
    - Is there a plan to export import dialogue text into CSV/XML and/or offer Localization features?
    Native UE4 localization is fully supported. I plan to add export/import if there's a demand for it.

    Originally posted by sbnewsom View Post
    - Last, I made my own node that handles my own bank of Global Variables. Both Get and Set. Is it possible to change how conditions are handled, therefore utilizing my own bank to handle condition checks?
    You can use your own nodes in condition logic. However, like I said before, adding new condition fields requires changing a C++ file.

    Leave a comment:


  • replied
    Wait a minute I'm doing a dialog game, does this mean Unreal can handle environment variables for flags? Have a look at this script because I use truckloads of environment Variables flags in my own Dialog but this is not written for the Unreal Engine but written as a windows console script. to allow me to test all the dialog branches and storyline events out in my game.

    But my game has got over 20,000 lines of interweaving text dialog, In order for it to work, I had to first define a huge amount of environment variable tags (flags) first. (over two thousand flags to keep track of everything, this includes keeping track of entities, loot drops and so on) I don't think Blueprints alone can handle tens of thousands of lines of dialog and thousands of tags. You would need a tag string text file database.

    if %vypercaptain% EQU 1 goto vypertour1
    if %snohatch% EQU 1 echo. Jones: Commander, we have a problem down here in the brig with the Snowhatch.
    if %snohatch% EQU 1 echo.
    if %snohatch% EQU 1 echo. Commander: What is the trouble?
    if %snohatch% EQU 1 echo.
    if %snohatch% EQU 1 echo. Jones: Well sir, its changed color.
    if %snohatch% EQU 1 echo.
    if %snohatch% EQU 1 echo. Commander: Oh? I better come take a look and see for myself.
    if %snohatch% EQU 1 if %loana% EQU 1 echo. Loana: Sounds like trouble.
    if %snohatch% EQU 1 echo.
    if %snohatch% EQU 1 echo.
    if %snohatch% EQU 1 echo. A) Visit the brig
    if %snohatch% EQU 1 echo.
    if %snohatch% EQU 1 set /p x1=
    rem if %snohatch% EQU 1 if %x1%==a goto REM NOT YET
    echo.
    if %tesscredits% GTR 600000 echo. You have enough credits to buy the Mark III Scanner.
    echo.
    if %goofaceslip% EQU 1 goto medgoo

    rem = If Party has all 10 plants, jump to Medical Bay to Doctor Thompson Poison Plant Storyline Script
    if %poisonbatch% EQU 1 goto docpoisonplant
    if %rosednasample% EQU 1 goto docrose
    if %stinkyvinus% EQU 1 goto vinus2
    if %kartifact% EQU 1 goto kreomvin
    if %debriscourse% EQU 1 goto debrisjh
    if %stormtell% EQU 1 goto exitthestation
    if %stormtell% EQU 0 echo.
    if %nc7shipreport% EQU 1 goto bridgereporteng
    cls
    echo.
    if %droidmemup% EQU 1 goto compucore
    if %hospvendes% EQU 1 echo. Skinar: Whew that was close Commander, they nearly succeeded in jaming the signal
    if %hospvendes% EQU 1 echo. A second longer and I would not have been able to transport you outta there in time.
    if %hospvendes% EQU 1 echo.
    if %hospvendes% EQU 1 echo. Commander: Worry about that later right now, work on clearing the docking codes so we can
    if %hospvendes% EQU 1 echo. launch the ship and get the hell outta here. I'm going to the Infirmary to
    if %hospvendes% EQU 1 echo. give her the medical supplies.
    if %hospvendes% EQU 1 pause && goto medoc
    if %hurtleonix% EQU 1 echo. Skinar: Go see the doctor
    if %hurtleonix% EQU 1 echo. she has the Leonix under observation.
    if %hurtleonix% EQU 1 echo.
    if %secureguard% EQU 1 echo. There's a security guard standing nearby watching you. . .
    if %malpractice% EQU 1 if %secureguard% EQU 1 echo. Storm: Why did you have to mess with the hospital for, this security guy gives me the creeps.
    if %malpractice% EQU 1 if %secureguard% EQU 1 sound play Storm1142.wav
    if %medy% EQU 1 echo. You have a new message.
    if %loana% EQU 1 if %vinusdone% EQU 1 echo. Jones: You have some messages, Commander.

    rem -- If Loana Party Member is dead ---
    if %loanadead% EQU echo. Jones: Commander, Central wants to speak to you you in the Vidcom Room. && bg sleep 4000 && echo. Comander: I'll get right on it && bg sleep 4000 && goto vidcom

    rem -- If Vinus is destroyed ----
    if %vplanetwarn% EQU 1 echo. Jones; Commander, Central wants to talk to you right now on Vidcom, it's urgent. && bg sleep 3000 && goto vidcom2
    echo.

    Rem -- If Kreom Artifact has been found ----
    if %kreomfind% EQU 1 echo. Storm: I know where the Telos System is. Let me see the Galaxymap. && sound play Storm121.wav && bg sleep 5000
    if %kreomfind% EQU 1 echo.
    set /a rprogress=%rprogress%+2
    if %rprogress% GTR 10 set rprogress=10
    echo. Research Progress: %rprogress% of 10
    echo.

    Rem -- If you found The Slipstream device and Rex is in the Party.

    if %spacefold% EQU 1 if %rex% EQU 1 echo. Titan Suns Rex: So what do you guys what to show me that's so important?
    if %spacefold% EQU 1 if %rex% EQU 1 echo.

    I have 10 party members in my game but this script shows all the different events happening at different stages of the game with different party members or events happening in one location, the main bridge which get triggered off at different times depending on the players progress in the game. So the dialog at the moment won't make much sense because its triggering off from other dozens of events elsewhere
    in the script.

    I don't know how to write my script into Unreal Blueprint Format or C++

    And I also use random counters as well in some of the dialog so NPC's can choose to respond back differently.

    set /a spin=%random% %%4+1
    if %spin% EQU 1 echo. Ensign Peters; Commander, Admiral Odys is back again, he says he has
    if %spin% EQU 1 echo. found your mission briefing.
    if %spin% EQU 2 echo. Ensign Peters: Commander, you can't just leave the Admiral sitting there.
    if %spin% EQU 3 echo. Ensign Peters: You are required to talk with him now.
    if %spin% EQU 4 echo. Ensign Peters: I will leave it in your hands.
    Last edited by tozan; 07-28-2016, 07:09 PM.

    Leave a comment:


  • replied
    Hey there. I'm really interested in your plugin mainly because another plugin hasn't been updated since 4.11 and I REALLY want to take advantage of 4.12. Found this baby and saw how....evolved it is compared to the other one. I have a couple of questions though.

    - How acceptable is this plugin for a primarily blueprint project? I'd rather stick to blueprints, to save time and money for the project.

    - I see that when you put a player choice node, it allows you to click on it, but goes right into the reply from the NPC. Can you make it so the player's dialogue is spoken when clicked on the choice? My character is fully realized and I don't want him to be a mute.

    - Is there any hope for Articy:draft integration in the future?

    - Is there a plan to export import dialogue text into CSV/XML and/or offer Localization features?

    - Last, I made my own node that handles my own bank of Global Variables. Both Get and Set. Is it possible to change how conditions are handled, therefore utilizing my own bank to handle condition checks?

    Thanks for your time! Much appreciated. I look forward to diving into this excellent plugin.

    Leave a comment:


  • replied
    Originally posted by sgorazd View Post
    Hi,
    Is there a way to grey out dialog line that do not fulfill conditions instead of not showing it?
    Sure, it can be done by modifying the UMG widget. If you need help with that, don't hesitate to ask.

    Leave a comment:


  • replied
    Hi,
    Is there a way to grey out dialog line that do not fulfill conditions instead of not showing it?

    Leave a comment:


  • replied
    Originally posted by MarGon View Post
    hi,
    very usefull plugin. works fine for me, but is there anywhere a overview how the variable types are called in c++? i especialy search for actor class refference.
    thanks
    Depends on what you want to do with that.

    If you want to spawn an Actor of a certain class, you can use the following:
    TSubclassOf<AActor> ActorToSpawn;

    Or if you want to kill a certain character, you could use the tag system.

    Leave a comment:


  • replied
    hi,
    very usefull plugin. works fine for me, but is there anywhere a overview how the variable types are called in c++? i especialy search for actor class refference.
    thanks

    Leave a comment:

Working...
X