Announcement

Collapse
No announcement yet.

Unreal Engine 4.20 Released!

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

    Is there an ETA for 4.20.2 hotfix? It's being a pain working with UE-62042. Thanks!

    Comment


      I’ve been having trouble joining sessions through blueprint nodes starting in 4.20 on IOS over WiFi LAN. After successfully joining, the server map doesn’t load. This wasn’t an issue for me in 4.19.

      Comment


        Originally posted by Shadow.Storm View Post

        Hi cyaoeu!
        To do this, use the Get Curve Position node to get your curve's position in the atlas, then pass that to Set Scalar Parameter on your MID.

        You can see an example setup here:
        https://docs.unrealengine.com/en-us/...sesInMaterials

        Thanks!
        Thanks, actually I tried that setup before and it didn't work, tried it again now and got it to work. So I'm guessing Position means y coordinates in the atlas "texture"? "Get Curve Position" sounds a bit weird to me. Especially in the documentation.

        "Accessing Curve Atlases through Blueprint

        In Blueprint, you can set the scalar parameter value on a Dynamic Material Instance using the Get Curve Position node. Get Curve Position takes the Curve Atlas as an input, passes the scalar value to the Set Scalar Parameter Value, and returns a Boolean indicating whether the curve was found in the atlas."


        This didn't make too much sense to me which is why I ended up asking here. I would probably write it like this:

        "Setting the active Curve Atlas Row through Blueprint

        In Blueprint, you can get the position (y coordinates) in the atlas of a specified curve using the Get Curve Position node. Get Curve Position takes the Curve Atlas and In Curve as inputs, outputting a Float of the position value for the curve you specified as the In Curve and a Boolean indicating whether the curve was found in the atlas. You can then use this position value in a Set Scalar Parameter Value node pointing to your CurveAtlasRowParameter name to set the active Curve Atlas Row in a Dynamic Material Instance."


        It also seemed to me like you don't really need the Get Curve Position node too, what's setting the active curve is the scalar in combination with the parameter name for the curve atlas row parameter. For example in a atlas with 8 curves the Get Curve Position node output 0.0625 for the first curve and 0.1875 for the second curve. So maybe something like this:

        0 - initial value (not sure what this means)
        0.0625 curve 1
        0.125 halfway between curve 1 and curve 2
        0.1875 curve 2
        0.25 halfway between curve 2 and curve 3
        and so on. Yes, you can get colors between curves which should probably be stated in the docs somewhere if this is intended behavior and not a bug. If you do so you get (from what I can tell) a lerp of the colors of the closest curves at the specific coordinate value.

        So I guess this would mean the formula for getting the pure curve color position of a curve in an atlas is (1/curves-1/(curves*2))*index or something where index is the index of either a lerped color (between 2 curves) or the curve you specified, where odd numbers are the curve assets and the even numbers are the half points. Maybe.

        Comment


          Originally posted by Neocolis View Post
          In trying to step up to 4.20 from 4.19 we discovered that we can no longer use our custom online subsystem plugin due to changes made in how FUniqueNetIdRepl is serialized with the new encoding scheme.

          When trying to connect client and server we are getting an "Error with encoded type hash" message. Digging into this we found a change in the FUniqueNetIdRepl::NetSerialize method that now uses new methods on the online subsystem utils class to convert a hash value to a subsystem FName however there is no way currently to inject a new subsystem to hash mapping for custom plugins.

          Is this intended behavior, an oversight or are we missing something with how to add a new custom online subsystem plugin since the 4.20 change?

          Thanks
          Having this issue too.
          Going to hack myself in for the moment, but this could kill a lot of marketplace stuff.

          Comment


            Originally posted by cyaoeu View Post

            It also seemed to me like you don't really need the Get Curve Position node too, what's setting the active curve is the scalar in combination with the parameter name for the curve atlas row parameter. For example in a atlas with 8 curves the Get Curve Position node output 0.0625 for the first curve and 0.1875 for the second curve. So maybe something like this:
            Yeah, it is true that you don't need the Get Curve Position node and you could calculate that yourself, but it does add convenience in case you change the size of your atlas or reorder your array of curves - you wouldn't have to come back and redo the math in a bunch of Blueprints.

            Comment


              n trying to step up to 4.20 from 4.19 we discovered that we can no longer use our custom online subsystem plugin due to changes made in how FUniqueNetIdRepl is serialized with the new encoding scheme.

              When trying to connect client and server we are getting an "Error with encoded type hash" message. Digging into this we found a change in the FUniqueNetIdRepl::NetSerialize method that now uses new methods on the online subsystem utils class to convert a hash value to a subsystem FName however there is no way currently to inject a new subsystem to hash mapping for custom plugins.

              Is this intended behavior, an oversight or are we missing something with how to add a new custom online subsystem plugin since the 4.20 change?

              Thanks
              Originally posted by edcolmar View Post

              Seeing the same thing on my side.

              Anyone have a workaround or fix for this?
              Is there a workaround for this problem ?

              Comment


                Can you guys update the editor on the Unreal Tournament variant to 4.20 as well?
                Thank you!

                Comment


                  I am officially impressed! Well done Epic. Well done.

                  Comment


                    Originally posted by Sveitar View Post
                    Is there an ETA for 4.20.2 hotfix? It's being a pain working with UE-62042. Thanks!
                    Either I did something wrong or their fix is not working. I cherry-picked fix commit for engine build and it still doesn't generate project files with enough include directories (for example, things like "Windows\Engine\Intermediate\Build\Win64\UE4Editor\Inc\Engine", "Windows\Engine\Plugins\Online\OnlineSubsystemUtils\Intermediate\Build\Win64\UE4Editor\Inc\OnlineSubsystemUtils" or "..\..\Intermediate\Build\Win64\UE4Editor\Inc\$(ProjectName)" are missing).

                    Does it work for anyone?

                    Comment


                      HLOD gets stuck in an infinite loop with complicated projects. I've tracked it down to here:


                      Code:
                      const AActor* UHLODProxy::FindFirstActor(const ALODActor* LODActor)
                      {
                          auto RecursiveFindFirstActor = [&](const ALODActor* InLODActor)
                          {
                              const AActor* FirstActor = InLODActor->SubActors.IsValidIndex(0) ? InLODActor->SubActors[0] : nullptr;
                              while (FirstActor != nullptr && FirstActor->IsA<ALODActor>())
                              {
                                  const ALODActor* SubLODActor = Cast<ALODActor>(FirstActor);
                                  if (SubLODActor)
                                  {
                                      SubLODActor->SubActors.IsValidIndex(0) ? SubLODActor->SubActors[0] : nullptr;
                                  }
                                  else
                                  {
                                      // Unable to find a valid actor
                                      FirstActor = nullptr;
                                  }
                              }
                              return FirstActor;
                          };
                      The body of if (SubLODActor) doesn't actually do anything, guaranteeing an infinite loop if the FirstActor is an ALodActor.

                      It looks like in the body of that if statement it should be looping through all sub ALODActors and a recursive call on each until it gets a non-ALODActor or nullptr.

                      Comment


                        Originally posted by ZX.Diablo View Post

                        Either I did something wrong or their fix is not working. I cherry-picked fix commit for engine build and it still doesn't generate project files with enough include directories (for example, things like "Windows\Engine\Intermediate\Build\Win64\UE4Editor\Inc\Engine", "Windows\Engine\Plugins\Online\OnlineSubsystemUtils\Intermediate\Build\Win64\UE4Editor\Inc\OnlineSubsystemUtils" or "..\..\Intermediate\Build\Win64\UE4Editor\Inc\$(ProjectName)" are missing).

                        Does it work for anyone?
                        Yup, I modified the file manually by copy-pasting the changes from the fix commit and it worked.

                        Comment


                          Originally posted by Altrue View Post

                          Yup, I modified the file manually by copy-pasting the changes from the fix commit and it worked.
                          In general, I'm tired of waiting for more than a year of fixes
                          I studied the problem and made corrections to the UnrealBuildTool source code.
                          CLION 2018.2 works (the assembly does not work) and the latest Visual Studio 2017.
                          With VS Code there are still problems ...
                          Link UnrealBuildToolFix_4.20.1: https://cloud.mail.ru/public/7vhb/1gaTzXWLW (source in the archive).

                          If version 4.20.2 does not fix the generation of project files, I will have to make a large refactoring of UnrealBuildTool and publish it in GitHub

                          Comment


                            Originally posted by CriDos View Post

                            If version 4.20.2 does not fix the generation of project files, I will have to make a large refactoring of UnrealBuildTool and publish it in GitHub
                            That is one of the cool things about having the source code available... Thanks!

                            teak

                            "A little bit of nonsense now and then is cherished by the wisest men..."
                            -- Willy Wonka

                            Smooth Zoom Camera Plugin for 4.22 here.

                            Comment


                              So, when is 4.20.2 coming ?

                              Comment


                                Why is there not a 'flag' button in this section of the forums?

                                Comment

                                Working...
                                X