开启 UE4 神秘的大门
文章平均质量分 70
Unreal Engine 4
ShaderJoy
醉心于研究一些特效(用代码来画画),曾涉猎过图形图像视频处理 、计算机视觉 、增强现实/虚拟现实等技术领域,就职于美图。
展开
-
【UE4】生成随机翻转 UV 的粒子
如何将 Niagara 中生成的粒子的 UV 进行随机的翻转,该解决方法具有如下几个步骤具体步骤点击 + 添加一个模块到 Particle Spawn。输入在搜索过滤器中输入 uvscale 并点击 Particles.UVScale单击新创建的 Set Variables 模块在细节面板,点击 Particles.UVScale 旁边的 “倒三角”。 搜索 break,点击 Break Vector 2D 。点击 Particles.UVScale 的 X 输入旁边的 “倒三角”。原创 2022-05-20 05:47:24 · 1187 阅读 · 0 评论 -
【UE4/Blender】 实用材质节点笔记
对称 UVUV 漩涡通道选择程序正弦波使用 Step 的伪遮罩行为网格翻页(Flipbook)调试标量值伪随机噪声Blackbody 节点无纹理折射环Blender 中的无缝噪音纹理生成器色差/色相原创 2022-05-20 04:06:04 · 2251 阅读 · 1 评论 -
最简单的 UE 4 C++ 教程 ——通过插值和重叠事件实现开门效果【三十一】
效果图原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址在本教程中,在这个虚幻引擎4 C++ 教程中,我们将学习如何依据玩家的方向,通过使用 lerp 函数和重叠事件自动打开一扇门。创建一个新的 actor 类,比如叫它OpenDoorWithLerp。首先,在 .h 文件中,让我们在文件的顶部使用 #include BoxComponent 。确保它出现在 Actor 的generated.h文件之前。#include "CoreMinimal...翻译 2021-08-01 11:32:59 · 2368 阅读 · 0 评论 -
Common Snippets In C++【转载】
Unreal MACROsUCLASSDeclaration of the most basic UCLASS// .hUCLASS()class PROJECTNAME_API MyClassName : public ParentClass{ GENERATED_BODY()public: MyClassName();protected:private:};USTRUCTDeclaration of the most basic USTRUCT..转载 2021-07-31 15:54:16 · 1164 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 ——触发改变网格的材质【三十】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址在本教程中,当发生重叠事件时,我们将改变静态网格的材质。首先,创建一个新的 Actor 子类,在本教程中我叫它 ChangeMaterialMesh。首先,在 .h 文件中,我们将创建一个 UStaticMeshComponent 、两个 UMaterial 类和一个UBoxComponent。将元素添加到头文件的公共部分。...UPROPERTY(VisibleAnywhere)class UStaticMeshC...翻译 2021-07-31 03:23:58 · 1651 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 ——带碰撞和粒子特效的角色操控【二十九】
效果图原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址在本教程中,创建一个新的 C++ 类,继承 UPawnMovementComponent 的父类,并将其命名为CollidingPawnMovementComponent。我们将在稍后创建的 pawn 中使用这个组件。CollidingPawnMovementComponent.h#pragma once#include "CoreMinimal.h"#include "GameFrame...翻译 2021-07-30 12:35:37 · 2057 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 ——两个相机视图的切换【二十八】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,这是 Epic 的游戏控制摄像机教程的攻略教程。创建一个名为 CameraDirector 的新角色。然后在头文件中添加三个变量。添加两个从 Actor 类继承而来的摄像机 actor。将 UPROPERTY 设置为 EditAnywhere ,这样我们就可以在编辑器中添加 actor 。这两个摄像机将是用于我们的视图切换的 actor。添加一 float 变量(表示时间),这样我就可以在 cpp 文件中使用它。.翻译 2021-07-29 19:33:55 · 2533 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 漂浮的 Actor【二十七】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,本教程创建一个新的 C++ Actor 子类并将其命名为 FloatingActor。在头文件中将创建四个浮点变量。我们将创建 RunningTime、XValue、YValue 和 ZValue 变量。下面是最终的头文件代码FloatingActor.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#in.翻译 2021-07-29 15:08:10 · 1413 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 绕轴旋转【二十六】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在本教程中,我们将学习如何使用 RotateAngleAxis 函数。首先创建一个新的C++ Actor 类,并将其命名为 RotateAngleAxis 。在头文件中,我们将创建两个浮点变量和两个FVector 变量,并将它们设置为 EditAnywhere,以便稍后在编辑器中编辑它们。下面是最终的头文件代码。RotateAngleAxis.h#pragma once#include "Cor...翻译 2021-07-29 12:07:23 · 3416 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 触发区域内的键盘响应开关灯【二十五】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,创建一个新的 C++ Actor 子类并将其命名为 LightSwitchPushButton 。我们将在头文件中定义四个东西—— 我们将定义一个 UPointLightComponent、USphereComponent、float 变量和 void 函数。下面是最终的头代码。LightSwitchPushButton.h#pragma once#include "CoreMinimal.h"..翻译 2021-07-29 11:06:53 · 1518 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 为玩家绑定键盘事件【二十四】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址在本教程中,让我们为角色添加一个 Action 键盘响应。首先,我们需要添加一个名为 Action 的输入选项,并将其绑定到键盘输入或控制器按钮上。在本例中,我们将把 Action 输入绑定到键盘的 F 键。转到 编辑>项目设置(Edit > Project Settings) 。然后选择 Input 选项。单击 Action Mappings旁边的加号。调用新的输入 Action并从下拉菜单中选择 F 。...翻译 2021-07-29 06:43:13 · 2797 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 触发区域的灯光切换【二十三】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,本教程需要注意的是,需要确保第一人称的 Character 是纯净的,即没有《最简单的 UE 4 C++ 教程 —— 为 Charactor 添加重叠事件【十九】》添加的代码,否则触发灯光的开关可能会有冲突。在本教程中,我们将创建一个灯,当用户进入 actor 的 USphereComponent 时,它会打开或关闭。创建一个新的 C++ 角色类并将其命名为 LightSwitchTrigger 。在头文件中,我们将.翻译 2021-07-29 06:14:53 · 1743 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 触发器体【二十二】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在本教程中,当 actor 与 TriggerVolume 重叠时将触发一个事件。本教程使用了TriggerBox,但过程应该是相似的。创建一个新的 C++ TriggerVolume 子类并将其命名为 MyTriggerVolume 。在头文件中添加OnOverlapBegin 和 OnOverlapEnd 函数。下面是最终的头文件。MyTriggerVolume.h#pragma once#in.翻译 2021-07-29 02:30:58 · 1980 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 指定 Actor 的触发器框【二十一】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,本教程将通过特定的 actor 触发重叠事件。创建一个新的 C++ TriggerBox 类,并将其命名为 TriggerBoxSpecificActor。在头文件中,我们将为特定的 actor 声明两个 void 重叠函数和 AActor 类。下面是最终的头代码。TriggerBoxSpecificActor.h#pragma once#include "CoreMinimal.h"#inclu.翻译 2021-07-29 02:02:58 · 1432 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 触发器框【二十】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在本教程中,当角色与一个触发器框(Trigger Box)发生重叠时将触发一个事件。创建一个新的 C++ TriggerBox子类【它继承自 TriggerBase 类,而它又继承自Actor 类】并将其命名为 MyTriggerBox 。在头文件中添加 OnOverlapBegin 和 OnOverlapEnd 函数。下面是最终的 .h 头文件【原教程的头文件代码错了,已修复】。#pragm...翻译 2021-07-28 19:09:02 · 2102 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 为 Charactor 添加重叠事件【十九】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,我们继续在 Character.h 文件中,在 public 部分声明 OnOverlapBegin 和OnOverlapEnd 方法。我在本教程中的头文件名为 UnrealCPPCharacter.h ,你的文件可能有不同的名称。你可以在这里了解更多关于 OnComponentBeginOverlap 和 OnComponentEndOverlap 的信息。public ... // declare o.翻译 2021-07-28 02:36:29 · 1761 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 给 Actor 添加径向推力【十八】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,本教程非常有趣,我们将通过在设定范围内的所有物体上添加径向推力来模拟爆炸。创建一个名为 AddRadialForce 的新角色。我们不需要对头文件做任何操作。下面是由虚幻生成的默认头文件。AddRadialForce.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "AddRadialForc.翻译 2021-07-27 13:22:34 · 2381 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— Actor 线轨迹(line trace)碰撞检测【十七】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,创建一个新的 actor,在这个例子中,我们将新建的 Actor 子类称为 ActorLineTrace 。我们不需要在头文件中做任何事情。以防万一,下面是默认创建的头文件。ActorLineTrace.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "ActorLineTrace.gener.翻译 2021-07-27 11:00:59 · 2200 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 扫描多线轨迹【十六】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,本教程将说明如何使用 SweepMultiByChannel 返回给定半径内的结果。创建一个新的 C++ Actor 子类并将其命名为 MySweepActor 。我们不会对默认头文件做任何修改。下面是最终的头文件。MySweepActor.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#includ...翻译 2021-07-27 08:22:29 · 2108 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 注册组件的 hit 事件【十五】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在本教程中,我们将学习如何在组件上注册一个 hit 事件。创建一个新的 C++ Actor 子类并将其命名为 OnComponentHit 。在头文件中,将声明一个 UBoxComponent 变量和一个当组件注册一个 hit 事件时运行的 void 函数。下面是最终的头文件OnHitComponent.h#pragma once#include "CoreMinimal.h"#include "Ga.翻译 2021-07-27 05:12:28 · 2235 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 定时执行(定时器)的 Actor【十四】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,我们将创建一个名为 TimerActor 的新 actor 。在头文件中,我们将添加一个函数,每 2 秒重复执行一次;一个 FTimerHandle 类,以在世界时间内管理该函数。TimerActor.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "TimerActor.generated..翻译 2021-07-27 04:08:17 · 2092 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 平滑切换玩家的相机(视图目标)到 Actor 位置【十三】
原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在这个简单的教程中,我们将在游戏开始时,简单地平滑混合运动来改变玩家的视图目标。创建一个新的 C++ Actor 子类并将其命名为 SetViewTargetBlend 。在头文件中,我们将声明一个 actor 变量,并将其称为 MyActor 并使新角色在任何地方都可编辑。SetViewTargetBlend.h#pragma once#include "CoreMinimal.h"#inc...翻译 2021-07-27 03:43:36 · 1904 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 立即切换玩家的相机(视图目标)到 Actor 位置【十二】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在这个简单的教程中,我们将在游戏开始时简单地改变玩家的视图目标。创建一个新的 C++ Actor 子类并将其命名为 SetViewTarget 。在头文件中,我们将声明一个 actor 变量,并将其称为 MyActor 并使该 actor 在任何地方都可编辑。SetViewTarget.h#pragma once#include "CoreMinimal.h"#include "GameFra...翻译 2021-07-27 03:13:49 · 1941 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 实时旋转 Actor【十一】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在本教程中,我们将每帧都对一个 actor 进行旋转。创建一个新的 C++ Actor 类并将其命名为RotatingActor。在头文件中,我们将创建 3 个浮点变量。我们将把它们的 UPROPERTY 设置为EditAnywhere,这样我们就可以在编辑器中更改值,我们将把所有变量放在 Movement 类别中,以使它们在一起,并与其他属性分开。下面是最终的头文件。RotatingActor.h#...翻译 2021-07-27 02:04:01 · 2079 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 设置 Actor 的位置和朝向【十】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,在本教程中,我们将学习如何使用 SetActorLocationAndRotation 函数。创建一个新的 C++ Actor 子类并将其命名为 SetActorLocationAndRotation。在头文件中创建分别一个FVector 和 FQuat 变量,通过设置 UPROPERTY 为 EditAnywhere 使它们可以在任何地方被编辑。同时将这些变量放在 Location 类别中,使它们在一起,并与其他属性.翻译 2021-07-27 01:15:06 · 2897 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 获取场景中小兵的个数【九】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节教程,本教程将介绍 —— 如何在一个场景中获得小兵的总数。创建一个新的 C++ Actor 子类,并将其命名为 GetNumberOfPawns 。头文件中不需要做任何事情,下面是最终的头文件。GetNumberOfPawns.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "GetNumberO.翻译 2021-07-27 00:28:51 · 1339 阅读 · 1 评论 -
最简单的 UE 4 C++ 教程 —— 隐藏并禁用游戏中的 Actor【八】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节,要在游戏中完全隐藏角色,你必须做三件事。你必须禁用它的碰撞, 禁用它的滴答声, 并将其隐藏在游戏中。您可以将代码添加到任何 actor 子类实例上。对于本例,我创建了一个单独的 actor 来演示它的用途。创建一个名为 HideActor 的 actor。在头文件中我创建了两个:通过bool HideInGame 来跟踪,如果我们想禁用 actor 的话,并在void DisableActor 运...翻译 2021-07-26 10:29:37 · 3271 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 寻找玩家的当前位置【七】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节,这是一个关于如何从其他角色获得玩家当前(矢量)位置的简单教程。从 Actor 父类继承一个名为 FindPlayerLocation 的新类。我们不需要在头文件中做任何事。下面是为类生成的默认头文件。#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "FindPlayerPosition.generated.h"UCLASS(.翻译 2021-07-26 10:03:15 · 2730 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 绘制 UE4 辅助调试的形状【六】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节,在本教程中,我们将绘制 DrawDebugHelpers.h 提供的多个调试形状。DrawDebugHelpers.h包含的相关的所有内容都是由 UE4 提供的。创建一个新的 C++ Actor 子类并将其命名为 MyDrawDebugHelpers。在头文件中,我们将在 .h 中声明将在 .cpp 文件中使用的变量,它们也可以在编辑器中进行编辑。我们将创建一个FVectors,一个 FMatrix,一个 ...翻译 2021-07-26 09:16:02 · 2156 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 打印调试信息【五】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节,我们新创建一个名为 ConsoleLog 的新 Actor 子类(我们不需要在头文件中执行任何操作)。ConsoleLog.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "ConsoleLog.generated.h"UCLASS()class UNREALCPP_API ACon...翻译 2021-07-26 08:16:22 · 2045 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 编程实现添加一个组件【四】
【原教程是基于 UE4.18,我是基于 UE 4.25】英文原地址接上一节,在本教程中,我们将添加一个广告牌组件(Billboard)到我们的 Actor 对象上。在 UE4 编辑器中也可以很容易地添加组件,但是这次让我们通过编程来实现。首先,我们将创建一个名为 AddBillboardComp 的新的 Actor 子类。请记住,如果您用不同的名字的话,请确保在使用了该头文件和 cpp 文件的地方都相应更改了名称。在头文件中,我们将创建一个继承自 UBillboardCompo.翻译 2021-07-26 04:49:09 · 3107 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— C++ 中添加静态网格文件【三】
英文源地址接上一节的教程,让我们首先创建一个名为 AddMeshFromFile 的新 Actor 子类。我们不需要在头文件中做任何事情。下面是创建新类时生成的默认头文件。AddMeshFromFile.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "AddMeshFromFile.generated.h"UCLASS()class UNREALCPP_API翻译 2021-07-26 03:31:49 · 2606 阅读 · 2 评论 -
最简单的 UE 4 C++ 教程 —— 创建静态网格【二】
英文源地址创建一个新的继承自 Actor 的 C++ 类并将其命名为 CreateStaticMesh 。在头文件中添加UStaticMeshComponent,然后随意命名它。在这个例子中,我将其命名为“SuperMesh”。我们将变量的 UPROPERTY 设置为 VisibleAnywhere ,这样我们就可以轻松地在编辑器中添加一个网格,如下图所示。下面是最终的头代码CreateStaticMesh.h#pragma once#include "Core...翻译 2021-07-25 23:02:56 · 3696 阅读 · 0 评论 -
最简单的 UE 4 C++ 教程 —— 添加一个 Actor 子类【一】
英文原地址在本教程中,我们使用标准的第一人称 C++ 模板并带上入门内容要添加一个新的 C++ 类到您的项目,首先右键单击,然后选择 new C++ 类。然后选择您想要继承的父类。在本教程大多数情况,我们都是从 Actor 类中继承的。接下来,命名并设置类的位置路径。创建一个新的 C++ 类选择我们想要继承的父类设置该新建的 Actor 子类的路径和名字在本教程中,我将我的 Actor 命名为 MyActor,并将默认路径...翻译 2021-07-25 21:56:43 · 2310 阅读 · 0 评论 -
使用蓝图(Blueprint)绑定多播委托(Multicast Delegate)【UE4】【C++】
本例将讲解 如何在 C++ 中创建一个多播委托,然后在运行时通知一组的 Actors(即广播事件给监听事件的对象们)首先创建一个 继承自StaticMeshActor 的类,命名为 KingKing.h// the type name of new delegate signature being created// the type of the signature's parameter原创 2017-03-20 21:09:15 · 8442 阅读 · 5 评论 -
后期材质(PostProcess Material)+ Custom Node 实现"描边"和"马赛克"效果【UE4】
参考自:描边马赛克描边效果静态:动态:马赛克效果静态:动态材质编辑器分别如下:描边马赛克HLSL代码分别如下:描边//input SceneTexSize//input UV//input NotUse//input OutLineSize//input MaxZ//input OutLineColorfloat3 w=float3(0.2125,0.7154,0.0721);fl原创 2017-03-18 16:33:08 · 4622 阅读 · 0 评论 -
事件处理(Handling Events)和委托(Delegate)代码示例(三)【UE4】【C++】
6. 自定义事件(Custom Event)首先添加事件声明宏到 MyTriggerVolume 类中(不是 GameMode)自定义事件声明如下:DECLARE_EVENT(AMyTriggerVolume, FPlayerEntered)第一个参数是具体实现事件的类,也是唯一能调用Broadcast 的类第二个参数是我们事件函数的签名并添加刚刚声明的事件签名的实例FPlayerEntered原创 2017-03-20 15:06:41 · 4152 阅读 · 0 评论 -
事件处理(Handling Events)和委托(Delegate)代码示例(一)【UE4】【C++】
1. 通过重写虚函数来处理事件MyTriggerVolume.h自定义一个Actor类,添加一个 Box 组件作为触发区域,然后通过重写虚函数——NotifyActorBeginOverlap, NotifyActorEndOverlap来响应事件#pragma once#include "GameFramework/Actor.h"#include "MyTriggerVolume.gen原创 2017-03-20 01:44:00 · 3394 阅读 · 1 评论 -
事件处理(Handling Events)和委托(Delegate)代码示例(二)【UE4】【C++】
3. 创建带参数的委托我们可以通过修改委托的签名来使其接受参数比如我们需要接受一个参数的话,可以在 GameMode 中这样声明:DECLARE_DELEGATE_OneParam(FParamDelegateSignature, FLinearColor)注意:这个宏与之前稍有不同,后缀多出了一个 _OneParam ,而且我们还需要指定接受参数的类型——本例为 FLinearColor接着再添原创 2017-03-20 13:44:52 · 3919 阅读 · 0 评论 -
利用第三方后期处理材质(PostProcess Material)对物体进行描边【UE4】【C++】
效果图:第一步,创建C++ Basic Code第二步,定义键盘和鼠标输入的映射第三步,修改 Rendering 中的 Custom Depth - Stencil Pass第四步,找到GlobalPostProcessVolume [如果没有的话自行拖放一个PostProcessVolume组件]将 unbound 勾选上再修改 Blendables 为 PPI_OutlineColored完原创 2017-03-16 21:43:55 · 10179 阅读 · 0 评论