UE4
Endless丶Go
游戏服务器研发
展开
-
UE4-UFunction Exec,控制台函数
https://docs.unrealengine.com/4.27/zh-CN/ProgrammingAndScripting/GameplayArchitecture/Functions/UFunction 是虚幻引擎4(UE4)反射系统可识别的C++函数。UObject 或蓝图函数库可将成员函数声明为UFunction,方法是将 UFUNCTION 宏放在头文件中函数声明上方的行中。宏将支持 函数说明符 更改UE4解译和使用函数的方式。其中就有 Exec,注意仅在特定类中声明才可以通过控制台执原创 2022-02-11 22:49:33 · 4077 阅读 · 0 评论 -
UE4蓝图技巧-Palette
Window-Palette 调色板,打开如下图放大点,翻译成中文提供了所有可被放置的节点,例如对于CheatManager来说,其实就是BlueprintCallable的那些函数原创 2022-02-11 21:38:03 · 409 阅读 · 0 评论 -
UE4-UCheatManager
//=============================================================================// CheatManager// Object within playercontroller that manages development "cheat"// commands only spawned in single player mode// No cheat manager is created in shipping bu.原创 2022-02-11 19:51:27 · 1028 阅读 · 0 评论 -
UE4-FindObject & LoadObject
[UE4]C++实现动态(Runtime)加载的问题:LoadClass<T>()和LoadObject<T>() - 知乎动态加载UObject和动态加载UClass分别用LoadObject<T>(),和LoadClass<T>() ,两者均在在UObjectGlobals.h中。FindObject和LoadObject有什么区别?UE4引用资源小结 - 知乎如果资源已经加载完毕: FindObject<>()如果资源还没加载原创 2022-02-10 20:53:36 · 2665 阅读 · 0 评论 -
UE4-ProjectOnToNormal
//Vector.h /** * Gets a copy of this vector projected onto the input vector, which is assumed to be unit length. * * @param Normal Vector to project onto (assumed to be unit length). * @return Projected vector. */ FORCEINLINE FVector Proje...原创 2022-02-10 15:36:59 · 475 阅读 · 0 评论 -
UE4蓝图技巧-Validated Get
蓝图内新建一个变量右键选择 Convert to Validated Get转换后的Validated Get 节点如下,可以看到不用再拖3个节点来判断是否有效了,1个节点就完事,效率更高。还可以右键 Convert to pure Get转回原生的变量...原创 2022-02-09 10:39:56 · 870 阅读 · 0 评论 -
UE4骨架网格体动画系统(1)
参考https://docs.unrealengine.com/4.27/zh-CN/AnimatingObjects/SkeletalMeshAnimation/虚幻引擎4(UE4)动画系统由多个动画工具和编辑器构成,其将基于骨架的变形与基于变形的顶点变形相结合,从而构建出复杂的动画。 该系统可以用于播放和混合预先准备好的 动画序列 让基本玩家运动显得更加真实,创建自定义特殊动作,如伸缩台阶 和墙壁(使用 动画蒙太奇),通过 变形目标 应用伤害效果或面部表情,使用 骨架控制 直接控制骨骼变形,或创原创 2022-01-28 12:03:25 · 1196 阅读 · 0 评论 -
动画实例类接口:GetOwningActor-获得拥有者Actor
获得拥有者Actor,返回的是拥有这个动画实例的Actor。//AnimInstance.h /** Returns the owning actor of this AnimInstance */ UFUNCTION(BlueprintCallable, Category = "Animation", meta=(NotBlueprintThreadSafe)) AActor* GetOwningActor() const;AActor* UAnimInstance::GetOwningA原创 2022-01-25 17:47:03 · 616 阅读 · 0 评论 -
动画实例类接口:TryGetPawnOwner-获取拥有者Pawn
动画实例,获取拥有者逻辑//AnimInstance.h UFUNCTION(BlueprintCallable, Category = "Animation", meta=(NotBlueprintThreadSafe)) virtual APawn* TryGetPawnOwner() const;//AnimInstance.cppAPawn* UAnimInstance::TryGetPawnOwner() const{ USkeletalMeshComponent* Owner原创 2022-01-25 17:42:30 · 1342 阅读 · 0 评论 -
动画实例类接口:BlueprintInitializeAnimation-蓝图初始化动画
//AnimInstance.h /** Executed when the Animation is initialized */ UFUNCTION(BlueprintImplementableEvent) void BlueprintInitializeAnimation();/** 动画初始化时执行 */BlueprintInitializeAnimation()//AnimInstance.cppvoid UAnimInstance::InitializeAnimatio.原创 2022-01-25 17:37:28 · 317 阅读 · 0 评论 -
CalcLocalBounds
//SceneComponent.hclass ENGINE_API USceneComponent : public UActorComponent{ /** Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size. */ virtual FBoxSphereBounds CalcBounds(const FTransform& LocalToWorld...原创 2022-01-25 17:14:28 · 191 阅读 · 0 评论 -
UE4 C++入门——动画蒙太奇 学习笔记
UE4 C++入门——动画蒙太奇_哔哩哔哩_bilibili1、创建动画蒙太奇2、选择角色的骨架 SK_Mannequin(模型)_Skeleton(骨骼)3、蒙太奇组视频中可以看出ExoGame_Fire_Golem_Attack_Melee是手攻击动画,MeleeC是脚攻击动画把上面两个动画拖进蒙太奇组插槽, 暂时不知道什么意思4、新建蒙太奇片段,默认的叫Default点击清除或者叉掉分两段。目的是为了可选择两个片段中的一个进行播...原创 2022-01-20 21:50:10 · 3770 阅读 · 0 评论 -
行为树 bTickIntervals
/** 如果设置,条件滴答将使用剩余时间形成节点的内存 */uint8 bTickIntervals:1;//BTAuxiliaryNode.hUCLASS(Abstract)class AIMODULE_API UBTAuxiliaryNode : public UBTNode{ /** if set, conditional tick will use remaining time form node's memory */ uint8 bTickIntervals : 1;逻辑待原创 2022-01-19 19:43:11 · 360 阅读 · 0 评论 -
UGameplayStatics接口:BlueprintSuggestProjectileVelocity & SuggestProjectileVelocity-建议弹射速度
BlueprintSuggestProjectileVelocity是基于SuggestProjectileVelocity实现的,因此看后者实现即可。bool UGameplayStatics::BlueprintSuggestProjectileVelocity(const UObject* WorldContextObject, FVector& OutTossVelocity, FVector StartLocation, FVector EndLocation, float Laun原创 2022-01-26 11:57:24 · 469 阅读 · 0 评论 -
蓝图调用Parent方法:Add call to parent function
蓝图节点,调用Parent方法(也即Super):右键Add call to parent function原创 2022-01-12 14:55:42 · 653 阅读 · 0 评论 -
UMovementComponent::TwoWallAdjust
void UCharacterMovementComponent::PhysFalling(float deltaTime, int32 Iterations){ else if ( Hit.bBlockingHit ) { const FVector OldHitNormal = Hit.Normal; const FVector OldHitImpactNormal = Hit.ImpactNormal; FVector Delta = ComputeSlid.原创 2022-01-12 10:31:06 · 273 阅读 · 0 评论 -
UE4 FVector::SizeSquared2D()
/*** 得到这个向量的二维分量的平方长度。**///Vector.h /** * Get the squared length of the 2D components of this vector. * * @return The squared 2D length of this vector. */ float SizeSquared2D() const ;FORCEINLINE float FVector::SizeSquared2D() const { r原创 2021-12-31 18:11:40 · 553 阅读 · 0 评论 -
UE4 点乘1:FVector::operator|
//Vector.h /** * Calculate the dot product between this and another vector. * * @param V The other vector. * @return The dot product. */ FORCEINLINE float operator|(const FVector& V) const;//Vector.cppFORCEINLINE float FVector::operator.原创 2021-12-28 11:57:46 · 818 阅读 · 0 评论 -
UE4 蓝图工程转换为C++工程
有时候UE4工程是纯蓝图,想转为C++工程,右键xxx.uproject->Generate Visual Studio project files会提示没有C++工程,需要在编辑器内增加C++类。所以我们需要自己添加一个C++类,如下添加一个你想生成的C++类即可,完成后就会生成C++工程。这里我生成了一个空类,只有默认构造和析构函数。...原创 2021-12-19 17:04:51 · 4061 阅读 · 0 评论 -
UE4 命名规范
参考:https://docs.unrealengine.com/4.26/zh-CN/ProductionPipelines/DevelopmentSetup/CodingStandard/命名规范 所有代码和注释都应采用美式标准英语的拼写和语法。 命名(如类型或变量)中的每个单词需大写首字母,单词间通常无下划线。例如:Health和UPrimitiveComponent,而非lastMouseCoordinates或delta_coordinates。 类型...原创 2021-12-18 21:44:50 · 1036 阅读 · 0 评论 -
UE4 C++项目 Debug Editor | Win64
用公版Editor新建的UE4 C++项目,源码编译并不会有Debug Editor | Win64。用源码编译出来的Editor,新建UE4 C++项目才有Debug Editor | Win64。而且多了很多编译配置。原创 2021-12-18 16:21:27 · 928 阅读 · 0 评论 -
UE4 Switch Unreal Engine version
网上下载UE4项目,各种引擎版本的都有,如果想在本地,用自己版本的引擎生成,就需要切换引擎版本,或者切换源码版本的UE4和非源码版本(公版)的UE4。可以通过 "xxx.uproject->右键->Switch Unreal Engine version..." ,选择不同的引擎版本重新生成C++项目,对应编译即可。选择源码版引擎HelloUE4.uproject原本指向,公版引擎 4.26.3改变指向源码引擎后,HelloUE4.uproject文件内容...原创 2021-12-18 16:17:37 · 2197 阅读 · 0 评论 -
UE4 Gameplay框架浅析笔记
GameMode 游戏模式,不同关卡可以应用不同的游戏模式Pawn棋子,非人形角色。 Character是人形角色,有移动组件。HUD UI管理器,管理UI生命周期PlayerController 玩家控制器,控制PawnGameState 游戏状态,例如玩家得分,排行榜数据等PlayerState 玩家状态,例如生命值,魔法值,攻击力属性等Spectator 观战者GameInstance 全局单例,游戏运行时唯一存在。切换关卡时数据会清除,有三种方式可以保存数据:一是通...原创 2021-12-16 00:55:51 · 3280 阅读 · 0 评论 -
UE4新建项目目录结构
Binaries 二进制文件Config 配置文件Content 资源文件,包括蓝图等DerivedDataCache 缓存文件一般用不上Intermediate C++编译中间文件Saved 自动保存文件的目录,包括日志和Autosaves等Source 项目源码.sln 项目解决方案.uproject 项目文件上面非勾选都可以删除可以通过uproject重新生成.sln .vs和Intermediate。EditorStartup...原创 2021-12-16 00:13:49 · 588 阅读 · 0 评论 -
GetNameSafe——UE4 C++ API
GetNameSafe:返回UObject的Name(GetName()方法)/** * Returns the name of this object (with no path information) * @param Object object to retrieve the name for; NULL gives "None" * @return Name of the object.*/FORCEINLINE FString GetNameSafe(const UObjectB原创 2021-12-09 10:53:17 · 505 阅读 · 0 评论 -
WalkableFloorAngle和WalkableFloorZ
WalkableFloorAngle:可行走平面最大角度,比该值大的平面被认为是陡峭的无法行走。WalkableFloorZ:可行走平面的法线最小Z值,比该值小的平面都不是可行走平面。从WalkableFloorAngle算出。 /** * Max angle in degrees of a walkable surface. Any greater than this and it is too steep to be walkable. */ UPROPERTY(Category="原创 2021-12-06 14:55:58 · 205 阅读 · 0 评论 -
GetRandomReachablePointInRadius和GetRandomPointInNavigableRadius
蓝图节点C++接口 /** Generates a random location reachable from given Origin location. * @return Return Value represents if the call was successful */ UFUNCTION(BlueprintPure, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject", Disp原创 2021-12-06 11:30:05 · 1720 阅读 · 0 评论 -
GameplayCue路径无效
复制GameplayCue(Notify_Actor或Notify_Static)时经常提示路径无效找到DefaultGame.ini文件按如下方式+GameplayCueNotifyPaths中填上自定义路径,然后需要重新编译下项目。原创 2021-12-01 17:57:29 · 333 阅读 · 0 评论 -
RegisterGameplayTagEvent——UE4 GAS API
API//AbilitySystemComponent.h /** Allow events to be registered for specific gameplay tags being added or removed */ FOnGameplayEffectTagCountChanged& RegisterGameplayTagEvent(FGameplayTag Tag, EGameplayTagEventType::Type EventType=EGameplayTagEv原创 2021-12-01 14:52:36 · 577 阅读 · 0 评论 -
UE4控制台通过TraceTag画出trace的调试线
//World.h#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) /** When non-'None', all line traces where the TraceTag match this will be drawn */ FName DebugDrawTraceTag; /** When set to true, all scene queries will be drawn */ bool bDebugDrawAllTraceTags;.原创 2021-11-29 15:44:27 · 743 阅读 · 0 评论 -
UE4三维坐标与旋转角对应关系
UE4是左手坐标系,如下图所示旋转角与三维坐标对应关系Roll 翻滚角:绕X轴旋转Pitch 俯仰角:绕Y轴旋转Yaw 偏航角:绕Z轴旋转原创 2021-11-29 15:05:11 · 606 阅读 · 0 评论 -
Set Actor Enable Collision——UE4 Blueprint API
允许/禁止整个Actor的碰撞。参数 类型 Target Actor Object Reference New Actor Enable Collision Boolean原创 2021-11-27 15:00:51 · 584 阅读 · 0 评论 -
UE4中部分物理概念的单位
补了一下初中物理,其中物理单位如下:力 N 质量 kg 加速度 m/s^2F = m*a,因此1 N = 1 kg * 1 m/s^2。在UE4中,物理单位有不少区别:长度:厘米 cm 质量:千克 kg 加速度:厘米每秒平方 cm/s^2 力:千克厘米每秒平方 kg * cm/s^2用的地方注意。...原创 2021-11-17 14:45:41 · 1097 阅读 · 0 评论 -
SpawnActor的Owner和Instigator参数
/* Struct of optional parameters passed to SpawnActor function(s). */struct ENGINE_API FActorSpawnParameters{ /* The Actor that spawned this Actor. (Can be left as NULL). */ AActor* Owner; /* The APawn that is responsible for damage done by the spaw原创 2021-10-27 11:07:33 · 1402 阅读 · 0 评论 -
ActorBeginOverlap
文章目录问题测试默认修改待做问题有两个Sphere碰撞盒的时候会根据哪个触发ActorBeginOverlap事件?测试默认简单测试:新建Actor,新建两个Sphere(Collision),一大一小,半径分别是1m和5m,其他默认,控制角色测试重叠事件,接触大Sphere时会产生ActorBeginOverlap事件。修改对大Sphere参数GenerateOverlapEvents修改后,则不会再触发ActorBeginOverlap,这时小Sphere会触发ActorBeginOv原创 2021-10-25 11:53:31 · 437 阅读 · 0 评论 -
UE4 C++与蓝图使用的简单思考
学习UE4,一定会接触到蓝图和C++。1、逻辑写在哪?那么就会有疑问:哪些逻辑适合蓝图(BP)写?哪些逻辑适合C++写?参考https://www.bilibili.com/video/BV1C7411F7RF【虚幻C++进阶之路】视频。根据28原则,20%核心用C++,80%表层用蓝图。因此大概规则如下:BPC++偏向经常操作的偏向性能热点偏向多变的偏向稳定偏向表现层偏向引擎底层如果项目中有脚本语言,例如lua,对应参考BP。2、优缺点原创 2021-09-19 19:16:59 · 1081 阅读 · 0 评论