Announcement

Collapse
No announcement yet.

Pak File Loader Plugin

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

    #31
    No idea what went wrong there. The message says there are invalid characters ":"?

    Comment


      #32
      Originally posted by BlueMountainsIO View Post
      No idea what went wrong there. The message says there are invalid characters ":"?
      Ty good sir, its working now.

      Comment


        #33
        HOW to load LevelMap.pak??

        Comment


          #34
          Hello,

          I'm trying to load a simple level with the plugin but It does not work and I can't figured why. I've downloaded the sample project and It works well, however when I tried to reproduce it step by step (and building with the instructions described in the documentation) in my project in order to load a level, it seems like the loading failed but I have no error reported by the plugin (I've checked the output of "IsValidPakFile", "MountPakFile" and "IsPackagedBuild" and all of the of them returns true). Does anyone have a solution or an idea to help ?
          Last edited by Pangolin806; 12-09-2019, 12:39 PM.

          Comment


            #35
            Did you open the level with the OpenLevel function? Pangolin806

            Comment


              #36
              I have 3 Questions:

              1. Can you load maps with this?
              2. Can you make a progress loading bar?
              3. Does it run on Android? (For Oculus Quest)

              Really want to try this and integrate it today,

              Thank you!!

              Comment


                #37
                Originally posted by RealAero View Post
                I have 3 Questions:

                1. Can you load maps with this?
                2. Can you make a progress loading bar?
                3. Does it run on Android? (For Oculus Quest)

                Really want to try this and integrate it today,

                Thank you!!
                1. This isn't a map loader, it's a pak loader. So, using OpenLevel should work fine: https://docs.unrealengine.com/en-US/...vel/index.html
                2. The pak mounting is synchronous as I far as I know. It's almost instant for what I've noticed during testing.
                3. Tested it on Windows x64 only, as advertised on the store page.

                Comment


                  #38
                  Originally posted by BlueMountainsIO View Post

                  1. This isn't a map loader, it's a pak loader. So, using OpenLevel should work fine: https://docs.unrealengine.com/en-US/...vel/index.html
                  2. The pak mounting is synchronous as I far as I know. It's almost instant for what I've noticed during testing.
                  3. Tested it on Windows x64 only, as advertised on the store page.
                  Thank you, I appreciate the quick response!

                  As far as Question 2: I meant a progress bar for downloading the PAK files, not loading/using assets.

                  Thank you

                  Comment


                    #39
                    Hey BlueMountainsIO
                    My problem was due to a dumb typo (and I spent way too much hours on it XD), it works well now.
                    But thanks for your help.

                    Comment


                      #40
                      Hi, first of all I would like to thank you a lot for this work, it helps a lot.

                      I'm trying to load a pak file from another project and made sure dependencies are all within the pak file
                      Here is my steps: mount pak file with the correct mount point, change the mount point with a new mount point and then I try to load a map that is in this pak file, it finds it, check all the dependencies and end by a crash. This is the error:

                      Code:
                      ​​​​​​​[2020.02.19-22.28.27:998][ 16]LogMemory: Platform Memory Stats for WindowsNoEditor
                      [2020.02.19-22.28.27:998][ 16]LogMemory: Process Physical Memory: 1011.29 MB used, 1075.68 MB peak
                      [2020.02.19-22.28.27:998][ 16]LogMemory: Process Virtual Memory: 4640.42 MB used, 4664.96 MB peak
                      [2020.02.19-22.28.27:998][ 16]LogMemory: Physical Memory: 15795.55 MB used,  16929.78 MB free, 32725.33 MB total
                      [2020.02.19-22.28.27:998][ 16]LogMemory: Virtual Memory: 9266.67 MB used,  134208464.00 MB free, 134217728.00 MB total
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: === Critical error: ===
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: 
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: Assertion failed: CurrentPos + Count <= TotalSizeOrMaxInt64IfNotReady() [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp] [Line: 8407] 
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: Seeked past end of file ../../../Garou/Plugins/252flat/Content/Resources/Textures/wood-109_walnut-black-american-1_b_1.uexp (1113541477 / 48001356)
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: 
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: 
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error: [Callstack] 0x00007ffd801ba839 UnknownFunction []
                      [2020.02.19-22.28.27:998][ 16]LogWindows: Error:
                      Would you have any insights on it?

                      Comment


                        #41
                        Hello, i hope this has a simple answer.

                        So i am using this to enable custom maps in the game. if i hard code things it all works fine. loading the pak, registering the asset. and loading the level.

                        but the one thing i can't figure out that i want to be able to dynamically do is how do i read any level files in a pak?

                        for instance:

                        CustomMapDIR/Map1.Pak -> has Level1.umap
                        CustomMapDIR/Map2.Pak -> has SweetLevel.umap

                        how do i read the level1.umap and sweetlevel.umap via blueprints. (aka i dont know the map name ahead of time).

                        EDIT: NVM i figured it out.

                        For info for anyone else looking for this.

                        Register Mount Point: (yes first)
                        Root: /CustomMap/
                        ContentPath: ../../../CustomMapProject/Plugins/CustomMap/Content/
                        (make all custom maps with this layout, i made MapName.umap + MapNameContent (folder))

                        Get Files in Pak Directory:
                        Pak Dir: C:\CustomMap (variable for location)
                        Recursive (your choice)

                        Get Files in Pak Directory output into for each loop:
                        Valid Pak file? (good practice)

                        Mount Pak File:
                        Link Array Element here
                        Mount Path "" (Leave empty)

                        Load Pak Asset Registry File:
                        Asset Registry File: ../../../CustomMapProject/Plugins/CustomMap/AssetRegistry.bin

                        Then w/e you are building your list of custom maps.

                        Get Asset Registry -> Get Assets by Class
                        Class Name "World"

                        into for each loop

                        Break Array element -> AssetData

                        You get package, asset name and path to put into array to call later for building map list.
                        Last edited by Duwayne; 03-05-2020, 07:32 PM.

                        Comment


                          #42
                          Can you make it so we can load a AssetRegistry.bin out of a specific PAK if we know the expected file dir.

                          like

                          PAK -> Load Pak Asset Registry specific PAK File

                          -> PAK File
                          -> DIR "../../../Project/Plugins/Map/AssetRegistry.bin"

                          I have a issue if 10 maps/plugins are made with the same layout but different file names under the same dir

                          in this example say:
                          PAK1 = "../../../Project/Plugins/Map/Map1.level"
                          PAK2 = "../../../Project/Plugins/Map/Map2.level"
                          PAK3 = "../../../Project/Plugins/Map/Map3.level"

                          it will reload the assetregistry.bin file from the first PAK file over and over. and Map1 will be registered 3 times.

                          EDIT:

                          turns out this isn't really required as it was my own workflow that was the issue. make mount paths unique to each pak file.
                          then grab the mount point and pass the registry file.

                          Last edited by Duwayne; 03-11-2020, 11:03 AM.

                          Comment


                            #43
                            Duwayne
                            As far as I know the engine doesn't load the asset registry file automatically?

                            There is a function named LoadPakAssetRegistryFile (see documentation).

                            Comment


                              #44
                              BlueMountainsIO Hey, I wrote a question on marketplace for you but I thought Im just going to rewrite it here so it's easier to notice then.
                              So what I am trying to ask is that, does the plugin handle mounting/loading pak from a plugin that is not registered in the base project. Say, another user create a plugin from the base project, package the plugin and then send the pak to me. Would this Pak Loader be able to load that pak in my base project (that doesn't contain the user's plugin)? Similiar to how community work or community maps work. Thanks a lot

                              Comment


                                #45
                                Originally posted by RJS Jake View Post
                                BlueMountainsIO Hey, I wrote a question on marketplace for you but I thought Im just going to rewrite it here so it's easier to notice then.
                                So what I am trying to ask is that, does the plugin handle mounting/loading pak from a plugin that is not registered in the base project. Say, another user create a plugin from the base project, package the plugin and then send the pak to me. Would this Pak Loader be able to load that pak in my base project (that doesn't contain the user's plugin)? Similiar to how community work or community maps work. Thanks a lot
                                The pak mounting procedure is independent from what contents are inside the pak or from which project it originates.
                                If the mounting succeeds can depend on the engine version where you are loading it from and the engine version where the pak was created. There are also some settings which can interfere with it.

                                If the content from the pak can be used within your project where it loads from can also depend on the version and on some engine settings. In the end it's up to Unreal. This plugin just wraps functions around the engine's one, so that it's easier to use.

                                Limitations:
                                • Only tested on Windows x64.
                                • Loading assets from mounted Pak files only works in packaged/shipping builds of your project. (Not in Editor)
                                • You can't load unsigned Pak files if your game project has Pak signing enabled.
                                • Loading pak files that have been created with a different engine version than your project might not load.

                                Comment

                                Working...
                                X