4.19 编译错误: 2>F:\EpicGames\UE_4.19\Engine\Source\Runtime\Engine\Classes\Engine/TextureCube.h(69): error C3668: 'UTextureCube::UpdateResourceW': method with override specifier 'override' did not override any base class methods 2>F:\EpicGames\UE_4.19\Engine\Source\Runtime\Engine\Classes\Engine/CanvasRenderTarget2D.h(43): error C3668: 'UCanvasRenderTarget2D::UpdateResourceW': method with override specifier 'override' did not override any base class methods 4.18 编译错误: 2>f:\epicgames\ue_4.18\engine\source\runtime\core\public\HAL/ThreadSafeCounter64.h(67): error C2039: '_InterlockedIncrement': is not a member of 'FWindowsPlatformAtomics' 2>F:\EpicGames\UE_4.18\Engine\Source\Runtime\Core\Public\Windows/WindowsPlatformAtomics.h(14): note: see declaration of 'FWindowsPlatformAtomics' 2>f:\epicgames\ue_4.18\engine\source\runtime\core\public\HAL/ThreadSafeCounter64.h(67): error C2665: '_InterlockedIncrement': none of the 4 overloads could convert all the argument types 2>C:\Program Files (x86)\Windows Kits\8.

Continue reading

调用UFunction 执行UFuncion,使用 ProcessEvent : UFunction* Fun = Actor->FindFunction(TEXT("TestFun")); if(Fun) { Actor->ProcessEvent(Fun, Buffer); } 查询UFunction信息 获取返回值: UFunction* Fun = Actor->FindFunction(TEXT("TestFun")); if(Fun) { FFrame frame = FFrame(Actor, Fun, Buffer, NULL, Fun->Children); uint8* ReturnValueAdress = Buffer + Fun->ReturnValueOffset; int* intp = (int*)ReturnValueAdress; //hardcoded exemple for a int return Fun->Invoke(Actor, frame, intp); } 获取输出参数: if(UFunction* Fun = Actor->FindFunction(TEXT("TestFun"))) { if(uint8* Buffer = (uint8*)FMemory_Alloca(Fun->ParmsSize)) { for (TFieldIterator<UProperty> PropIt(Fun, EFieldIteratorFlags::ExcludeSuper); PropIt; ++PropIt) { UProperty* Property = *PropIt; bool isOut = Property->HasAnyPropertyFlags(CPF_OutParm); if (!

Continue reading

工程1 在油管上看到一个UE4 IK动画的demo工程示例 该示例作者的主页:https://www.patreon.com/unrealcg 演示视频:Advanced foot IK for Unreal Engine 4 - (100% Free) https://www.youtube.com/watch?v=XetC9ivIXFc demo工程下载地址(4.19): https://pan.baidu.com/s/1mlcM0cseKWpprnISVM0P5Q 工程2 该工程除了IK,还包括动画融合、物理等功能 演示视频:UE4 - Advanced Locomotion System V3 - Features https://www.youtube.com/watch?v=yTniZCOCY7o 下载地址:Unreal商城,60刀 Advanced Locomotion System V3 https://www.unrealengine.com/marketplace/advanced-locomotion-system-v1 认识自己的无知是认识世界的最可靠的方法。---米歇尔·蒙田《随笔集》

Continue reading

参考自:Master pose vs copy pose vs mesh merge in UE4 https://iluvanimation.blogspot.tw/2017/04/master-pose-vs-copy-pose-vs-mesh-merge.html Since I get this question so often, I’m just writing quick summary for each. When you have different parts of bodies, and you want to allow players to pick which part they want, we have multiple choices, and people are wondering what are the main differences. Say you have head, upper body, lower body, and how do you allow them to pick and what are the differences?

Continue reading

keyworks:Animation Blueprint Inherit、Animation Blueprint Reuse、蓝图继承、蓝图重用、蓝图复用 三种方式可以重用动画蓝图逻辑: Blueprint Inherit(蓝图继承) Sub Animation Blueprint Instances Post Process Animation Blueprints Animation Blueprint Inherit(动画蓝图继承) 角色蓝图继承和动画蓝图继承有部分相似,这里先说下角色蓝图继承 右键角色蓝图 -》 Create Child Blueprint Class 这样创建出来的子蓝图,其构造函数中会自动生成一个执行父级蓝图构造函数的节点 其他的Event事件中,如果也需要调用父级蓝图的函数,可以右键对应节点 -》 Add call to parent function 动画蓝图也可以使用上述角色蓝图继承的方式。 但直接右键生成子蓝图的方式创建出来的动画蓝图,无法选择其他骨骼,只能保持和父级动画蓝图的骨骼一样 如果要创建一个与父级动画蓝图骨骼不同的子动画蓝图,可以先新建一个普通的动画蓝图 然后选择需要继承的父级动画蓝图,以及子动画蓝图的骨骼 这样生成出来的子动画蓝图,其Event Graph中,会自动生成一个执行调用父级蓝图的节点:Parent: Blueprint Update Animation Sub Animation Blueprint Instance Using Sub Anim Instances

Continue reading

keywords:UE4 Animation、Set Master Pose Component、customizable character、动画蓝图、换装 美术资源制作 每个身体部件(帽子、鞋子等)蒙皮时需要使用同一套骨骼(all pieces need to be skinned to the same skeleton) 每个身体部件导出时,该部件的关节与根关节之间的所有关节都需要选中导出。例如:假设盆骨为根关节(root joint),现在要导出手臂,那么手臂、肩膀、脊椎、盆骨的关节都需要选中导出。 角色蓝图中设置Master Pose 身体各个部件导入UE4之后,打开角色蓝图,为每个部件Add一个Skeleton Mesh Component,并将其Skeleton Mesh属性设置为对应的资源文件。 最后再在角色蓝图的Construction Script中Set Master Pose Component 这样,角色在播放动画时,每个部件就会跟随角色一起播放,而不会固定不动。 参考自:How to Setup “Master Pose Component” https://answers.unrealengine.com/questions/228601/how-to-setup-master-pose-component.html C++接口 Set Master Pose Component蓝图节点对应的C++ API: Child->SetMaseterPoseComponent(Body); 有一个传说,说的是有那么一只鸟儿,它一生只唱一次,那歌声比世上所有一切生灵的歌声都更加优美动听。---《荆棘鸟》

Continue reading

PC端开启Temporal AA 参考: https://forums.unrealengine.com/development-discussion/rendering/106829-sharp-temporal-aa/page2?134157-Sharp-Temporal-AA=&viewfull=1 移动端开启Temporal AA Project Settings -》 Engine -》 Rendering -》 Default Settings -》 Anti-Aliasing Method 选择 TemporalAA; Project Settings -》 Engine -》 Rendering -》 Mobile -》 Mobile MSAA 选择 NO MSAA,并确保配置DefaultEngine.ini中r.MobileMSAA=0。 4.19版本有bug,移动端无法开启Temporal AA,4.18没有问题。启用TemporalAA后,在Android设备上容易产生残影(转动屏幕或角色跑动时)。 我希望有个如你一般的人 如山间清爽的风 如古城温暖的光 从清晨到夜晚 由山野到书房 只要最后是你 就好 ——张嘉佳 《从你的全世界路过》

Continue reading

问题现象 4.19版本启用Substance Plugin后,Generate Visual Studio Project Files时报错: Exception while generating include data for UE4Editor: Unable to instantiate module 'SubstanceCore': System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à UnrealBuildTool.Rules.SubstanceCore..ctor(ReadOnlyTargetRules Target) dans d:\3D\UE4.19\UnrealEngine-release\Engine\Plugins\Substance\Source\SubstanceCore\SubstanceCore.Build.cs:ligne 116 (referenced via UE4Editor.Target.cs - Substance.uplugin) 解决办法 修改:UE_4.19\Engine\Plugins\Marketplace\Substance\Source\SubstanceCore\SubstanceCore.Build.cs 将116行到124行注掉,并追加一行: IncludePS4Files = false; 参考自:https://forum.allegorithmic.com/index.php?topic=23285.0 你简单,世界就是童话;心复杂,世界就是迷宫。

Continue reading

使用第三方plugin Advanced Sessions Plugin https://forums.unrealengine.com/community/community-content-tools-and-tutorials/41043-advanced-sessions-plugin 将该plugin加入工程后,再做以下修改: 在DefaultEngine.ini的[/Script/Engine.Engine]下添加: +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") 再增加: [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" 然后启动编辑器后,以Standalone模式运行,且保证电脑上启动了Steam客户端,则启动游戏后会,在游戏屏幕右下角会自动弹出Steam相关菜单。 如果不使用该plugin,手动编写接入代码,则还需要添加以下配置: 工程名.Build.cs构造函数中添加: PublicDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils" }); DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam"); 工程名.Target.cs构造函数中添加: bUsesSteam = true; 手动接入steam SDK Online Subsystem Steam https://docs.unrealengine.com/en-us/Programming/Online/Steam Steam, Using the Steam SDK During Development https://wiki.unrealengine.com/Steam,_Using_the_Steam_SDK_During_Development Integrating Steam SDK – Part 1 http://orfeasel.com/steam_integration_p1/ Handling Steam Achievements – Steam Integration Part 2 http://orfeasel.com/handling-steam-achievements-steam-integration-part-2/ 中文翻译: 集成 Steam SDK(一)

Continue reading

keywords:UE4、Lighting、灯光 以下问题都是基于4.18,不排除后续新版本变动。 Lighting Content Examples https://docs.unrealengine.com/en-us/Resources/ContentExamples/Lighting Light Propagation Volumes Light Propagation Volumes https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/LightPropagationVolumes Dynamic GI : Getting the Most out of LPV ( Light Propagation Volume ) https://forums.unrealengine.com/community/community-content-tools-and-tutorials/103572-dynamic-gi-getting-the-most-out-of-lpv-light-propagation-volume Lighting Channels https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/LightingChannels 注意事项: Lighting Channels是动态的,意思是:静态光(Static Lights)或者Mobility为Static的Static Mesh Actor不受Lighting Channels影响。要使用Lighting Channels,Static Mesh Actor和Lights的Mobility必须设置为Stationary或者Movable。 材质类型影响:Lighting Channels只影响直接光照(direct lighting)下Opaque类型材质,Translucent或者Masked类型材质没有效果。 Lighting Channels对性能开销不大,可以忽略不计。 移动端的Lighting Channels: 4.13版本开始,才支持移动端的Lighting Channel。 移动端多个Directional Light支持不同Lighting Channels。 一个Primitives只受一个Directional Light影响,如果primitves勾选了多个Lighting Channel,那么只会启用第一个。 CSM Shadows只会投射到与光源Lighting Channels相同的primitives上。 动态点光源在移动端支持Lighting Channels的所有特性,与桌面级特性相同。 另外:Lighting Channels不支持运行时修改,就是说Lighting Channels在Actor创建时(比如BeginPlay)设置好以后,之后就无法再修改。 Occlusion Culling 光源距离裁剪 Project Settings -》 Engine -》 Rendering -》 Culling

Continue reading

官方文档 Post Process Materials https://docs.unrealengine.com/en-us/Engine/Rendering/PostProcessEffects/PostProcessMaterials Stylized Rendering Post Processing https://docs.unrealengine.com/en-us/Resources/Showcases/Stylized/PostProcessing Post Processing Content Examples https://docs.unrealengine.com/en-us/Resources/ContentExamples/PostProcessing 1.2 - ShadingModel https://docs.unrealengine.com/en-us/Resources/ContentExamples/MaterialProperties/1_2 Post Processing Content Examples https://docs.unrealengine.com/en-us/Resources/ContentExamples/PostProcessing Rendering Overview https://docs.unrealengine.com/en-us/Engine/Rendering/Overview Post Process Effects https://docs-origin.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/index.html PostProcessVolume的settings中各个属性对应的效果类型 https://docs-origin.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/index.html#postprocesssettings youtube教程 Unreal Engine 4 Tutorial - Post Process Effects https://www.youtube.com/watch?v=i6lYSXyUKRY Unreal Engine 4 Beginner Tutorial Series - #34 Post Processing https://www.youtube.com/watch?v=i9bnPStLYfk Unreal 4 Post Processing Volume Part 03 Colour Grading with LUT’s https://www.youtube.com/watch?v=HR_Mj8o-tQ4 Ue4: Post Processing Volume - Adding/Controlling Ambient Occulsion

Continue reading

[UE4]Shadows

keywords:UE4、Shadows、Scene Optimization、阴影、场景优化 Cascaded Shadow Maps 相关 1,开启 Dynamic Shadow Distance 测试用例: 500 个 Actor 同屏,摄像机高度4000,DirectionalLight 的属性Dynamic Shadow Distance StationaryLight(默认为0,表示关闭)的值要大于摄像机到Actor的直线距离(注意:是到每个Actor的直线距离,所以值尽量要设置的大一些),否则帧率从200 fps 下降到 100 fps。 参考资料 Dynamic Scene Shadows https://docs.unrealengine.com/en-us/Resources/ContentExamples/DynamicSceneShadows Cascaded Shadows https://docs.unrealengine.com/en-us/Platforms/Mobile/Lighting/HowTo/CascadedShadow Shadow Casting https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/Shadows 人会长大三次。第一次是在发现自己不是世界中心的时候。第二次是在发现即使再怎么努力,终究还是有些事令人无能为力的时候。第三次是在,明知道有些事可能会无能为力,但还是会尽力争取的时候。

Continue reading

keywords:UE4、protobuf-lite、Android NDK、ParseFromArray、Crash protobuf与android ndk编译后,集成到UE4中执行时,每当执行ParseFromArray时就会崩溃(Windows版本没有问题): MessageTest msg; bool rs = msg.ParseFromArray(buffer, buffer_size); 解决办法:将ParseFromArray()函数内部的代码复制出来,放在工程的代码中,然后再执行。 protobuf 2.x #ifndef __ProtobufHelper_H__ #define __ProtobufHelper_H__ #include <google/protobuf/message_lite.h> #include <google/protobuf/io/coded_stream.h> class ProtobufHelper { public: static bool Parse(::google::protobuf::MessageLite& Message, const char* Data, int Size) { ::google::protobuf::io::CodedInputStream input(reinterpret_cast<const uint8*>(Data), Size); return Message.MergePartialFromCodedStream(&input) && input.ConsumedEntireMessage(); } }; #endif protobuf 3.x #ifndef __ProtobufHelper_H__ #define __ProtobufHelper_H__ #include <google/protobuf/message_lite.h> #include <google/protobuf/io/coded_stream.h> #include "CoreMinimal.h" class ProtobufHelper { public: static bool Parse(::google::protobuf::MessageLite& Message, const void* Data, int Size) { ::google::protobuf::io::CodedInputStream input(static_cast<const uint8*>(Data), Size); Message.

Continue reading

先拖一个Progress Bar控件 再设置Style -》 Style -》 Background Image 再设置Percent的大小,来预览进度条颜色填充效果 也可以自定义填充颜色:Fill Color and Opacity 也可以去掉颜色,改成图片填充 注意,如果使用图片作为填充色,则Fill Color and Opacity需要改成默认值,否则填充图片颜色会受到影响。 然后再设置填充图片的Padding 你最好不要爱上我,因为游侠是不需要女人的,游侠非常孤独。----《森林好小子》

Continue reading

添加一个Button,大小设置为300x300 Image 当Draw As设置为Image时,图片会被整体拉伸 Box 图片会被分成九宫格(3x3),其中4个脚的格子大小固定,不会随分辨率改变而拉伸,上下边沿格子会跟随分辨率横向拉伸,左右边沿格子会跟随分辨率纵向拉伸 Border Border模式,Margin设置为0.25 Border模式,Margin设置为0.5 Marin表示Image边沿格子的大小,数值是百分比。例如,假设Margin设置为0.5,则表示边沿格子的大小为图片的50%。 Border模式下,Image不会随着屏幕大小拉伸,而是固定大小。例如,当Margin为0.5,且Viewport变小时,每个格子的图片不会被拉伸: 有些动物主要是皮值钱,譬如狐狸;有些动物主要是肉值钱,譬如牛;有些动物主要是骨头值钱,譬如人。——丰子恺

Continue reading

Author's picture

Neil Wang

久长唯有品格

To Be Marvelous

Yichang·Hubei