4.8 Transition Guide

Im seeing what I think is strange behavior with AGameMode::Possess. Im extending shootergame and spawn a new AI controller. Then I call RestartPlayer on the new AI Controller, and get this error:



Warning Possess function should only be used by the network authority


The code that calls this is:



if (Role = ROLE_Authority)
	{	
	MyGame->RestartPlayer(Cast<AController>(SpawnedPC));
	}


As far as I can tell, Im checking to make sure its only called from the authority. Any ideas why I still get this warning?

You need a comparison operator ‘==’, not an assignment operator ‘=’ inside your if statement.

Ugh…you are right. Still get the warning message with “==” though.

I had an issue with TScriptInterface on Blueprint, and switched back to 4.7.6
The report is

In 4.7 I was able to compile my project’s Editor for 32-bit Windows. Now I get the following message:

Win32 is not a supported platform for MyNewProjectEditor. Valid platforms are Win64, Mac, Linux

Was getting this same error. Fixed it by going to the solution properties, Configuration Properties, and switching Platform to “Win64”.

You can clear any previous use of the delegate, before using it again, using code similar to this:



IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get();
if (OnlineSub)
{
	IOnlineSessionPtr Sessions = OnlineSub->GetSessionInterface();
	Sessions->**ClearOnStartSessionCompleteDelegate_Handle**(OnStartSessionCompleteDelegateHandle);
}


And the create your new use of the delegate afterward.

Good luck!

:slight_smile:

So while transitioning to 4.8, we have a number of custom native AnimNotify and AnimNotifyState classes that are now producing compile errors. We followed the Crash Course In Animation Notifies - Unreal Engine documentation when creating the classes. However, in 4.8 many BlueprintImplementableEvent functions had their virtual keyword removed, including:

UFUNCTION(BlueprintImplementableEvent)
bool Received_Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation) const

From Release notes:

Removed “virtual” keyword from several engine-level BlueprintImplementableEvents to conform to the new “BlueprintImplementableEvents should not be virtual” standard.

And

A number of previously virtual BlueprintImplementableEvent functions have had virtual removed in favor of existing virtual functions intended for overriding C++ behavior:
UActorComponent::ReceiveBeginPlay -> BeginPlay
UActorComponent::EndBeginPlayer -> EndPlay
.
.
etc.

So Epic provided a number of BlueprintNativeEvent functions for those previously BlueprintImplementableEvent functions. That isn’t the case for AnimNotify or AnimNotifyState event functions. Is the intention to no longer support native classes and instead only support blueprint animnotify classes?

Hi.

After merging a new release with i have a problem running 4.7 projects. I did the usual cleaning before compiling new code ( removed intermediate and DDC in both projects and engine ). Everything compiled fine, but when opening an old project it crashes on 95% with:



Unknown exception - code 00000001 (first/second chance not available)

"Assertion failed: CurrentFirstMip>=0 [File:D:\UnrealEngine\Engine\Source\Runtime\Engine\Private\Texture2D.cpp] [Line: 1135] 
"

KERNELBASE
UE4Editor_Core!FOutputDeviceWindowsError::Serialize() [d:\unrealengine\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
UE4Editor_Core!FOutputDevice::Logf__VA() [d:\unrealengine\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
UE4Editor_Core!FDebug::AssertFailed() [d:\unrealengine\engine\source\runtime\core\private\misc\outputdevice.cpp:355]
UE4Editor_Engine!FTexture2DResource::FTexture2DResource() [d:\unrealengine\engine\source\runtime\engine\private	exture2d.cpp:1137]
UE4Editor_Engine!UTexture2D::CreateResource() [d:\unrealengine\engine\source\runtime\engine\private	exture2d.cpp:866]
UE4Editor_Engine!UTexture2D::UpdateResourceW() [d:\unrealengine\engine\source\runtime\engine\private	exture2d.cpp:403]
UE4Editor_Engine!UTexture::PostLoad() [d:\unrealengine\engine\source\runtime\engine\private	exture.cpp:278]
UE4Editor_CoreUObject!UObject::ConditionalPostLoad() [d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\obj.cpp:718]
UE4Editor_Engine!UMaterial::PostLoad() [d:\unrealengine\engine\source\runtime\engine\private\materials\material.cpp:2274]
UE4Editor_CoreUObject!UObject::ConditionalPostLoad() [d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\obj.cpp:718]
UE4Editor_CoreUObject!EndLoad() [d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1250]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1006]
UE4Editor_UnrealEd!UEditorEngine::Map_Load() [d:\unrealengine\engine\source\editor\unrealed\private\editorserver.cpp:2291]
UE4Editor_UnrealEd!UEditorEngine::HandleMapCommand() [d:\unrealengine\engine\source\editor\unrealed\private\editorserver.cpp:5768]
UE4Editor_UnrealEd!UEditorEngine::Exec() [d:\unrealengine\engine\source\editor\unrealed\private\editorserver.cpp:5262]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() [d:\unrealengine\engine\source\editor\unrealed\private\unrealedsrv.cpp:742]
UE4Editor_UnrealEd!FEditorFileUtils::LoadMap() [d:\unrealengine\engine\source\editor\unrealed\private\filehelpers.cpp:1987]
UE4Editor_UnrealEd!FEditorFileUtils::LoadDefaultMapAtStartup() [d:\unrealengine\engine\source\editor\unrealed\private\filehelpers.cpp:3183]
UE4Editor_UnrealEd!FUnrealEdMisc::OnInit() [d:\unrealengine\engine\source\editor\unrealed\private\unrealedmisc.cpp:300]
UE4Editor_UnrealEd!EditorInit() [d:\unrealengine\engine\source\editor\unrealed\private\unrealed.cpp:86]
UE4Editor!GuardedMain() [d:\unrealengine\engine\source\runtime\launch\private\launch.cpp:133]
UE4Editor!GuardedMainWrapper() [d:\unrealengine\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\unrealengine\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]


Strange thing is, i actually managed to open it once without a problem, but after that this error happens consistently. Rebuilding the code didn’t help. New template projects work fine though.

Hi,

Thanks for the information but I know that I can clear it. The things is that it’s in the engine itself. So I need to create Specific class just to patch that where as everything was working fine in 4.7.
I posted it just to see if I’m the only one having this issue or if someone else faced the same issue. More, it’s a specific case, as you need to call twice HandleMatchHasStarted() without Ending the match to see that so I can understand that I’m the only one to face it ^^

Thanks,

UMG UI - text scaling

Just so you know, something might have changed in the Text widget and scalebox. My in game UI have issue with text alignment since 4.8. It’s seems to be related to the Scaling process of Text. As a consequence, my text is not “center” or “rigth” align properly.

Does someone else have issue with UI Text alignment?

This discussion has been moved :

Keep us posted on this matter Elvince, let us know what you discover!

:slight_smile:

For this issue, I didn’t find the root cause. Maybe my SessionInterface implementation that is still WIP.
In all cases, the cause of this change is due to : https://github.com/EpicGames/UnrealEngine/commit/79e183780fb912ba059d04148260fc404fc83b65
This commit has been pushed into 4.8, I checked the release notes and nothing has been mentionned on this.
So be aware that if you are connected to a OnlineServices, now HandleMatchHasStarted & HandleMatchHasEnded are now implemented in the Engine code and that it’s using your OnlineServices Session Interface to start and end your Session.

Thanks,

[Edit]
So you know I also opened a case to get the DelegateHandle as protected and not private. Otherwise you can’t manage them.
You can overrive the functin, but you can’t use the DelegateHandle.

Set in UIOnlyMode for UMG does not show the cursor anymore, you have to call Set Show Cursor from PlayerController to get this done.

That has always been the case.

Can anyone verify these? I started getting them after I switched to 4.8. I was working on localization in 4.7.6. I don’t know if it is related to something I did. I didn’t make any changes in the engine though

1> D:/UnrealEngine-4.8 preview/Engine/Source/Editor/LocalizationDashboard/Private/LocalizationTargetTypes.h(220) : INI file contains an incorrect case for (cultureName) should be (CultureName)
1> D:/UnrealEngine-4.8 preview/Engine/Source/Editor/LocalizationDashboard/Private/LocalizationDashboardSettings.h(23) : Unrecognized type ‘FLocalizationTargetSettings’

Sorry not. I did open a question on this in 4.7 because there was some consistency issue with the cursor and case where we were able to loose it.
Answer Hub questions & log UE-15835

So maybe you fix this to be “working as intended” but in 4.7, the cursor was there in my UI without settings the ShowMouseCursor.
Now it’s more clear for us that the cursor is only managed by the ShowMouseCursor and there shouldn’t be any edge case where one thing is managed at 2 different places.

If you can access to the UE-15835, you might be able to see what has been done there for this Issue.

If you are using UMG ScaleBox & Text you might face some issue when scaling (ie Resolution Change)

FYI Answer hub report

I upgraded my project to 4.8, and now I have two issues, the first one is that I cannot package my game, when i try, i get this:


Assertion failed: PrecacheSize > 0 [File:C:\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp] [Line: 892]

(I made a question about this in answerhub: https://answers.unrealengine.com/questions/258180/cant-package-since-48.html)

The second one is about my animations, When I aim and fire with my weapons, the player do some blinks in 90 degrees to front (It’s a side scroller 3D game).

Any ideas? I also just pull the last version of the engine from git

thx :slight_smile: