{"id":590,"date":"2018-02-03T11:16:03","date_gmt":"2018-02-03T11:16:03","guid":{"rendered":"http:\/\/osiris.itabc.cnr.it\/scenebaker\/?page_id=590"},"modified":"2018-02-10T13:44:30","modified_gmt":"2018-02-10T13:44:30","slug":"proceduralutils-plugin","status":"publish","type":"page","link":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/resources\/unreal-engine-4\/proceduralutils-plugin\/","title":{"rendered":"ProceduralUtils Plugin"},"content":{"rendered":"<h2 style=\"text-align: justify;\">Download &amp; Installation<\/h2>\n<p style=\"text-align: justify;\">You can <a href=\"https:\/\/github.com\/phoenixbf\/ProceduralUtils.git\" target=\"_blank\" rel=\"noopener\">git clone the plugin directly from github<\/a> into your &#8220;Plugins&#8221; folder\u00a0(if not there, just create it) of your Unreal project, so you end up with <code><strong>&lt;YourUnrealProjectFolder&gt;\/Plugins\/ProceduralUtils\/<\/strong><\/code>.<\/p>\n<p style=\"text-align: center;\">[otw_shortcode_button href=&#8221;https:\/\/github.com\/phoenixbf\/ProceduralUtils.git&#8221; size=&#8221;large&#8221; icon_type=&#8221;social foundicon-github&#8221; icon_position=&#8221;left&#8221; shape=&#8221;radius&#8221; color_class=&#8221;otw-green&#8221; target=&#8221;_blank&#8221;]ProceduralUtils Plugin[\/otw_shortcode_button]<\/p>\n<p style=\"text-align: justify;\">Git approach is very reccomended to ease update process, although you can alternatively grab a zip package:<\/p>\n<p style=\"text-align: center;\">[otw_shortcode_button href=&#8221;https:\/\/github.com\/phoenixbf\/ProceduralUtils\/archive\/master.zip&#8221; size=&#8221;large&#8221; icon_type=&#8221;general foundicon-down-arrow&#8221; icon_position=&#8221;left&#8221; shape=&#8221;radius&#8221; color_class=&#8221;otw-greenish&#8221;]ProceduralUtils Plugin[\/otw_shortcode_button]<\/p>\n<p style=\"text-align: justify;\">For this second option, simply extract the zip somewhere, rename the folder <strong>&#8220;ProceduralUtils&#8221;<\/strong> and then drag&amp;drop it into the &#8220;Plugins&#8221; folder of your Unreal project, so you end up with <code><strong>&lt;YourUnrealProjectFolder&gt;\/Plugins\/ProceduralUtils\/<\/strong><\/code>.<\/p>\n<h2 style=\"text-align: justify;\">Description<\/h2>\n<p style=\"text-align: justify;\">This is a C++\u00a0<em>plugin<\/em>\u00a0for Unreal Engine 4 developed by B. Fanini\u00a0including common ASCII file loading with parsing options, procedural rules (randomizers, modifiers, etc&#8230;), cascading processing and more. Different combinations can be employed\u00a0into compact <em>Blueprints<\/em>\u00a0offering a flexible and manageable tool for\u00a0designers, while maintaining all parsing and processing routines at C++ level &#8211; See <a href=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/2017\/06\/07\/building-procedural-instancing-tools-for-unreal-engine\/\">this post<\/a>\u00a0for further details.\u00a0Plugin can be also employed in\u00a0VR editing mode if you like immersive editing.<\/p>\n<p><iframe loading=\"lazy\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/GIo_e8HSn8k?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p style=\"text-align: justify;\">Multiple ASCII TransformList files can be referenced in the same Blueprint and externally updated by other software, while the procedural generation automatically rebuilds\u00a0<em>right inside<\/em>\u00a0Unreal Editor. Such approach is for instance well suited for <a href=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/2017\/08\/24\/rebuilding-forum-augusti\/\"><em>game-oriented<\/em> projects or\u00a0procedural\u00a0generation of modular assets<\/a>.<\/p>\n<p><iframe loading=\"lazy\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/vgP54q72RxM?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h2>Tutorials<\/h2>\n<p style=\"text-align: center;\">&#8230;Soon there&#8230;<\/p>\n<p style=\"text-align: center;\">Meanwhile several Blueprints are <strong>already included<\/strong> in the plugin content folder. Including basic ASCII transform-list loading, segments, grids, etc&#8230;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-627\" src=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-samples.jpg\" alt=\"\" width=\"1200\" height=\"436\" srcset=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-samples.jpg 1200w, https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-samples-300x109.jpg 300w, https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-samples-768x279.jpg 768w, https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-samples-1024x372.jpg 1024w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>1 &#8211; Basic ASCII transform-lists loading and Realization<\/h3>\n<p>This is a basic sample on how to read plain ASCII file (path in string parameter &#8220;TransformList filepath&#8221;) with some parsing options and produce instanced actors (in this case, the &#8220;Template Static Mesh&#8221; parameter). Two important BP nodes to highlight in this sample:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-623\" src=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-ascii1.jpg\" alt=\"\" width=\"760\" height=\"611\" srcset=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-ascii1.jpg 760w, https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-ascii1-300x241.jpg 300w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/p>\n<p style=\"text-align: justify;\">This allow you to load &#8220;Transform File&#8221; (path to our ASCII file) offering a few parsing options. Notice the orange &#8220;Out Transform List&#8221; for later cascading processing and a &#8220;count&#8221; report variable. In this super-basic example, we just realize such production, by using &#8220;Realize&#8221; BP node. Notice you can continue the workflow by attaching additonal processing nodes and other &#8220;Realize&#8221; nodes.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-624\" src=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-realize.jpg\" alt=\"\" width=\"733\" height=\"539\" srcset=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-realize.jpg 733w, https:\/\/osiris.itabc.cnr.it\/scenebaker\/wp-content\/uploads\/2018\/02\/pu-realize-300x221.jpg 300w\" sizes=\"(max-width: 733px) 100vw, 733px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Download &amp; Installation You can git clone the plugin directly from github into your &#8220;Plugins&#8221; folder\u00a0(if not there, just create it) of your Unreal project, so you end up with &lt;YourUnrealProjectFolder&gt;\/Plugins\/ProceduralUtils\/. [otw_shortcode_button href=&#8221;https:\/\/github.com\/phoenixbf\/ProceduralUtils.git&#8221; size=&#8221;large&#8221; icon_type=&#8221;social foundicon-github&#8221; icon_position=&#8221;left&#8221; shape=&#8221;radius&#8221; color_class=&#8221;otw-green&#8221; target=&#8221;_blank&#8221;]ProceduralUtils Plugin[\/otw_shortcode_button] Git approach is very reccomended to ease update process, although you can alternatively grab &#8230; <a title=\"ProceduralUtils Plugin\" class=\"read-more\" href=\"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/resources\/unreal-engine-4\/proceduralutils-plugin\/\" aria-label=\"More on ProceduralUtils Plugin\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":602,"parent":279,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/pages\/590"}],"collection":[{"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/comments?post=590"}],"version-history":[{"count":33,"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/pages\/590\/revisions"}],"predecessor-version":[{"id":629,"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/pages\/590\/revisions\/629"}],"up":[{"embeddable":true,"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/pages\/279"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/media\/602"}],"wp:attachment":[{"href":"https:\/\/osiris.itabc.cnr.it\/scenebaker\/index.php\/wp-json\/wp\/v2\/media?parent=590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}