{"id":1496,"date":"2026-04-27T19:19:53","date_gmt":"2026-04-27T19:19:53","guid":{"rendered":"https:\/\/sites.wsagames.com\/yy8y24\/?p=1496"},"modified":"2026-04-25T20:30:41","modified_gmt":"2026-04-25T20:30:41","slug":"dialogue-typewriter-display","status":"publish","type":"post","link":"https:\/\/sites.wsagames.com\/yy8y24\/2026\/04\/27\/dialogue-typewriter-display\/","title":{"rendered":"Dialogue Typewriter Display"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>The video shows dialogue typewriter display:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-video alignwide\"><video height=\"1440\" style=\"aspect-ratio: 2400 \/ 1440;\" width=\"2400\" controls src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/Scopophobia-Unreal-Editor-2026-04-25-17-54-29.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Dialogue Typewriter Display:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>StartTyping Blueprint\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175303-1024x610.png\" alt=\"\" class=\"wp-image-1503\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175303-1024x610.png 1024w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175303-300x179.png 300w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175303-768x457.png 768w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175303-1536x915.png 1536w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175303-2048x1220.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">My blueprint approach is as follows: first, create a function called StartTyping, and implement the \u2018start typing\u2019 operation within the function\u2019s blueprint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next, create the variables: DialogueArray, DialogueIndex, FullText, CurrentIndex and TypingSpeed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, set the FullText variable by extracting the content from the DialogueArray variable and assigning it to FullText. Next, prepare the text by clearing the text box and resetting CurrentIndex to 0. Finally, start the timer, tick the \u2018looping\u2019 box, and set the value of the TypingSpeed variable. Then call the TypeNextCharacter function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TypeNextCharacter Blueprint\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"612\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175318-1024x612.png\" alt=\"\" class=\"wp-image-1505\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175318-1024x612.png 1024w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175318-300x179.png 300w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175318-768x459.png 768w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175318-1536x918.png 1536w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175318-2048x1224.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">My plan is as follows: first, set up a condition. When the condition that `CurrentIndex` is less than the length of `FullText` is met, set the text. Increment the `CurrentIndex` by 1 within the text, so that one more character is displayed each time. If the conditions are not met, clear the timer and stop typing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Dialogue Blueprint\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"611\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175156-1024x611.png\" alt=\"\" class=\"wp-image-1509\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175156-1024x611.png 1024w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175156-300x179.png 300w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175156-768x458.png 768w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175156-1536x917.png 1536w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175156-2048x1222.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The Blueprint is triggered when the player clicks the button. My Blueprint approach is as follows: first, I set a condition where CurrentIndex is less than the length of FullText. If this condition is met, I clear the timer and set the text in textbox 1 to FullText. Finally, I set CurrentIndex to equal the length of FullText. This method skips the typing animation and displays the full text immediately.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If this condition is not met, increment the `DialogueIndex` by 1. Then set up a check to determine whether the `DialogueIndex` is less than the length of the `DialogueArray`. If this condition is met, call the `StartTyping` function. If this condition is not met, remove the user control and then unlock the player\u2019s movement and restore the mouse cursor display.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>BoxCollision Blueprint\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175353-1024x610.png\" alt=\"\" class=\"wp-image-1512\" srcset=\"https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175353-1024x610.png 1024w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175353-300x179.png 300w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175353-768x458.png 768w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175353-1536x915.png 1536w, https:\/\/sites.wsagames.com\/yy8y24\/wp-content\/uploads\/sites\/65\/2026\/04\/\u5c4f\u5e55\u622a\u56fe-2026-04-25-175353-2048x1220.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is triggered when the player overlaps with the collision volume. My Blueprint approach is as follows: the Blueprint is triggered only once after the player overlaps with the collision volume. Create a widget and add it to the viewport. Once the player is detected, call the `StartTyping` function. Retrieve the player controller, lock the player\u2019s movement, and display the mouse cursor.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The video shows dialogue typewriter display: Dialogue Typewriter Display: StartTyping Blueprint\uff1a My blueprint approach is as follows: first, create a function called StartTyping, and implement the \u2018start typing\u2019 operation within the function\u2019s blueprint. Next, create the variables: DialogueArray, DialogueIndex, FullText, CurrentIndex and TypingSpeed. First, set the FullText variable by extracting the content from the DialogueArray [&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-1496","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\/1496","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=1496"}],"version-history":[{"count":9,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/posts\/1496\/revisions"}],"predecessor-version":[{"id":1513,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/posts\/1496\/revisions\/1513"}],"wp:attachment":[{"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/media?parent=1496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/categories?post=1496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.wsagames.com\/yy8y24\/wp-json\/wp\/v2\/tags?post=1496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}