{"id":1455,"date":"2026-04-19T18:08:36","date_gmt":"2026-04-19T18:08:36","guid":{"rendered":"https:\/\/sites.wsagames.com\/yy8y24\/?p=1455"},"modified":"2026-04-19T19:13:40","modified_gmt":"2026-04-19T19:13:40","slug":"customers-dialogue-system","status":"publish","type":"post","link":"https:\/\/sites.wsagames.com\/yy8y24\/2026\/04\/19\/customers-dialogue-system\/","title":{"rendered":"Customers Dialogue System"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>The video shows customers dialogue system:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-video alignwide\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/Customers-Dialogue-System.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Customers Dialogue System:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All the NPCs in the scene share the same blueprint, so using the standard method would result in every NPC having the same dialogue. I have therefore added variables; although we are still using a single blueprint, each NPC can now trigger different dialogue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Customers Dialogue Text\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"609\" data-id=\"1463\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204228-1-1024x609.png\" alt=\"\" class=\"wp-image-1463\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204228-1-1024x609.png 1024w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204228-1-300x179.png 300w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204228-1-768x457.png 768w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204228-1-1536x914.png 1536w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204228-1-2048x1219.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"562\" height=\"373\" data-id=\"1462\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204237.png\" alt=\"\" class=\"wp-image-1462\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204237.png 562w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-204237-300x199.png 300w\" sizes=\"(max-width: 562px) 100vw, 562px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">First, create a user control. Within the user control, add a UI image for the dialogue box, then add a text field named \u2018DialogueText\u2019 and tick the \u2018Is Variable\u2019 box. This variable will appear in the event diagram. In the event diagram, add another variable named \u2018DialogueID\u2019 with the type set to \u2018Name\u2019.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My approach in Blueprint is as follows: the UI is triggered automatically. I retrieve the DialogueID. I have currently named the three NPCs \u2018customer<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u2019, \u2018customer 2\u2019 and \u2018customer 3\u2019. I then use these names to determine which text content to trigger. In Blueprint, I can set the text directly within the Blueprint itself.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"613\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-203940-1024x613.png\" alt=\"\" class=\"wp-image-1466\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-203940-1024x613.png 1024w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-203940-300x179.png 300w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-203940-768x459.png 768w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-203940-1536x919.png 1536w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-17-203940-2048x1225.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The UI is created when the player collides with the NPC\u2019s collision volume. The `DialogueID` variable is passed to the newly created UI, which identifies the NPC\u2019s ID and triggers the corresponding text to be displayed in the viewport. The UI is removed when the player leaves the collision volume.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The video shows customers dialogue system: Customers Dialogue System: All the NPCs in the scene share the same blueprint, so using the standard method would result in every NPC having the same dialogue. I have therefore added variables; although we are still using a single blueprint, each NPC can now trigger different dialogue. Customers Dialogue [&hellip;]<\/p>\n","protected":false},"author":56,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75,1],"tags":[],"class_list":["post-1455","post","type-post","status-publish","format-standard","hentry","category-development","category-year2"],"_links":{"self":[{"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/posts\/1455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/users\/56"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/comments?post=1455"}],"version-history":[{"count":5,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/posts\/1455\/revisions"}],"predecessor-version":[{"id":1467,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/posts\/1455\/revisions\/1467"}],"wp:attachment":[{"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/media?parent=1455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/categories?post=1455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/tags?post=1455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}