Announcement

Collapse
No announcement yet.

(39) Rama's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

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

    Victory_GetPixelsArrayFromT2D

    PixelArray.Add(RawColorArray[x * TextureWidth + y]); -> PixelArray.Add(RawColorArray[y * TextureWidth + x]);

    Comment


      Hi, Everybody. Everything ok ? I hope yes.

      So, I just install the UE 4.16. I'm loving it, but I need rebuild my Victory Plugin Plugin to run into UE 4.16. How can I make it ? Somebody it has a tutorial ?

      Thank You

      Comment


        Hi Rama,

        I downloaded the latest version of the plugin and get an error that looks very much like Sarlack's problem. I get an error when packaging to win64, using 4.15.1.
        The packaging fails when nativization is enabled for blueprints that use this plugin's nodes.

        Code:
        ...\epic games\ue_4.15\engine\source\runtime\umg\public\Components/SlateWrapperTypes.h(10): fatal error C1083: Cannot open include file: 'SlateWrapperTypes.generated.h': No such file or directory
        This looks very similar to Sarlack's problem, which it seems got solved with the latest plugin version.
        Thank you very much Your plugin is love, your plugin is life

        Comment


          Originally posted by BlackHawk17 View Post
          Hi Rama,

          I downloaded the latest version of the plugin and get an error that looks very much like Sarlack's problem. I get an error when packaging to win64, using 4.15.1.
          The packaging fails when nativization is enabled for blueprints that use this plugin's nodes.

          Code:
          ...\epic games\ue_4.15\engine\source\runtime\umg\public\Components/SlateWrapperTypes.h(10): fatal error C1083: Cannot open include file: 'SlateWrapperTypes.generated.h': No such file or directory
          This looks very similar to Sarlack's problem, which it seems got solved with the latest plugin version.
          Thank you very much Your plugin is love, your plugin is life
          Another nativization issue?

          I wonder if we can solve it the same way...
          Rule#21: Be polite, be professional, but have a plan to kill everyone you meet.

          Comment


            I've got problem. My UE version 15.2, I try latest build which made for UE 15.1. I've extracted folder and place it on Engine/Plugins/Runtime I can see it available in the Plugin management and I've enabled it but there are no any new blueprint function.

            My machine is MAC is it relates ?

            Comment


              Oh, now I know I have to add Mac to WhitelistPlatforms list

              Comment


                I actually still can't package with nativization enabled. It errors on the Array_Sort and TEnumAsByte, but I'm not sure if these are related to the victory plugin or not. I am using the Sort function from the Victory plugin.

                Comment


                  Hi, I'm having issues installing the plugin. Your installation instructions say to do the following:

                  1. put the .zip contents in a folder in your main directory where your .uproject is, called "Plugins" (name most be precise)

                  2. open editor and go to window->plugins

                  3. make sure my Victory Plugin is checked off as being active

                  4. restart editor

                  5. go to a blueprint, turn off context sensitive, look up "Victory" and you should see a lot of new blueprint nodes / functions!
                  However, I feel like this is oversimplified because I see posts about installing plugins and they mention compiling C++ code, messing with the .uproject files, and messing with .ini files. The plugin does not appear in the plugins list. I'm using 4.15, if it matters.

                  Comment


                    Originally posted by BlackHawk17 View Post
                    Hi Rama,

                    Thank you very much Your plugin is love, your plugin is life
                    Hee hee!

                    Thanks for the message [MENTION=203589]BlackHawk17[/MENTION] !



                    Rama
                    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                    ♥ Rama

                    Comment


                      Originally posted by Harcarik View Post
                      Is there a chance to add node for unloading level instance?

                      Yes or No, this is still Awesome! Thanks Rama!
                      These nodes is currently in the plugin now!

                      https://forums.unrealengine.com/show...l=1#post700340

                      Also you don't really need to use the nodes

                      Just drag off from the kismet level instance ptr and set ShouldBeLoaded to false


                      This is one of the only parts of the engine that works this way, where you can just set a bool that the engine auto checks each tick, rather than having to call a function



                      Rama
                      UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                      ♥ Rama

                      Comment


                        Hi.
                        First of all great work Rama!


                        I'm trying to port my game to Linux, using cross platform tools. Packing goes well, but when I try to run game on Linux I'm getting error in terminal.

                        Code:
                        [2017.05.22-11.12.02:360][  0]LogProperty:Error: Struct type unknown for property 'StructProperty /Game/Blueprints/VRPlayerController.VRPlayerController_C:ExecuteUbergraph_VRPlayerController.CallFunc_VictoryGetAllActionKeyBindings_Bindings.CallFunc_VictoryGetAllActionKeyBindings_Bindings'; perhaps the USTRUCT() was renamed or deleted?
                        I'm using UE4.14, windows version of game works well.

                        Comment


                          Hi Rama a little question, I know it takes some time...

                          When you plan to release Victory Plugin for 4.16?

                          Comment


                            [MENTION=552]Rama[/MENTION] any thought about the voice capture node , just being able to capture and process it into a sound node would be great. thanks

                            [MENTION=1756]AndyRomerosnoop[/MENTION]

                            Here you go latest updated to 4.16 with header change to.

                            https://cp.sync.com/dl/e1427ee40#4tw...wuuqf-ra53r5kj
                            Last edited by OverRated_AU; 05-25-2017, 10:34 AM.

                            Comment


                              Hey Rama!
                              Firstly your plugin is awesome!
                              I also bought your save plugin, **** good plugin!
                              I got one quick question.
                              I was looking for a way to spawn actor in sublevels, and I saw your plugin supports that.
                              However, you can't pass parameters like original SpawnActorFromClass did.
                              I did some research, and it is possible to archive what I wanted but I need to modify engine source code and recompile engine.
                              Since other members of my team use precompiled version from Launcher so the only option for me is to write a plugin.
                              But I found that if I write a plugin, I need to access UGameplayStatics.h which is not possible.
                              So this is a dead end, right?

                              My question is, is it possible to write a plugin let original SpawnActorFromClass supports spawning in sublevels?

                              Comment


                                Originally posted by OmicronNEGA View Post
                                Hey Rama!
                                Firstly your plugin is awesome!
                                I also bought your save plugin, **** good plugin!
                                I got one quick question.
                                I was looking for a way to spawn actor in sublevels, and I saw your plugin supports that.
                                However, you can't pass parameters like original SpawnActorFromClass did.
                                I did some research, and it is possible to archive what I wanted but I need to modify engine source code and recompile engine.
                                Since other members of my team use precompiled version from Launcher so the only option for me is to write a plugin.
                                But I found that if I write a plugin, I need to access UGameplayStatics.h which is not possible.
                                So this is a dead end, right?

                                My question is, is it possible to write a plugin let original SpawnActorFromClass supports spawning in sublevels?
                                Not Rama (I wish), but I tried the same thing as you. In my experience you have two options.

                                1. Copy the code from the VictoryPlugin, for the spawn node, in your own C++ function library and modify it:


                                Code:
                                AC_Building* UC_FunctionLibrary::SpawnBuildingIntoLevel(UObject* WorldContextObject, TSubclassOf<AC_Building> BuildingType, ESpawnActorCollisionHandlingMethod CollisionOverride, FTransform const SpawnTransform, int32 CityIndex, EBuildingTier BuildingTier, bool IsAlive, bool PhysicsEnabled, bool IsTwin, AActor* Owner)
                                {
                                	if (!GEngine)
                                	{
                                		UE_LOG(LogCore, Error, TEXT("FAILED: %s - SpawnBuildingIntoLevel -> GEngine is not valid!"), *WorldContextObject->GetName());
                                		return nullptr;
                                	}
                                	if (!BuildingType)
                                	{
                                		UE_LOG(LogCore, Error, TEXT("FAILED: %s - SpawnBuildingIntoLevel -> BuildingType is not valid!"), *WorldContextObject->GetName());
                                		return nullptr;
                                	}
                                
                                	//using a context object to get the world!
                                	UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject);
                                
                                	if (!World)
                                	{
                                		UE_LOG(LogCore, Error, TEXT("FAILED: %s - SpawnBuildingIntoLevel -> World is not valid!"), *WorldContextObject->GetName());
                                		return nullptr;
                                	}
                                
                                	//Create SpawnParameters
                                	FActorSpawnParameters SpawnParameters;
                                	SpawnParameters.SpawnCollisionHandlingOverride = CollisionOverride;
                                	SpawnParameters.bDeferConstruction = true;
                                	SpawnParameters.bAllowDuringConstructionScript = false;
                                	SpawnParameters.Owner = Owner;
                                
                                
                                	//Get Level from Name based on CityIndex.
                                	ULevel* FoundLevel = nullptr;
                                
                                	FString LevelName = GetGameSettings()->CityPrefix;
                                	LevelName += DoubleDigitInt(CityIndex);
                                
                                
                                	for (const ULevelStreaming* EachLevel : World->StreamingLevels)
                                	{
                                		if (!EachLevel) continue;
                                		//~~~~~~~~~~~~~~~~
                                
                                		ULevel* LevelPtr = EachLevel->GetLoadedLevel();
                                
                                		//Valid?
                                		if (!LevelPtr) continue;
                                		FString x = EachLevel->GetWorldAssetPackageName();
                                		//
                                		x = x.Right(7);
                                
                                		if (x == LevelName)
                                		{
                                			FoundLevel = LevelPtr;
                                			break;
                                		}
                                	}
                                	//~~~~~~~~~~~~~~~~~~~~~
                                	if (FoundLevel)
                                	{
                                		SpawnParameters.OverrideLevel = FoundLevel;
                                	}
                                	//~~~~~~~~~~~~~~~~~~~~~
                                
                                	AC_Building* SpawnedBuilding = nullptr;
                                	//World->SpawnActorDeferred<BuildingType>(BuildingType, &, &, nullptr, nullptr, false);
                                
                                
                                	//World->SpawnActor(SpawnParameters);
                                
                                	SpawnedBuilding = World->SpawnActor<AC_Building>(BuildingType, SpawnTransform.GetLocation(), SpawnTransform.Rotator(), SpawnParameters);
                                
                                
                                	//SpawnedBuilding = World->SpawnActorDeferred<AC_Building>(BuildingType, SpawnTransform);
                                
                                	if (SpawnedBuilding)
                                	{	
                                		SpawnedBuilding->SetCityIndex(CityIndex);
                                		SpawnedBuilding->BuildingTier = BuildingTier;
                                		SpawnedBuilding->isAlive = IsAlive;
                                		SpawnedBuilding->isBuildingTwin = IsTwin;
                                		SpawnedBuilding->PhysicsEnabled = PhysicsEnabled;
                                
                                		UGameplayStatics::FinishSpawningActor(SpawnedBuilding, SpawnTransform);
                                	}
                                	else
                                	{
                                		UE_LOG(LogCore, Error, TEXT("FAILED: %s - SpawnBuildingIntoLevel -> SpawnedBuilding failed to spawn!"), *WorldContextObject->GetName());
                                
                                		return nullptr;
                                	}
                                	return SpawnedBuilding;
                                }

                                2. Use the default spawning node and assign an actor that already is in that sublevel as the "Owner". This will set the spawn actor as part of that sublevel as well. <- I did this by accident and seemed to work.

                                Comment

                                Working...
                                X