Announcement

Collapse
No announcement yet.

Prefab Tool - Prefab Support for Unreal Engine

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

    After doing some digging on performance, I found that most of the time was spent on repeated calls to `StaticFindObject` deep inside `FPrefabGEditorAdapter::LevelFactory_FactoryCreateText::Local::ImportProperties`. By caching the results of calls to `StaticFindObject`, I was able to bring down Apply times by an order of magnitude (from minutes to seconds). I'd be happy to send you a diff, if you want, or if you have a github repo, I can submit a PR. Cheers!

    Comment


      Click image for larger version

Name:	
Views:	1
Size:	47.6 KB
ID:	1495084 The Pivot Tool and this Mesh Tool is amazing!! a few questions:

      1) The Mesh Tool has a pivot tool, does it do all the things that the Mesh Tool's pivot tools does, is one better that the other?

      2) I have 2 big blocks and when they are put together the light shines through the gap. I though that I was able to fix it doing something in the Mesh Tool but I cannot remember what I did. Is there an option in the Mesh Tool that fixes these types of issues?

      3) If a static mesh has 6 material slots can you remove all of them except o1?

      4) Can you create Collision with the Mesh Tool?

      5) Can you combine all materials into one material?

      Thank you,
      John

      Comment


        Prefab 1.1.1 with 4.20 support is now live on both itch.io and unreal marketplace.

        1.1.1
        ------------------
        - Fix a bug that "Change Prefab to" and "Replace Selected Actors with Prefab" options not checking whether parent actors have same prefab asset assigned (Thanks code contribution from James Dzierwa @ Certain Affinity)
        - Fix a bug that prefab's pivot property should not be used when attaching spawned prefab instances
        - Add 4.20 support
        | twitter | github | #ue4tip

        Comment


          Great job Nate, glad you are back and well

          Comment


            • hi, this buy can be to a group or it's can be to a minigroup?.I buy it, but when i comit in proyect of git, my team cant be used.


            Comment


              JohnADaniels Thanks!

              SbstnDC Preab is a custom asset, if it's used in a map, the plugin need to be installed locally to open the map properly. You can convert prefab actors to normal actors so the map can be opened without installing the plugin.
              | twitter | github | #ue4tip

              Comment


                Prefab Tool 1.1.2 is now live on both itch.io and Unreal Marketplace.

                Thanks Dan Brakeley for reporting the performance issue and kindly providing code solution to improve the performance.

                In a test map of applying prefab changes to 1,000 instances, the process time go from 15,520.371 ms down to 1,196.326 ms.


                Change Log:
                1.1.2
                ------------------
                - [Performance] Now resolving Archetype from cache first (Thanks Dan Brakeley for code contribution)
                - [Performance] Delay spawned Prefab actor instances' references replacement
                - [Performance] Disable warning if destination level is hidden when spawning prefab instances
                - Apply Prefab changes on large map should expect ~10x speed improvement
                - Fix bug Prefab actorss not been refreshed when level is added to the world via UWorld::AddToWorld (Thanks Dan Brakeley for code contribution)
                - Fix bug duplicating Prefab asset not generating new prefab id
                - Refator PrefabGEditorAdapter out of PrefabToolHelpers
                | twitter | github | #ue4tip

                Comment


                  Nate , LUV prefab tool, it's what UE should do anyway I think... Although UE4 is a great achievement, there are some limitations to do with combining and instancing various types of objects, and PFT gets around all that.

                  One question: can I leave the project in a 'prefabbed' state, or is it best to convert everything to meshes / BPs before packaging?...

                  Thanks!

                  Comment


                    We downloaded the latest version of the Prefab tool from the Marketplace but we cannot manage to get its plugin to compile with our project which is on 4.20. Anybody else is seeing this?

                    Comment


                      tib_hou you can leave project in prefab state since prefab actor is essentially an empty actor in runtime (while has "prefab" behavior in editor).

                      WES_Julien Have you downloaded 4.20 version of Prefab Tool from Marketplace? Unreal marketplace servers corresponding version of plugin for different engine version. So if you have to use 4.20 engine in the launcher to download 4.20 version of the plugin.
                      | twitter | github | #ue4tip

                      Comment


                        Nate

                        I am using custom engine build and I am wondering if it's possible to use your tools with it (and how?!). Thanks beforehand

                        Comment


                          motorsep here're the steps to integrate code plugins from marketplace to your own custom build:

                          1. Download the closest engine version (which your custom build base on) of plugin from marketplace. e.g. your custom engine build is fork from 4.20, then download 4.20 version of the plugin
                          2. Copy the plugin folder from launcher build's plugins folder to your custom build's plugins folder
                          e.g. copy "C:\Program Files\Epic Games\UE_4.20\Engine\Plugins\Marketplace\PrefabTool" folder into "E:\CUSTOM_UE_BUILD\Engine\Plugins\SOME_FOLDER\PrefabTool"
                          3. Run "GenerateProjectFiles.bat" in your custom engine build folder to re-generate UE4.sln
                          4. Build UE4.sln in visual stuidio

                          And you might also want to alter the .uplugin file to include/exclude the targeting platforms:

                          e.g. one of my client are using PrefabTool in a Switch project which is not enabled by default, you can open "PrefabTool.uplugin", find the "WhitelistPlatforms" line:

                          Code:
                          {
                                "Name": "PrefabAsset",
                                "Type": "Runtime",
                                "LoadingPhase": "Default",
                                "WhitelistPlatforms": [ "Win64", "Win32", "Mac", "Android", "Linux" ]
                              },
                          Append "Switch" to the "WhitelistPlatforms" field

                          Code:
                          {
                                "Name": "PrefabAsset",
                                "Type": "Runtime",
                                "LoadingPhase": "Default",
                                "WhitelistPlatforms": [ "Win64", "Win32", "Mac", "Android", "Linux", "Switch" ]
                              },
                          Then rebuild the engine.
                          | twitter | github | #ue4tip

                          Comment





                            1.2.1 Changelog

                            1.2.1
                            ------------------
                            - Add Launch Proefab Tool Window button to prefab component detail panel
                            - Now can attach selected actors to last selected prefab actor with Attach in Prefab Tool Window
                            - Now always draw component visualizer for target actor even it's not selected​
                            - Now can toggle Prefab View Visualizer in Prefab Tool Window
                            - Color column of world outliner and prefab component visualizer now shows prefab actor with prefab un-assigned in yellow color
                            - The Color of world outliner prefab color column and prefab component visualizer is customizable now
                            - Mark Target now implicit make prefab's level current (and restore after UnMark)
                            - Destroy in Component Detail now is Destroy Keep Children and working; Remove Destroy Hierarchy since it's default behavior now
                            - Add hotkey Ctrl+Shift+End for snap selected prefab actor to floor
                            - Disable most operation in Prefab Tool Window when Prefab is disconnected​
                            - UnMark and Lock prefab actor in Prefab Tool Window now will select prefab actor afterward
                            - Fix bug that prefab actor instance's layer visibility been set to visible after spawn
                            - Fix bug that changes of instance actors' attachment not been properly reflected after apply/revert
                            - Fix Prefab View Visualizer flickering issue in some cases
                            - Fix Toggle Isolate only works properly while initial isolated prefab actor is selected
                            1.2.0 Changelog
                            1.2.0
                            ------------------
                            - Add Prefab View Visualizer to visualize prefab usage in level editor viewport
                            - Add a sortable color column in World Outliner to indicate Prefab Actor Status (Lock/UnLock/Connected/Disconnected)
                            - Add Prefab Tool Window
                            - Add Mark Prefab Actor as Target Prefab Actor option, new actors will be added to a Target Prefab Actor
                            - Add Toggle Isolate option to isolate current editing prefab actor in level editor viewport
                            - Add New Empty Prefab option and mark it as Target
                            - Add Set Prefab Pivot option to change prefab pivot base on current widget location or it's bounding box
                            - Add option to move actors to compensate pivot changes after Set Prefab Pivot
                            - Add proper Snap to Floor option to snap prefab actor to floor base on bounding box or pivot
                            - Add ability to Lock and Collapse all Prefab Actor in World Outliner
                            - Add Save/Save As in Prefab Tool Window to quickly save or duplicate current Prefab Asset
                            - Add Attach/Detach in Prefab Tool Window to quickly add/remove actors to current Prefab Actor
                            - Add an option in Prefab Editor Setting to always display Prefab Component Visualizer even it's not selected
                            - Delete a prefab actor now also delete all it's children actors by default! (Old behavior will leave it's children intact)
                            - Now lock a prefab actor (by clicking on lock widget) or click a locked prefab actor in level editor will also make it collapsed in World Outliner
                            - Move prefab actor to another level now works properly (without leaving it's children behind)
                            - Focus on prefab actor with F key works better since since prefab component calc bounds dynamically base on children now
                            - Now try to rebuild render data of ISM/HISM actors inside Prefab when it's spawned
                            - Add PrefabVersion field to PrefabAsset for future prefab format change​​
                            - Thanks Nathan Cheever and Mateusz Piaskiewicz for feature suggestions and feedbacks during 1.2.0 development!
                            | twitter | github | #ue4tip

                            Comment


                              Hey Nate, I've got a new issue for you, this time with painted foliage. I was able to repro it in UE 4.20.3 with PrefabTool version 1.2.1.1.

                              Repro:
                              1. In a new scene, create a new prefab with some meshes (I just used the table and chairs from the Starter Content).
                              2. Switch to the Foliage Painter mode (shift+4)
                              3. Add some foliage and then paint it on to the meshes in your prefab.
                              3. Return to normal mode (shift+1)
                              4. "UnLock" the prefab.
                              5. "Apply and Lock" the prefab.

                              Result:
                              Any foliage that was painted on to the prefab's meshes disappear (foliage painted to non-prefab meshes remain).

                              Expected:
                              Foliage painted to a prefab remain after an "Apply and Lock" operation.

                              Comment


                                Hi Dan, foliage support was purposedly disabled as I ran into some issues in the implementation. I'll re-eval the problem and see if can come up with proper solution this time. Will keep you updated. Thanks for bringing it up.
                                | twitter | github | #ue4tip

                                Comment

                                Working...
                                X