Don't wanna be here? Send us removal request.
Text
Across plugins Linker error.
I have an interface implementation in C++ in plugin A. Plugin B uses the interface. Linker errors out noting the symbols not found. The error message is similar when there is no object file but only headers when linking happens.
I was stuck this in issue for 3 hours and figured out that I just simply had to put MinimalAPI modifier to UINTERFACE() annotation. Not sure how this is relevant, but it fixed the issue.
MinimalAPI means the only properly marked native symbols will be exported to blueprint, why does it matter for C++ plugins to reference symbols in one another?
9 notes
·
View notes
Text
UI Scaling for Unreal Engine
I misunderstood something before. The default setup of DPI scaling keeps all UI perfectly sane for both portrait and landscape orientations. It was just confusing to look at the unreal editor on desktop computer which looked like that the landscape mode would scale up the entire UI unnecessarily. But, I was wrong.
Not all UI will fit for multiple platforms for sure. Use Engine.Config for UIInterfaceSettings.ApplicationScale to scale up or down for the platform. If this is for a certain device type, e.g., Pad vs. Phone, manually editing before publishing would be required because the setting exists at the Engine config level, not device profile config level.
0 notes
Text
Blueprint property's default value gets reset on Unreal editor quit.
I noticed that blueprint's default values were being reset unintentionally. The setup was like below:
Component class A written in C++.
Actor class B written in Blueprint.
Actor class B has the component class A as a child.
In Actor class B's blueprint editor, the component class A's default values were updated.
On every unreal editor exit, previously set default values were reset.
C++ class wouldn't simply serialize the default values when used in another blueprint class.
I found the solution by creating a wrapper blueprint class for C++ class before adding the component to another blueprint classes.
Component class A written in C++.
Component class B wraps the component class A in blueprint.
Component class B added to Actor blueprint class C.
Update default values for class B in the actor blueprint editor.
Observe the default values are properly persisted.
I wonder if any annotation I could use in C++ header to prevent the issue but I couldn't figure out at this time.
0 notes
Text
Release Android Builds
I encountered a crash from Unreal Engine that happened only for production builds. So, I needed to package the dev version of the game to Play store. Here's what needs to be done.
Package the game with Android_Multi and Development config.
Find the Android project and open it with Android Studio under the Intermediate folder.
Open gradle.properties file. Fill in the upload key information.
Project Structure > Modules > Signing Config. Update all fields.
Set release build variant.
Build > Generate Signed Bundle. Fill in the signing info there too. Hit Next.
The native binaries will be compiled with development setting but for the Android side, the product is still built for release.
1 note
·
View note
Text
Clean Project for Unreal Engine
For iOS and Mac dev, it's common to clean project to reset the project for any side effects from the previous builds. In order to simulate the same thing for iOS games, delete {PROJ_DIR}/Intermediate/ProjectFilesIOS directory. This is found usefully especially when the entitlement-modification-during-build-error occurs.
0 notes
Text
DLC Packaging Issue
I'm using UE 5.1. Custom profile to split the packages to generate DLC pak files didn't work. I checked asset references and all. Two maps, one for the base game and the other for DLC, properly separated without any references between them but I always end up with all the contents being cooked and packaged into the base game. I stopped tracking down the trails because I could ship everything in one package for now.
0 notes
Text
Shader compile crash
When cooking the Android_Multi project on Mac, Unreal Engine 5.1 crashes and stops the cooking processing. The error is very misleading as it seems only indicate that due to a permission issue the crash reporting Mac client couldn't open without showing actual error from the shader compiler. The same setup/project Android_Multi cooking/packaging works fine with Windows. Interestingly, Android_ASTC is also fine on Mac.
0 notes
Text
Unreal Mobile Game Launch Crash
It's most likely shader not found error. Material/Rendering settings can fix this issue.
From my searches, people suggested trying the following settings.
Mobile Material: Turn off "Discard Quality On Cook"
Mobile HDR: Settings in the project and in the game default can mismatch and cause issue.
Allow Static Lighting: Turn this on or leave the default value.
For my project, the followings were the reason for the launch crash:
For iOS, without mobile patching setup, if 'Generate Chunks' option is enabled, the crash happens.
For Android, the Mobile Material setting mentioned above caused the crash. This is very strange, the setting doesn't cause any issues with iOS.
0 notes
Text
Undefined Symbol Error on Building Android Game
ld: Undefined symbol FSoundTouch::FSoundTouch error happened when x86 arch support was enabled for Android. It seems the target thirdparty dependency is not built for x86. It seems quite core dependency for sound though.
0 notes
Text
Massive Memory Leak for iOS Shipping Build
Unreal Engine 5.1 (I haven't checked other versions) has a massive memory leak. Interestingly, I didn't occur for development build. Specifically, the issue exists for Test, Shipping builds. With source build, I tweaked macros related to those builds. It seems DO_CHECK is necessary flag to avoid this memory leak. While I investigate, I also notice, shipping and developemnt build use completely different thread constructs. FRHIThread class is used only for development build although I'm not sure if this plays a role in causing memory leaks.
0 notes
Text
Unreal Engine svn+ssh setup
I've just finished setting up svn+ssh for my dev work. The whole journey began because UE4 Editor needs a decent graphics card to perform better, and I had to use iMac for other 3D applications. Also, iMac only has some AMD mobile version graphics card.
Requirements
iMac: run ssh + svn. Also, asset backup comes free using Time Machine with external USB drive.
PC: run UE4 Editor.
For iMac,
install svn using homebrew.
rename all svn binaries in /usr/bin/
symlink svn binares from /usr/local/bin to /usr/bin (ssh somehow uses the one from /usr/bin always, though I changed system-wide path to /usr/local/bin to have higher precedence.)
create launchd plist in ~/Library/LaunchAgents for svnserve (server daemon) for auto launching at bootup.
create folder at ~/Library/Subversion/Repository
svnadmin create 'repo_name'
later, add PC's ssh public key to authorized_keys.
For PC,
download cygwin with openssl.
ssh-keygen to create ssh public key
download tortoiseSVN.
go to tortoiseSVN->Settings->Network->SSH set 'C:\cygwin\bin\ssh.exe'
create project folder.
tortoiseSVN->checkout after entering svn+ssh://. There is no need of any credentials. Cygwin's ssh works exactly like Unix-like ssh. public key will take care of auth. (The only problem seems to be that svn users will also have full rights that ssh grants to the machine itself.)
Download VisualSVN.
Copy all binaries in /bin to /Binary/ThirdParty/svn/Win64. (Just to make sure SVN version up-to-date.)
Edit %APP_DATA%/Subversion/config. e.g., C:\Users\\Application Data\Subversion\config. Uncomment ssh = line under [tunnels] section. Set the value to "C:\cygwin\bin\ssh.exe"
Create a project in UE4, supposedly where the working copy is already checked out at step 5-6.
Select UE4->File->Connect-to-Source-Control.
Enter svn+ssh:// for host. Enter Project label to path of the project repo on iMac.
Note: In general, svn+ssh requires absolute path to repo when specified. e.g., svn+ssh://localhost/Users/me/Library/Subversion/Repository/SampleProject. Symlinking might help to reduce verbosity.
0 notes
Text
Wacom Intuos 4 Issues
ArtRage 4 got frozen every so often after I bought a new iMac. With a new operating system, I transferred all my data to a new iMac with Time Machine. When I got the issue with ArtRage 4, I thought that it is a software problem. I tested with Pixelmator. I got the same issue, so I had to remove the possibility.
Resetting Wacom preferences with Wacom Tablet Utility app which came with the driver download resolved the issue.
After few minutes of searching, I found that the following things are worth trying if this occurs again:
Reset Wacom preferences with Wacom Tablet Utility app.
Reinstall the latest driver.
Uninstall the driver completely with Wacom Tablet Utility app.
Repair permissions with Disk Utility app before reinstalling driver.
Reinstall the driver.
0 notes