
UE4
文章平均质量分 57
TypantK
这个作者很懒,什么都没留下…
展开
-
【UE4】【C++】生成子弹、炮弹 (左键射出、抛物线)
创一个Projectile(碰撞体)(actor)的C++类转为蓝图BP_Projectile在蓝图中加入对应的模型(子弹(Sphere))在瞄准组件(AimingComponent)中加入以下代码UPROPERTY(EditAnywhere, Category = "Setup")TSubclassOf<AProjectile> ProjectileType; //选...原创 2018-03-06 22:42:20 · 5789 阅读 · 0 评论 -
【UE4】基础类的知识
Object : UE中所有类的基类 不能添加到游戏当中,不能生成、放到关卡中,用于生成函数、数据,Blueprint中无法使用Actor : 可以放在关卡中 除了BSP都被称为Actor 支持三维变换(平移旋转缩放)的通用类 可用蓝图、C++(AActor是Actor基类)Components : Actor的子对象,特殊类型的对象Pawn : 游戏当中的化身(角色,NPC)Character ...原创 2018-03-19 18:37:53 · 1036 阅读 · 0 评论 -
【UE4】玩家重生 AI重生 控制AI场内数量
玩家重生:玩家重生有关的东西 肯定是写在GameMode里面啦具体逻辑:先创建一个自定义事件RespawnPlayer,要重生的时候,顺便先删掉所有存在的AI(防止复活了还是那些AI),接着SpawnActor,便是Spawn玩家这个类了,置于Transform则提升至变量,在玩家的蓝图类中获取,然后拥有这个Spawn出来的物体,控制器就获取玩家的控制器来操纵序列第一项是创建武器和绑定在箭头上,和...原创 2018-03-23 15:04:19 · 4076 阅读 · 0 评论 -
【UE4】【C++】炮弹(子弹)使用方法(创建、作用力、范围伤害及接受伤害)
创建:首先,肯定需要一个C++类(Actor就可以)(我们就叫他Projectile--弹)然后创建基于Projectile的蓝图类一个炮弹需要什么:作为炮弹的物体、射出去的粒子效果、爆炸之后的粒子效果等等h:#include "Components/StaticMeshComponent.h" //炮弹#include "Particles/ParticleSystemCompo...原创 2018-03-14 14:37:54 · 6339 阅读 · 0 评论 -
【UE4】有关在C++类里面初始化和蓝图中赋值冲突的解决
h:#if WITH_EDITOR virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangeEvent) override;#endif比如C++创建了一个类,定义一个变量而且初始化了,接下来用子蓝图去修改初始化的值,但是还是父类的值,因为游戏在运行的时候才会实例化类,构造函数在这个时候被调用,...原创 2018-03-20 18:54:34 · 1404 阅读 · 0 评论 -
【UE4】蓝图中WASD设置玩家的移动、鼠标控制旋转、玩家人物变色
蓝图中WASD设置玩家的移动:鼠标控制旋转:玩家人物变色:原创 2018-03-21 01:10:17 · 10767 阅读 · 0 评论 -
【UE4】左键按住不放开火 松开取消开火 箭头绑定模型位置
武器蓝图中:通过箭头来作为子弹(BP_Projectile)创造的位置、方向人物蓝图中:(控制输入)还是通过箭头来大概创造枪的位置原创 2018-03-22 12:02:06 · 3313 阅读 · 0 评论 -
【UE4】动画插入{角色移动、死亡}(混合空间,状态机)
【事例中做的游戏是第三人称】这样的视角:主要素材(不动、前移、后移、左移、右移、3个死亡):(HeroBlend是自己创的混合空间)混合空间:先设置好图表的X轴的意义(Direction)(范围-180~180)和Y轴的意义(Speed)(范围0~375)大体将结点摆成这个位置(绿色的点是用来预览的)具体意思就是:状态0-->即 Idle_Rifle_Hip为速度、方向都为0的默认状态(持枪...原创 2018-03-28 00:14:50 · 8876 阅读 · 0 评论 -
【UE4】【C++】【官方实例】实现基础第一人称视角旋转、左右前后移动,Gamemode设置DefaultPawn
1.创建C++类(人物--->Character类)2.项目设置里设置好输入3.Character.h/** Base turn rate, in deg/sec. Other scaling may affect final turn rate. */UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Camera)float ...原创 2018-04-10 21:03:16 · 79593 阅读 · 0 评论 -
【UE4】AI死亡脱离控制器、忽略碰撞体
目的:AI死亡后不再阻挡角色 以及死亡后不移动CapsuleComponent是整个AI模型的碰撞体原创 2018-03-28 15:32:14 · 3131 阅读 · 1 评论 -
【UE4】【C++】【官方实例】代码实现创建Mesh
eg:在角色Character中创建一个Mesh,蓝图(以代码为父类)中放具体模型Character.hUPROPERTY(Category="Character",VisibleAnywhere,BlueprintReadOnly)class USkeletalMeshComponent* Mesh1P; //声明一个Mesh的SkeletalMeshComponentCharacter...原创 2018-04-12 17:37:51 · 4104 阅读 · 0 评论 -
【UE4】有关构建关卡的小知识(BSP(Geometry))
基本静态网格原型物体和BSPBSP可快速构建关卡的原型出来,渲染的时候会消耗更多的资源此外,BSP和BSP的集合可以转换成静态网格,可以导入到3D软件(3DMAX,MAYA),做完之后还可以导回UE作为最终的关卡...原创 2018-03-19 17:40:48 · 4778 阅读 · 0 评论 -
【UE4】蓝图中实现Projectile伤害、碰撞体伤害
先在人物基础类中写好 对应的属性(血量100,是否死亡这个布尔值,什么时候判定死亡)void ABaseCharacter::CalculateDead() { if (Health <= 0) isDead = true; else isDead = false;}void ABaseCharacter::CalculateHealth(float delta) { ...原创 2018-03-23 10:43:34 · 8180 阅读 · 0 评论 -
【UE4】【C++】枚举类(对于不同状态显示不同的颜色准心)C++设置状态,蓝图设置颜色(UI颜色绑定)
官方对枚举的用法https://wiki.unrealengine.com/Enums_For_Both_C%2B%2B_and_BP写在UClass上面、#include下面UENUM()enum class EFiringState :uint8 { //EFiringState是自己定义的类型总称 uint8=unsigned int8 Reloading, ...原创 2018-03-07 23:09:57 · 1132 阅读 · 0 评论 -
【UE4】【C++】WASD添加力到组件上让整个物体移动(油门Throttle),OnHit移动事件绑定
WASD添加力到组件上让整个物体移动(油门Throttle):通过WASD传入一个值作为油门的大小,通过函数(DriveTrack)来设置力先在项目设置中Axis Mappings(想达到按的大小轻重不同,前进后退的速度不同)加创对应的组件(TankTrack履带)C++项目(StaticMeshComponent)UCLASS(ClassGroup = (Custom), meta = (Blu...原创 2018-03-08 22:53:44 · 2673 阅读 · 0 评论 -
【UE4】【C++】角色死亡(创建代理),死亡之后的重生
http://api.unrealengine.com/CHN/Programming/UnrealArchitecture/Delegates/主要就是在角色死亡之后 向全局广播 我死了 这个事件然后因为Controller对Tank绑定了OnDeath事件(死后就执行OnControlledTankDeath())h:(玩家控制的角色)(Tank.h)在include下面写:DECLARE_D...原创 2018-03-15 21:31:00 · 4094 阅读 · 1 评论 -
【UE4】基础玩家视角的设置(SpringArm,Camera)
先在对应的模型里面加一个组件SpringArm,在其下添加一个Camera的组件调节为Camera到SpringArm的距离作为摇臂举着摄像机通过调整SpringArm的角度来调整摄像机的角度,而不是直接调整摄像机的角度(比较方便视角控制)接下来就设置输入(以鼠标控制为例)新建一个输入图表InputGraph(作为所有输入的图表集合)图表的设置步骤:1、导入输入LookH(X),以及新的空场景Sc...原创 2018-03-01 20:45:53 · 16106 阅读 · 2 评论 -
【UE4】【C++】PlayerController、AIController获取玩家对应的Pawn
先创建一个基本的C++类(Tank),因为要对Tank进行各种操作(移动,寻找目标)所以选择了Pawn类型PlayerController:再创建一个C++类(TankPlayerController),用以控制玩家操作的对象(Tank)创建好后在 .h文件内写声明 .cpp文件内写具体的函数由于我们要获取玩家对应的pawn(Tank),则是从游戏开始就开始获取,固需要重写BeginPl...原创 2018-03-01 21:06:19 · 10112 阅读 · 1 评论 -
【UE4】【C++】添加UI(血条)
新加一个新的UI,加入Progress Bar创建绑定(有关血量百分比的)获得血量的百分比UFUNCTION(BlueprintPure,Category="Tank") //暴露的是纯函数-->就是没有白色线的 float GetHealthPercentage(); //返回当前血量的百分比float ATank::GetHealthPercentage() { return ...原创 2018-03-15 21:50:20 · 3108 阅读 · 0 评论 -
【UE4】【C++】游戏中可拾取物品(捡到之后buff作用、捡完消失)
首先需要一个C++类(Actor类型就可以)(PickUpBase) 作为所有可拾取物品的根h:#include "Components/StaticMeshComponent.h" //组件#include "Components/SphereComponent.h" //可碰撞UPROPERTY(VisibleAnywhere,Category="Components")UStaticM...原创 2018-03-16 17:33:16 · 2908 阅读 · 0 评论 -
【UE4】【C++】蓝图添加UI(准心……)、获得准心对准的方向(进行旋转……)
蓝图添加UI:1、创建UI2、添加Image3、添加对应的图片以及调整瞄点的位置以及瞄位(相对于图片的位置)位置(直接移动白色的❀到30,50)瞄位(设置0.5,0.5的Alignment即可将瞄点瞄到图片中心)4、在PlayerController中加入UICreate Widget(先创建出UI)--->Add to Viewport(加入到屏幕中)获得准心对准的方向:(C++)已提供的...原创 2018-03-04 02:29:07 · 3386 阅读 · 0 评论 -
【UE4】【C++】增加一个反向力防止物体侧滑
侧滑:即物体沿着红线移动 而不是头朝着红线移动 而我们要做到的便是将红线方向的力分解成垂直和水平方向的力,通过添加水平方向反向力(绿色)来让物件朝着垂直方向移动而要求出反向力(绿色)的大小,需要用到点积(DotProduct)(即给出一个方向向量,便可以求出待分解力在此方向上的力)eg:void UTankTrack::ApplySideForce() { auto RootComponent...原创 2018-03-12 19:45:51 · 572 阅读 · 0 评论 -
【UE4】【C++】判断是否撞击到物体、从蓝图中获取组件(炮管、炮塔)、根据瞄准的方向进行(角色)旋转
先在对应的模型(炮管、枪管)前面加好Socket(FireLocation)作为生成子弹、炮弹的地方判断是会否会撞击到物体:导入头文:Kismet/GameplayStatics.hUGameplayStatics::SuggestProjectileVelocityChoose your OS:static bool SuggestProjectileVelocity( const UOb...原创 2018-03-06 18:05:37 · 2207 阅读 · 0 评论 -
【UE4】【官方实例】动画蓝图创建判断角色状态变量(是否移动、是否在空中)
具体逻辑:BlueprintUpdateAnimation是每帧都在执行的事先获取Pawn(属性内有MovementComponent可以获取是否在空中的函数IsFalling) (属性内有GetVelocity可获得角色的速度,然后用大小来判断是否在移动)...原创 2018-04-13 10:26:30 · 6080 阅读 · 0 评论