{"id":1736792,"date":"2022-11-02T09:00:37","date_gmt":"2022-11-02T16:00:37","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1736792"},"modified":"2022-11-07T09:59:47","modified_gmt":"2022-11-07T17:59:47","slug":"bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","title":{"rendered":"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements"},"author":127791,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23771],"tags":[25781,757181,756352],"industry":[],"product":[36781],"class_list":["post-1736792","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","tag-3d","tag-unreal-engine","tag-urban-design","product-city-engine"],"acf":{"short_description":"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.","flexible_content":[{"acf_fc_layout":"sidebar","content":"<p><em><a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-cityengine\/overview\">ArcGIS CityEngine<\/a> is powerful 3D modeling software for creating huge, interactive and immersive urban environments in less time than with traditional modeling techniques. Try a <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-cityengine\/trial\">21-day free trial<\/a>\u00a0today.<\/em><\/p>\n","image_reference":false,"layout":"standard","image_reference_figure":"","snippet":"","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>ArcGIS CityEngine provides powerful tools to procedurally create detailed buildings or large cities. For further processing or visualizations, users often need to export these models to a third-party application.<\/p>\n<p>Unreal Engine has become a popular tool for architectural visualizations or to create interactive experiences, but a problem users typically face when exporting scenes from ArcGIS CityEngine to Unreal is the lack of high-quality materials and meshes. Luckily, Unreal Engine provides several asset libraries such as <a href=\"https:\/\/quixel.com\/\" target=\"_blank\" rel=\"noopener\">Quixel<\/a> or <a href=\"https:\/\/www.unrealengine.com\/marketplace\/en-US\/product\/twinmotion-content-for-unreal-engine-plugin-beta\" target=\"_blank\" rel=\"noopener\">Twinmotion Assets for Unreal Engine<\/a> which are free to use within the Unreal ecosystem.<\/p>\n"},{"acf_fc_layout":"kaltura","video_id":"1_wdxe6n41","time":false,"start":0,"stop":""},{"acf_fc_layout":"content","content":"<p>In this blog post, we&#8217;ll guide you through a simple workflow to replace assets in Unreal Engine after importing an ArcGIS CityEngine Datasmith scene. The replacement workflows are controlled by Unreal Engine&#8217;s Data Assets (which can be thought of as simple tabular data). These Data Assets can be shared between projects once set up correctly.<\/p>\n<p>To help demonstrate the workflow, we&#8217;ve created a template project with additional tools to assist the replacements which will be explained in detail in this blog post, so you can follow along.<\/p>\n<p>We also provide a ready-to-use ArcGIS CityEngine and Unreal Engine sample project that makes heavy use of these replacements. To open the Unreal project, make sure the <a href=\"https:\/\/www.unrealengine.com\/marketplace\/en-US\/product\/twinmotion-content-for-unreal-engine-plugin-beta?sessionInvalidated=true\">Twinmotion Content for Unreal Engine Plugin<\/a> is installed.<\/p>\n<p><span style=\"font-weight: normal !msorm\"><strong>Download<\/strong><\/span><strong> links<\/strong><\/p>\n<p><a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/EXHa_EAzYSFHtf-8cCHMY2MBNYBDLQkUTgUfpgeCC-YVew?e=neVc7L\">CityEngine Replacement Template Project for Unreal<\/a><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Replacement project which can be used as a template for new projects<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/ETGrAMbLdMhKuNccHY-7WOQB0QxNOq6IMt-EYgvrSKANTw?e=3Vj2wl\">CityEngine Replacement Plugin for Unreal<\/a><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Replacement plugin which can be integrated into existing projects<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/EWwS0CRfZGBMrNTiU_CutgwBzm1WdNVo0Tk1pwOxbjd4SA?e=g2ssrL\">Boston Example Unreal Project<\/a><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Requires the <a href=\"https:\/\/www.unrealengine.com\/marketplace\/en-US\/product\/twinmotion-content-for-unreal-engine-plugin-beta\">Twinmotion Content for Unreal Engine Plugin<\/a> to be installed<\/li>\n<li>Note: large download 3.2 GB<\/li>\n<li>Minimum system requirements: NVIDIA GeForce RTX 2060 graphics card<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/EVM0WDJv2q1DkHa6lDi-fPwBPCI9YaSD7_3cdUAPruzifw?e=V9bK1L\">Boston Example CityEngine Project<\/a><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Requires the latest <a href=\"https:\/\/github.com\/d-wasserman\/Complete_Street_Rule\/releases\">Complete Street Rule<\/a> example project downloaded to your workspace<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>Replacement Workflow<\/h1>\n"},{"acf_fc_layout":"content","content":"<p>In this section, we&#8217;ll explain how replacements can be defined in Unreal Engine and how they can be executed in your scene using the provided template project.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1748622,"id":1748622,"title":"reaplcement_workflow","filename":"reaplcement_workflow.png","filesize":13555,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/reaplcement_workflow","alt":"","author":"320592","description":"","caption":"Datasmith Workflow from CityEngine to Unreal Engine","name":"reaplcement_workflow","status":"inherit","uploaded_to":1736792,"date":"2022-10-27 13:15:57","modified":"2022-10-27 13:16:45","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1005,"height":184,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow-213x184.png","thumbnail-width":213,"thumbnail-height":184,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","medium-width":464,"medium-height":85,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","medium_large-width":768,"medium_large-height":141,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","large-width":1005,"large-height":184,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","1536x1536-width":1005,"1536x1536-height":184,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","2048x2048-width":1005,"2048x2048-height":184,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow-826x151.png","card_image-width":826,"card_image-height":151,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/reaplcement_workflow.png","wide_image-width":1005,"wide_image-height":184}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>First, the scene is exported from ArcGIS CityEngine using the Datasmith exporter. In Unreal, we can either use the Dataprep import workflow, or apply the replacements inside the Level viewport after importing the Datasmith scene.<\/p>\n<p>Typically, this workflow is iterative, meaning we can execute the replacements multiple times until the desired result is achieved.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1740752,"id":1740752,"title":"ce_park","filename":"ce_park-scaled.jpg","filesize":210663,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/ce_park","alt":"","author":"320592","description":"","caption":"A park generated in ArcGIS CityEngine","name":"ce_park","status":"inherit","uploaded_to":1736792,"date":"2022-10-21 12:15:55","modified":"2022-10-21 12:19:35","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":1440,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-scaled.jpg","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-scaled.jpg","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-scaled.jpg","large-width":1920,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-1536x864.jpg","1536x1536-width":1536,"1536x1536-height":864,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-2048x1152.jpg","2048x2048-width":2048,"2048x2048-height":1152,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-826x465.jpg","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/ce_park-1920x1080.jpg","wide_image-width":1920,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":1740722,"id":1740722,"title":"unreal_park","filename":"unreal_park-1.png","filesize":1894312,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/unreal_park-2","alt":"","author":"320592","description":"","caption":"The same park exported to Unreal Engine and all assets replaced with high-quality Unreal versions","name":"unreal_park-2","status":"inherit","uploaded_to":1736792,"date":"2022-10-21 11:47:42","modified":"2022-10-21 12:18:26","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":3847,"height":2107,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1.png","medium-width":464,"medium-height":254,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1.png","medium_large-width":768,"medium_large-height":421,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1.png","large-width":1920,"large-height":1052,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1-1536x841.png","1536x1536-width":1536,"1536x1536-height":841,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1-2048x1122.png","2048x2048-width":2048,"2048x2048-height":1122,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1-826x452.png","card_image-width":826,"card_image-height":452,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/unreal_park-1-1920x1052.png","wide_image-width":1920,"wide_image-height":1052}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Exporting from ArcGIS CityEngine<\/h1>\n"},{"acf_fc_layout":"content","content":"<p>To export our scene from ArcGIS CityEngine, we use the Datasmith exporter. Depending on the use-case, there are several options to consider.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1740702,"id":1740702,"title":"export_dialog_unreal","filename":"export_dialog_unreal.png","filesize":44995,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/export_dialog_unreal","alt":"","author":"320592","description":"","caption":"CityEngine Datasmith export options","name":"export_dialog_unreal","status":"inherit","uploaded_to":1736792,"date":"2022-10-21 11:12:48","modified":"2022-10-24 13:17:51","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1012,"height":731,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","medium-width":361,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","medium_large-width":768,"medium_large-height":555,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","large-width":1012,"large-height":731,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","1536x1536-width":1012,"1536x1536-height":731,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","2048x2048-width":1012,"2048x2048-height":731,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal-644x465.png","card_image-width":644,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/export_dialog_unreal.png","wide_image-width":1012,"wide_image-height":731}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<ul>\n<li><strong>Global Offset: <\/strong>Global offset should be centered to avoid precision errors due to possibly large coordinates.<\/li>\n<li><strong>Mesh Merging:\u00a0<\/strong>For small scenes this should be set to\u00a0<em>Per Initial Shape<\/em> and for large scenes to\u00a0<em>Globally<\/em> or\u00a0<em>Globally by Material<\/em>. Usually\u00a0<em>Per Initial Shape\u00a0<\/em>allows for better handling in Unreal as each building can be modified individually.<\/li>\n<li><strong>Instancing: <\/strong>When using many instances (e.g., for foliage, grass, or trees) it\u2019s recommended to set this option to <em>Use Instanced Static Mesh Actors<\/em>. This will use an optimized Hierarchical Static Mesh component in Unreal, which improves performance during the replacement workflow, as well as rendering performance at runtime. <strong>Note:<\/strong> if you are using the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#visualdataprepworkflow\">Visual Dataprep Workflow<\/a>, hierarchical instances are not rendered correctly in the preview editor.<\/li>\n<\/ul>\n<p>For additional options, refer to the <a href=\"https:\/\/doc.arcgis.com\/en\/cityengine\/latest\/help\/help-export-unreal.htm\" target=\"_blank\" rel=\"noopener\">ArcGIS CityEngine Datasmith exporter documentation<\/a>.<\/p>\n<p><strong>Hint<\/strong>: To make it easier to configure replacements in Unreal, it is recommended to name CGA materials appropriately using the <strong>material.name<\/strong> property (for example, by calling <strong>set (material.name, \u201cBrick\u201d)<\/strong>). We can reference these names later in Unreal to replace materials.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Unreal Engine<\/h1>\n<p>In Unreal, we can define the replacements and execute them on a Datasmith scene. First, we need to make sure our project contains the necessary tools. We can either use the <a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/EXHa_EAzYSFHtf-8cCHMY2MBNYBDLQkUTgUfpgeCC-YVew?e=neVc7L\">CityEngine Replacement Template Project for Unreal<\/a> if we want to start with a new project. Or alternatively for advanced use-cases we can add the <a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/ETGrAMbLdMhKuNccHY-7WOQB0QxNOq6IMt-EYgvrSKANTw?e=3Vj2wl\">CityEngine Replacement Plugin for Unreal<\/a> to an existing project by copying it to the Plugins folder of the project (see also <a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/plugins-in-unreal-engine\/#pluginfolders\">Plugins in Unreal Engine<\/a>).<\/p>\n<h2>Defining Replacements<\/h2>\n<p>The replacement workflow is controlled by Unreal Data Assets. Our template project provides two special types of Data Assets. The <strong>MeshReplacement<\/strong> type defines how to replace StaticMesh instances, and the <strong>MaterialReplacement<\/strong> type defines how Materials on Meshes are replaced.<\/p>\n<p>Before defining the replacements, these Assets need to be created in the Content Browser, by right clicking and then selecting <strong><em>Miscellaneous<\/em> \u2192<\/strong><em><strong>\u00a0Data Asset<\/strong><\/em> and then choosing either <strong>MeshReplacement<\/strong> or <strong>MaterialReplacement<\/strong>.<\/p>\n<p>Now the replacements can be added and setup with data. There are two ways of setting up the necessary data: either by manual entry in the Data Asset editor, or by adding them in the scene view context menu after importing a Datasmith scene.<\/p>\n<h3>Add a Replacement Manually<\/h3>\n<p>To add replacement data manually, click the plus sign next to Replacements which will add a new entry to the Data Asset.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1736882,"id":1736882,"title":"add replacement 1","filename":"add-replacement-1.png","filesize":15856,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/add-replacement-1","alt":"","author":"127791","description":"","caption":"","name":"add-replacement-1","status":"inherit","uploaded_to":1736792,"date":"2022-10-18 18:54:19","modified":"2022-10-27 12:45:23","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":936,"height":192,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1-213x192.png","thumbnail-width":213,"thumbnail-height":192,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","medium-width":464,"medium-height":95,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","medium_large-width":768,"medium_large-height":158,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","large-width":936,"large-height":192,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","1536x1536-width":936,"1536x1536-height":192,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","2048x2048-width":936,"2048x2048-height":192,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1-826x169.png","card_image-width":826,"card_image-height":169,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-1.png","wide_image-width":936,"wide_image-height":192}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>The <strong>MaterialReplacement<\/strong> Data Asset can replace materials by either matching their name (Material Name Matcher) or looking for a certain texture by name (Texture Name Matcher) used by a material.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1736892,"id":1736892,"title":"add replacement 2","filename":"add-replacement-2.png","filesize":22146,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/add-replacement-2","alt":"","author":"127791","description":"","caption":"","name":"add-replacement-2","status":"inherit","uploaded_to":1736792,"date":"2022-10-18 18:54:42","modified":"2022-10-18 18:54:42","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":936,"height":326,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","medium-width":464,"medium-height":162,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","medium_large-width":768,"medium_large-height":267,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","large-width":936,"large-height":326,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","1536x1536-width":936,"1536x1536-height":326,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","2048x2048-width":936,"2048x2048-height":326,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2-826x288.png","card_image-width":826,"card_image-height":288,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/add-replacement-2.png","wide_image-width":936,"wide_image-height":326}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>The <strong>MeshReplacement<\/strong> Data Asset replaces StaticMeshes by matching their name. We can add several replacement options. If multiple options are added, they are replaced according to their defined proportion (if two replacements are added with a proportion 1 and 2, the first one is chosen with a probability of 1\/3 and the second one with a probability of 2\/3).<\/p>\n<p>The <em>Match Type<\/em> provides several options:<\/p>\n<ul>\n<li><strong>Starts With<\/strong>: Checks if the search option starts with the given text<\/li>\n<li><strong>Equals<\/strong>: Checks if the search option exactly matches the given text<\/li>\n<li><strong>Contains<\/strong>: Checks if the search option contains the given text<\/li>\n<li><strong>Regex<\/strong>: Advanced use-case to match the search option against the given regex pattern<\/li>\n<\/ul>\n<p>Note that all matching options are case sensitive.<\/p>\n<p><strong>Advanced use-cases:<\/strong> it is possible to add custom Material or StaticMesh matchers by creating Blueprints that extend from the base <strong>StaticMeshMatcher<\/strong> or <strong>MaterialMatcher<\/strong> classes.<\/p>\n<h3>Add Replacement in Viewport<\/h3>\n<p>We can also add replacements by right clicking on an Actor in the viewport and either choosing <strong><em>Replace Material<\/em> <\/strong>or <strong><em>Replace Mesh<\/em> <\/strong>in the context menu (this is only possible in the Level Editor viewport and not in the Dataprep preview viewport).<\/p>\n<p>Choosing <strong><em>Replace Material<\/em><\/strong> will open a dialog which allows you to replace the selected Material in the viewport, and similarly by choosing <strong><em>Replace Mesh<\/em><\/strong>, a dialog opens to replace the currently selected mesh. Now we need to choose a target data asset where the replacement will be added, and we can also directly execute the replacement.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1737302,"id":1737302,"title":"Screen Shot 2022-10-18 at 4.13.18 PM","filename":"Screen-Shot-2022-10-18-at-4.13.18-PM-scaled.png","filesize":458078,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-scaled.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/screen-shot-2022-10-18-at-4-13-18-pm","alt":"","author":"127791","description":"","caption":"","name":"screen-shot-2022-10-18-at-4-13-18-pm","status":"inherit","uploaded_to":1736792,"date":"2022-10-18 20:14:16","modified":"2022-10-18 20:14:16","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":905,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-scaled.png","medium-width":464,"medium-height":164,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-scaled.png","medium_large-width":768,"medium_large-height":272,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-scaled.png","large-width":1920,"large-height":679,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-1536x543.png","1536x1536-width":1536,"1536x1536-height":543,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-2048x724.png","2048x2048-width":2048,"2048x2048-height":724,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-826x292.png","card_image-width":826,"card_image-height":292,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.18-PM-1920x679.png","wide_image-width":1920,"wide_image-height":679}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Executing Replacements<\/h1>\n<p>The template project provides two ways of executing replacements: either by using the <a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/dataprep-import-customization-in-unreal-engine\/\" target=\"_blank\" rel=\"noopener\">Visual Dataprep Editor<\/a> or by executing them in the level viewport after a Datasmith import. Both workflows have advantages and will be explained in the following sections.<\/p>\n<h2 id=\"visualdataprepworkflow\">Visual Dataprep Workflow<\/h2>\n<p>Visual Dataprep allows us to automate actions during Datasmith imports. The template project adds two new types of actions, which are used to replace assets and materials. The <strong><em>Replace Meshes<\/em><\/strong> and <strong><em>Replace Materials<\/em><\/strong> Actions both take their respective Data Asset (as described above).<\/p>\n<p>The Visual Dataprep workflow is especially useful if other Dataprep operations are combined into one workflow.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1741852,"id":1741852,"title":"data_prep2","filename":"data_prep2-scaled.jpg","filesize":386708,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/data_prep2","alt":"","author":"320592","description":"","caption":"Visual Dataprep Editor","name":"data_prep2","status":"inherit","uploaded_to":1736792,"date":"2022-10-24 09:37:16","modified":"2022-10-24 12:29:42","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":1365,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-scaled.jpg","medium-width":464,"medium-height":247,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-scaled.jpg","medium_large-width":768,"medium_large-height":410,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-scaled.jpg","large-width":1920,"large-height":1024,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-1536x819.jpg","1536x1536-width":1536,"1536x1536-height":819,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-2048x1092.jpg","2048x2048-width":2048,"2048x2048-height":1092,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-826x440.jpg","card_image-width":826,"card_image-height":440,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data_prep2-1920x1024.jpg","wide_image-width":1920,"wide_image-height":1024}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>First, we need to create a new Dataprep Asset by right clicking in the content browser and selecting <strong><em>Dataprep<\/em><\/strong> <strong>\u2192<\/strong>\u00a0<strong><em>Dataprep Asset<\/em> <\/strong>and then open this asset.<\/p>\n<p>Then we can add the Datasmith export from ArcGIS CityEngine as an Input to the Dataprep Editor. Press the plus sign in the upper right corner, choose your Datasmith file, and press <strong>Import<\/strong>.<\/p>\n<p>After that, we can add the Actions that we want to apply to our imported scene. Usually, we add one Action for each replacement Data Table we have defined in our project.<\/p>\n<p>Then we can <strong><em>Execute<\/em><\/strong> the Dataprep pipeline. This step can be repeated as many times as necessary to achieve the desired replacement.<\/p>\n<p>Finally, we <strong><em>Commit<\/em><\/strong> the pipeline, which will add the scene to our level.<\/p>\n<p><strong>Note:<\/strong> the Dataprep Editor does not handle hierarchical instances properly, so if you are importing large scenes with many instances, it is recommended to use the normal Datasmith import workflow explained in the next section.<\/p>\n<h2>Datasmith Import Replacement Workflow<\/h2>\n<p>The Datasmith import workflow works in a similar way. First, we import our Datasmith scene into the current level by clicking on <strong><em>Datasmith<\/em> \u2192 <em>File Import<\/em><\/strong><em>.\u00a0<\/em>Unlike the Visual Dataprep workflow explained before, the normal Datasmith import and executing replacements in the Level viewport is also able to handle Hierarachical instances correctly, which makes it preferred for large scenes.<\/p>\n<p>After importing the Datasmith scene, right click on the <strong>DatasmithSceneActor<\/strong> in the Outliner, which will open the context menu with new entries in the CityEngine section.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1737292,"id":1737292,"title":"Screen Shot 2022-10-18 at 4.13.03 PM","filename":"Screen-Shot-2022-10-18-at-4.13.03-PM.png","filesize":164003,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\/screen-shot-2022-10-18-at-4-13-03-pm","alt":"","author":"127791","description":"","caption":"Left hand side the context menu of the Datasmith Scene Actor with new entires in the CITYENGINE section and on the right hand side the Dialog which is opened after pressing Execute Replacements.","name":"screen-shot-2022-10-18-at-4-13-03-pm","status":"inherit","uploaded_to":1736792,"date":"2022-10-18 20:14:03","modified":"2022-10-26 08:55:58","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2312,"height":1638,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM.png","medium-width":368,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM.png","medium_large-width":768,"medium_large-height":544,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM.png","large-width":1524,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM-1536x1088.png","1536x1536-width":1536,"1536x1536-height":1088,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM-2048x1451.png","2048x2048-width":2048,"2048x2048-height":1451,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM-656x465.png","card_image-width":656,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screen-Shot-2022-10-18-at-4.13.03-PM-1524x1080.png","wide_image-width":1524,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Execute Replacements<\/strong>: This will open the dialog to execute mesh and material replacements. The replacement Data Assets can be added to their respective lists, and we can also restore the Datasmith Scene before executing the replacements.<\/p>\n<p><strong>Reload Datasmith Scene<\/strong>: This will reload the source Datasmith Scene and therefore undo all replacements executed in the scene.<\/p>\n<p><strong>Merge Instances<\/strong>: This will merge all instanced StaticMesh Actors into hierarchical instanced StaticMesh Actors, which is useful if the scene was exported with the instancing option <em>Use Instanced Meshes<\/em>.<\/p>\n<p>We can now press <strong>Execute Replacements\u00a0<\/strong>which will open a dialog, where we can configure which replacements we want to execute by adding them to their respective list. <strong>Restore Datasmith Scene Before Execution<\/strong> should also be set to true to apply the replacements on the original scene<\/p>\n<p>The following video demonstrates the whole workflow in the <a href=\"https:\/\/esriis-my.sharepoint.com\/:u:\/g\/personal\/benj9250_esri_com\/EWwS0CRfZGBMrNTiU_CutgwBzm1WdNVo0Tk1pwOxbjd4SA?e=g2ssrL\">Boston Example Unreal Project<\/a>.<\/p>\n"},{"acf_fc_layout":"kaltura","video_id":"1_zzxg2lqt","time":false,"start":0,"stop":""},{"acf_fc_layout":"content","content":"<p>Now that everything is configured, you can iterate as many times as you&#8217;d like until your scene is perfected!<\/p>\n<h1>Explore More<\/h1>\n<p>We hope this tutorial helps to improve your ArcGIS CityEngine and Unreal Engine workflows! If you&#8217;re interested in more resources for learning how these two products integrate, check out this short introduction to <a href=\"https:\/\/esri.github.io\/cityengine\/vitruvio\" target=\"_blank\" rel=\"noopener\">Vitruvio, ArcGIS CityEngine&#8217;s Unreal plugin<\/a>:<\/p>\n"},{"acf_fc_layout":"kaltura","video_id":"1_op0mcf29","time":false,"start":0,"stop":""},{"acf_fc_layout":"content","content":"<p>To learn more about ArcGIS CityEngine, <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-cityengine\/overview\" target=\"_blank\" rel=\"noopener\">visit our website<\/a> or view a list of <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-cityengine\/integrations\" target=\"_blank\" rel=\"noopener\">all ArcGIS CityEngine product integrations<\/a> that can help support your workflows.<\/p>\n<p>If you&#8217;re new to ArcGIS CityEngine, <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-cityengine\/trial\" target=\"_blank\" rel=\"noopener\">try a 21-day free trial<\/a> and explore other <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-cityengine\/resources\" target=\"_blank\" rel=\"noopener\">learning resources<\/a> to get started!<\/p>\n"}],"related_articles":[{"ID":1733102,"post_author":"127791","post_date":"2022-10-20 06:45:50","post_date_gmt":"2022-10-20 13:45:50","post_content":"","post_title":"What's New in ArcGIS CityEngine 2022.1","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-arcgis-cityengine-2022-1","to_ping":"","pinged":"","post_modified":"2024-05-13 09:42:00","post_modified_gmt":"2024-05-13 16:42:00","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1733102","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"2","filter":"raw"},{"ID":511382,"post_author":"9392","post_date":"2019-05-21 01:47:42","post_date_gmt":"2019-05-21 08:47:42","post_content":"","post_title":"From CityEngine to Unreal Engine: the journey from first design steps to high-quality real-time visualization","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"the-journey-from-cityengine-to-unreal-engine","to_ping":"","pinged":"","post_modified":"2022-04-12 18:44:47","post_modified_gmt":"2022-04-13 01:44:47","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=511382","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1239042,"post_author":"8142","post_date":"2022-06-23 00:11:59","post_date_gmt":"2022-06-23 07:11:59","post_content":"","post_title":"360 VR: Create and View 360 VR Experiences on the Web","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"arcgis-360-vr","to_ping":"","pinged":"","post_modified":"2024-04-04 06:52:09","post_modified_gmt":"2024-04-04 13:52:09","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1239042","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"authors":[{"ID":320592,"user_firstname":"Benjamin","user_lastname":"Neukom","nickname":"BNeukom","user_nicename":"bneukom","display_name":"Benjamin Neukom","user_email":"BNeukom@esri.com","user_url":"","user_registered":"2022-10-20 07:33:55","user_description":"Benjamin Neukom holds a Master's degree in Computer Science from FHNW. He works as a Software Engineer in the XR and CityEngine team at the Esri R&amp;D Center Zurich with an interest in extended reality, procedural content generation and game engines.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/ee2ee5e96468074adf6c486429399cb3535df0474968c35503a601e23ed85366?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/ee2ee5e96468074adf6c486429399cb3535df0474968c35503a601e23ed85366?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"},{"ID":127791,"user_firstname":"Avonlea","user_lastname":"Fotheringham","nickname":"Avonlea Fotheringham","user_nicename":"afotheringham","display_name":"Avonlea Fotheringham","user_email":"afotheringham@esri.com","user_url":"","user_registered":"2020-11-12 18:56:49","user_description":"Avonlea Fotheringham is a Product Marketing Manager for ArcGIS CityEngine and Esri's Extended Reality capability, using her passion for language and design to evangelize GIS to the world. She is based in Ottawa, Ontario, Canada, where she uses her free time to organize an annual international poetry festival.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/headshot-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/banner-4.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/banner-1.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements<\/title>\n<meta name=\"description\" content=\"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements\" \/>\n<meta property=\"og:description\" content=\"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-07T17:59:47+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\"},\"author\":{\"name\":\"Avonlea Fotheringham\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/0e75f18905b121a1901d7d7cd02ef89d\"},\"headline\":\"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements\",\"datePublished\":\"2022-11-02T16:00:37+00:00\",\"dateModified\":\"2022-11-07T17:59:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\"},\"wordCount\":14,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"3D\",\"unreal engine\",\"Urban Design\"],\"articleSection\":[\"3D Visualization &amp; Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\",\"name\":\"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2022-11-02T16:00:37+00:00\",\"dateModified\":\"2022-11-07T17:59:47+00:00\",\"description\":\"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/0e75f18905b121a1901d7d7cd02ef89d\",\"name\":\"Avonlea Fotheringham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/headshot-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/headshot-213x200.jpg\",\"caption\":\"Avonlea Fotheringham\"},\"description\":\"Avonlea Fotheringham is a Product Marketing Manager for ArcGIS CityEngine and Esri's Extended Reality capability, using her passion for language and design to evangelize GIS to the world. She is based in Ottawa, Ontario, Canada, where she uses her free time to organize an annual international poetry festival.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/avonlea-fotheringham\/\",\"https:\/\/x.com\/AvonleaMF\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/afotheringham\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements","description":"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","og_locale":"en_US","og_type":"article","og_title":"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements","og_description":"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2022-11-07T17:59:47+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements"},"author":{"name":"Avonlea Fotheringham","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/0e75f18905b121a1901d7d7cd02ef89d"},"headline":"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements","datePublished":"2022-11-02T16:00:37+00:00","dateModified":"2022-11-07T17:59:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements"},"wordCount":14,"commentCount":1,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["3D","unreal engine","Urban Design"],"articleSection":["3D Visualization &amp; Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","name":"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2022-11-02T16:00:37+00:00","dateModified":"2022-11-07T17:59:47+00:00","description":"Learn how to replace assets in your ArcGIS CityEngine models with high-quality materials and meshes in Unreal Engine.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Bring Your ArcGIS CityEngine Models to Life in Unreal Engine with Automated Asset Replacements"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/0e75f18905b121a1901d7d7cd02ef89d","name":"Avonlea Fotheringham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/headshot-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/headshot-213x200.jpg","caption":"Avonlea Fotheringham"},"description":"Avonlea Fotheringham is a Product Marketing Manager for ArcGIS CityEngine and Esri's Extended Reality capability, using her passion for language and design to evangelize GIS to the world. She is based in Ottawa, Ontario, Canada, where she uses her free time to organize an annual international poetry festival.","sameAs":["https:\/\/www.linkedin.com\/in\/avonlea-fotheringham\/","https:\/\/x.com\/AvonleaMF"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/afotheringham"}]}},"text_date":"November 2, 2022","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/city-engine\/3d-gis\/bring-your-arcgis-cityengine-models-to-life-in-unreal-engine-with-automated-asset-replacements","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/banner-1.png","primary_product":"ArcGIS CityEngine","tag_data":[{"term_id":25781,"name":"3D","slug":"3d","term_group":0,"term_taxonomy_id":25781,"taxonomy":"post_tag","description":"","parent":0,"count":342,"filter":"raw"},{"term_id":757181,"name":"unreal engine","slug":"unreal-engine","term_group":0,"term_taxonomy_id":757181,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"},{"term_id":756352,"name":"Urban Design","slug":"urban-design","term_group":0,"term_taxonomy_id":756352,"taxonomy":"post_tag","description":"","parent":0,"count":19,"filter":"raw"}],"category_data":[{"term_id":23771,"name":"3D Visualization &amp; Analytics","slug":"3d-gis","term_group":0,"term_taxonomy_id":23771,"taxonomy":"category","description":"","parent":0,"count":690,"filter":"raw"}],"product_data":[{"term_id":36781,"name":"ArcGIS CityEngine","slug":"city-engine","term_group":0,"term_taxonomy_id":36781,"taxonomy":"product","description":"","parent":36591,"count":83,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=city-engine","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1736792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/127791"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1736792"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1736792\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1736792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1736792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1736792"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1736792"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1736792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}