
UE4学习
鸿蒙老道
这个作者很懒,什么都没留下…
展开
-
UE4针对特殊的透明物体不应用后期效果
这是之前的做法 https://blog.youkuaiyun.com/maxiaosheng521/article/details/121854323比较简单粗暴,效果是所有的透明材质都不应用后期,这次是通过custom stencil 设置为111 过滤掉指定透明材质的后期渲染流程代码和思路说明 https://github.com/HeartlessLD/UE4CustomtranslucencyNoPost-实现对指定透明材质物体不应用后期效果 (在SceneCapture中捕捉的对象也不受效果)说明原创 2022-05-16 21:57:37 · 3877 阅读 · 3 评论 -
UE4根据地图名称获得完整地图路径
这里需要build.cs中添加AssetRegistry 已经对应的头文件bool UMyBlueprintFunctionLibrary::GetMapFullName(const FString& MapName, FString& FullMapName){ IAssetRegistry& AssetRegistry = FModuleManager::Get().LoadModuleChecked<FAssetRegistryModule>("AssetRe原创 2022-04-19 22:18:45 · 711 阅读 · 0 评论 -
UE4锁定Camera画面
通过重写LocalPlayer的CalcSceneView函数实现FSceneView* UFreezeCameraLocalPlayer::CalcSceneView(class FSceneViewFamily* ViewFamily, FVector& OutViewLocation, FRotator& OutViewRotation, FViewport* Viewport, class FViewElementDrawer* ViewDrawer /* = NULL */, E原创 2022-04-19 22:16:59 · 2996 阅读 · 0 评论 -
UE4使用管理员权限运行其他程序
普通运行程序FPlatformProcess::CreateProc(*FullPath, *param, true, false, false, nullptr, -1, nullptr, nullptr);管理员权限运行int32 errorCode; FPlatformProcess::ExecElevatedProcess(*exePath, *param, &errorCode); ```原创 2022-03-07 17:18:04 · 1093 阅读 · 0 评论 -
UE4 FTP Client插件
封装了ftplib的库https://github.com/mkulke/ftplibpp插件地址https://github.com/HeartlessLD/UE4-FTPPlugin-这里大致说一下注意事项,可能有不全的,具体看代码1.插件需要添加一些宏定义.build.csDefinitions.AddRange(new string[] { "NOLFS", "NOSSL", "_CRT_SECURE_NO_WARNINGS", "BUILDING_DLL" });2.添加一些警告原创 2022-01-24 15:41:03 · 1379 阅读 · 0 评论 -
UE4消除后期对透明材质的影响
默认使用后期配合custom depth 只能实现目前的效果,即保留半透明但是半透明后面的显示内容是没有后期效果的想要实现既保留半透明又能确保半透明后面是后期内容修改ue4源码首先开启 SeprateTranslucencypostprocessing.cpp // DOF passes were not added, therefore need to compose Separate translucency manually. if (LocalSceneColorTexture .原创 2021-12-10 13:46:59 · 4870 阅读 · 3 评论 -
UE4讯飞离线命令词识别插件
首先需要去讯飞开发者平台申请sdk,目前x64版本的sdk还有编译问题,需要单独找客服重新打包一个sdk。替换插件目录中的.lib .dll文件XunfeiReco.cpp中的appid修改为sdk中的idcall.bnf文件目前定义了几组词的识别(退出 10086等),复杂的用法参看官网运行程序后,按R 开始录制 松手自动识别结果如下demo地址https://download.youkuaiyun.com/download/maxiaosheng521/33468006...原创 2021-10-20 15:58:45 · 615 阅读 · 16 评论 -
UE4 模型随着camera的位置突然看不到
如果是静态模型的话。试着修改bound大小如果是骨骼模型的话,那么试着修改骨骼模型的PhysicAsset 使碰撞完全能包裹住模型原创 2021-04-03 16:35:40 · 9111 阅读 · 0 评论 -
UE4 UMG text换行
umg中换行是通过shift + enter来实现的如果想在变量中存储文本的,可以勾选multi linec++的话添加UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (MultiLine = true)) FString Des2;原创 2021-01-28 17:34:53 · 4396 阅读 · 1 评论 -
UE4 Character修改Mesh位置 联网无效
测试修改Character的Mesh的位置 在联网后无效。解决方法:1.暂时没发现合适的解决方法 临时方法就是修改Character Actor的位置,通过设置CharacterMovement Gravity scalse为0,修改Actor为任意位置2.网上查的方法 但是我测试无效void AMyCharacter::BeginPlay(){APawn::BeginPlay();}...原创 2020-12-23 15:53:17 · 551 阅读 · 0 评论 -
UE4 LevelSequence过长动画 多人同步播放
将levelsequence拖到场景中 选中Replicate Playback选项原创 2020-12-20 19:18:27 · 1093 阅读 · 0 评论 -
UE4根据dmp文件进行调试
ue4打包后的程序崩溃后,会在Saved文件夹下生成一个Crash目录这里有我们需要的.dmp文件将exe程序和对应的pdb文件放在一起1.双击dmp2.点击Set Symbol Paths 将你的pdb和exe的目录添加进来3.点击DebugWithNativeOnly就会自动进入崩溃的断点位置了...原创 2020-12-15 19:42:58 · 4166 阅读 · 0 评论 -
UE4 VR模式下 Skylight不起作用
在VR模式下 Skylight不起作用目前找到的方法就是以非vr模式启动,或者先将VR关闭,添加Skylight,然后在开启VR原创 2020-11-26 15:03:10 · 1409 阅读 · 3 评论 -
UE4 SoundNotify随着动画结束 强制结束
SoundNotify 默认是不跟随动画的,加入动画结束,声音还没有结束的话,那么会继续播放。可以通过自定义AnimState 来实现声音随着动画的状态变动AnimState_PlaySound.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Animation/AnimNotifies/An原创 2020-11-19 14:01:49 · 992 阅读 · 1 评论 -
UE4应用RootMotion
需要条件1.动画资源带有骨骼位移 可以通过 设置查看是否有红线2. 设置动画资源EnableRootMotion3. 需要使用的蓝图为继承Character, 并且动画蓝图根据使用具体动画资源 设置是使用everything motionb 还是 Only Montage...原创 2020-10-27 11:02:37 · 1726 阅读 · 0 评论 -
UE4 在socket中传输中文数据时错误
socket默认使用utf8格式传输数据,如果传输的是中文的话,那么1个中文占用3个字节,发送的个数就需要针对性就行修改,不能简单的使用FString::Len()进行个数计算,这里给出一个计算个数的函数,int32 CalcUtf8NumFromString(const FString & Str){ int32 result = 0; for (int i = 0; i < Str.Len(); i++) { if (Str[i] <= 0x7f)原创 2020-09-24 16:14:24 · 935 阅读 · 0 评论 -
UE4 Nav导航路线选择设置
需求AI 移动需要避开山坡,即使绕远路线,也优先选择改路线实现方法设置地形 动态创建创建NavArea蓝图cost越大 选择改路线的可能性就越低,这里我们假设将100用于山坡位置,那么ai选择路线时,选择山坡的优先级就是最低如果是场景中使用 可以使用Nav Modify Volume area选择刚才创建的area运行如果这时候使用aicontroller->Move to 移动ai到矩形方块的话, 路线是优先走右侧的绿色区域,如果红色封死的话,才会直接穿过红色原创 2020-08-26 17:13:19 · 2908 阅读 · 0 评论 -
UE4 简单记录EQS的使用方法
介绍EQS环境查询 主要是用来从场景环境中获得你想要的满足指定条件的数据,主要是和AI行为树配合使用, 比如获得获得玩家距离最近的位置等等详细的官网文档 链接下面是简单的使用方法,目的是寻找一个点,这个点是不被玩家看到,并且距离玩家最远的点准备使用EQS需要在EditorSetting中实验功能中开启EQS步骤创建EQS资源使用Points:Grid 可以生成点阵位置,从中筛选出我们想要的位置(如果对寻找的位置有特殊的需求,也可以自己在c++中重载UEnvQueryGenerator原创 2020-08-25 18:19:29 · 2978 阅读 · 1 评论 -
UE4 c++检测蓝图是否重载了某个函数
在EnvQueryContext_BlueprintBase.cpp中FORCEINLINE bool DoesImplementBPFunction(FName FuncName, const UObject* Ob, const UClass* StopAtClass) { return (Ob->GetClass()->FindFunctionByName(FuncName)->GetOuter() != StopAtClass); }UClass* StopAtCla原创 2020-08-14 10:40:19 · 707 阅读 · 0 评论 -
UE4 服务器连接中版本比较
需求一个工程使用源码版本运行,一个工程使用发布版本引擎运行,两个客户端在Editor模式下,可以通过JoinSession这种方式进行连接,正常会判断两份客户端版本不同不可以连接,可以通过绑定FNetworkVersion::IsNetworkCompatibleOverride 来实现自定义的版本比较,这里比较简单粗暴,具体详细的可以参考 https://zhuanlan.zhihu.com/p/158986763 实现具体方法(FNetworkVersion::IsNetworkCompatibleO原创 2020-08-11 17:38:18 · 886 阅读 · 0 评论 -
UE4在 JoinSession过程中传递参数
默认的JoinSession 是没有传递参数功能的,不过我可以通过重写客户端的PlayerController的ClientTravelInternal_Implementation的函数 添加参数,然后在服务器GameMode的InitNewPlayer中获得改参数CustomPlayerControllervoid ClientTravelInternal_Implementation(const FString& URL, enum ETravelType TravelType, bool原创 2020-08-11 17:33:50 · 880 阅读 · 0 评论 -
UE4 使用自定义的Console Command
关卡蓝图中使用(方便)直接在关卡蓝图中定义 然后可以通过ce + 函数名的方式调用任意蓝图类定义普通的函数,通过ke * + 函数名调用C++中定义可执行函数普通的actor是只能通过ke * + 函数名这种方式执行,只有GameMode Controller 或者Pawn这种才能直接通过函数名执行...原创 2020-08-04 16:44:08 · 4868 阅读 · 0 评论 -
UE4 使用c++内部宏输出调试信息
UE_LOG(LogTemp, Warning, TEXT("__LINE__ = %s, __FUNCTION__ == %s, __FUNCSIG__ = %s, __TIME__ = %s, __FILE__ = %s"), *FString::FromInt(__LINE__), *FString(__FUNCTION__), *FString(__FUNCSIG__), *FString(__TIME__), *FString(__FILE__) );原创 2020-07-02 17:49:51 · 695 阅读 · 0 评论 -
UE4 mac下无开发者账号打包ipa包
这是一种在mac下不充99美元打包ipa的方法 只是一种临时测试用的方法在xcode中创建一个普通的ios工程,并配置Bundle Identifier这时候在~/Library/MobileDevice/Provisioning Profiles下会有自动创建对应的Provision profile文件进入虚幻中进行ISO设置设置sign相关 这里注意设置TeamId 从最开始创建的Xcode中获得5.File / PackageProject / IOS 打包即可,打原创 2020-06-30 16:27:44 · 1512 阅读 · 0 评论 -
UE4 OpenCV+Dlib插件(支持Windows Android)人脸检测(二)
本篇是Dlib插件的编写,使用难点主要在与Android端,PC端SDK打包好后基本就可以使用,Android端遇到了各种兼容之类的bug参考https://my.oschina.net/jjyuangu/blog/2243591https://blog.youkuaiyun.com/u012234115/article/details/90642844Dlib下载和编译(针对Windows平台和Android)Dlib官网下载地址 工程里(源码在上一篇文章里)使用的是19.7版本,只针对UE4的And原创 2020-05-28 15:40:35 · 1892 阅读 · 0 评论 -
将C++的输出流内容使用UE_LOG进行输出
C++class a;cout<<a;UE4std::stringstream strout;strout <<a;UE_LOG(LogTemp, Warning, UTF8_TO_TCHAR(strout.str().c_str()));原创 2020-05-27 10:46:42 · 732 阅读 · 0 评论 -
UE4 Jni调用
+需要在.build.cs中添加“Launch”模块头文件#if PLATFORM_ANDROID#include "Android/AndroidApplication.h"#include "Android/AndroidJni.h"#endifC++创建 Java类实例 JNIEnv* Env = FAndroidApplication::GetJavaEnv(); jclass AndroidCameraClass = FAndroidApplication::FindJa原创 2020-05-26 12:31:49 · 1501 阅读 · 0 评论 -
UE4 直接打包图片到目录中,不打包成pak
设置TestRes目录下的文件不会打包成.pak文件获得Content目录路径Windows平台可以通过 FPaths::GameContentDir()获取Android平台 extern const FString &GetFileBasePath(); FString ProjectPath = GetFileBasePath(); FString TestImgPath = FPaths::Combine(ProjectPath, FApp::GetProje...原创 2020-05-26 12:21:49 · 1328 阅读 · 0 评论 -
UE4 OpenCV+Dlib插件(支持Windows Android)人脸检测(一)
本篇是OpenCV插件的编写,接入参考https://github.com/Brandon-Wilson/OpenCV-Pluginhttps://github.com/TianxingWu/OpenVHeadhttps://unreal.gg-labs.com/wiki-archives/ar-vr/integrating-opencv-into-unreal-engine-4https://github.com/Batname/UE4OpenCV相关配置opencv 3.4UE4.原创 2020-05-26 12:08:31 · 3276 阅读 · 2 评论 -
UE4 升级vs版本导致打开工程报的c++错误
error C4800: 从“const wchar_t *”到 bool 的隐式转换。信息可能丢失在VCToolChain.cs 484行添加下面的 Arguments.Add("/TP"); Arguments.Add("/wd4800");include <typeinfo.h> error修改为include <typeinfo>原创 2020-05-20 16:47:24 · 980 阅读 · 0 评论 -
UE4 android在局域网连接PixelStreaming 失败
局域网下使用移动设备浏览器访问PixelStreaming 失败,但是连接外网的话没有问题原因: 信令服务器会从github上下载adapter.js ,如果断网的话,下载就会失败解决方法下载 adapter.js 放到 Engine\Source\Programs\PixelStreaming\WebServers\SignallingWebServer\scripts中修改SignallingWebServer下的player.htm<head> <link..原创 2020-05-19 15:26:46 · 2397 阅读 · 2 评论 -
UE4 将log输出到自己的文件中
在快捷方式中添加下面的命令-silent LOG=MyGameLog.txt在saved/log下 会替换默认的log文件原创 2020-05-13 11:27:14 · 1716 阅读 · 0 评论 -
ue4 调用外部浏览器打开指定网址
原创 2020-05-12 16:15:37 · 5586 阅读 · 0 评论 -
UE4 VR分屏显示
SetSpetatorScreenTeture 设置观察者分屏显示的内容,可以是场景中SceneCapture 捕捉的画面,VR中不会显示,只会在电脑中显示原创 2020-05-11 16:30:31 · 2297 阅读 · 2 评论 -
UE4 PixelStreaming相关
官网上比较有用的命令Encoder.TargetSize Encoder.UseBackBufferSize我的需求是程序运行是8k,但是假如我需要webrtc传输的是1080p的画面的话就需要执行Encoder.TargetSize 1920x1080 还有 Encoder.UseBackBufferSize false否则的话 他会使用默认的程序分辨率,我在android平板上接收超过4k的就无法打开-NvEncH264ConfigLevel NvEncMaxEncodeWidth原创 2020-05-11 15:23:07 · 3045 阅读 · 3 评论 -
UE4 简单的tcpSocket插件
实现了简单的TCPServer TCPClient 相互连接 发送数据用法服务器创建客户端创建并连接发送数据接收数据原创 2020-04-30 11:51:17 · 3547 阅读 · 5 评论 -
ue4VR只有一个手柄有效
项目中遇到的bug,只有右手手柄可以与UI widget交互注意 需要针对不同的VR手柄设置不同的PointerIndex原创 2020-04-26 11:04:47 · 540 阅读 · 0 评论 -
UE4播放视频卡顿
项目需求需要同时播放10个左右的视频,造成帧率瞬间下降在官网找到的解决方法原创 2020-04-21 14:27:43 · 6247 阅读 · 5 评论 -
UE4内置浏览器支持h264 mp4 视频 编译cef3 3071源码
首先ue4内置的CEF3 浏览器是不支持h264视频的 所以需要我们重新编译CEF内核 然后覆盖旧的版本一.编译CEF编译CEF超级麻烦 首先由于国内总所周知的问题 所以需要使用Proxifier和SSR配合去FQ 这步要做好 要不然后面的配置命令就会各种check out错误 等等乱七八糟的参考教程https://www.bilibili.com/read/cv1945然...原创 2020-03-31 11:00:20 · 6905 阅读 · 6 评论 -
UE4 PixelStreaming 在华为手机不能正常使用
原因:PixelStreaming是通过WebRTC 将H264视频通过浏览器进行传输在Android中需要WebRTC添加对H264的支持, 目前主流的浏览器如Chrome 火狐等都添加了支持,不过他们只是针对了高通还有三星的浏览器添加了支持,所以目前的Chrome 在海思平台上是不能正常解码H264视频的。解决方法就是 在github上找到Chromium Android ,修改源码 ...原创 2020-02-26 20:38:32 · 2185 阅读 · 0 评论