当前位置: 首页 > news >正文

虚幻5学习笔记,疑点

常用操作

运行时,调试相机,按~键,输入ToggleDebugCamera 。进入自由视角

常用节点

  • gate节点:用于控制该流程通不通,执不执行。
  • Flip Flop节点:反转执行,一次A,一次B。
  • Set Timer by Event节点:设置定时器,定时执行用户自定义事件,可循环执行。需要用户自己定义一个事件。通过三个点…进行搜索用于自定义事件。
  • Append节点:拼接字符串
  • Take High Res Screenshot节点:进行屏幕截图,Filename可以输入绝对路径,无法存储中文路径。
  • Get Actor of Class节点:获取actor类对象,返回第一个出现的。
  • Set Actor Location And Rotation节点:设置actor实例的本地坐标。
  • add timeline节点:节点,可以获取一个根据时间动态变化的值。可以不放在每一帧的事件函数Event Tick中。该节点的update会逐帧平滑的生成插值。
  • Set Material节点:为某个静态网格设置材质。
  • 快速查询某个案件节点:搜索keyboard,找到。

视角创建

从0到1创建视角。而不是使用第三人称的蓝图,官方第三人称蓝图在开始时候,会创建该一个对象。
首先,世界场景设置的pawn类就是会在游戏开始时候,在PlayerStart的位置创建游戏对象。
在这里插入图片描述
我们需要自己创建蓝图
在这里插入图片描述
创建Pawn蓝图如下,需要设置自动控制玩家0。完成显示摄像机的绑定。
在这里插入图片描述
到此运行游戏,主相机画面已经绑定到空物体BP_pawn的相机上,

方法2:
创建一个Actor类型蓝图BP_camera,直接创建弹簧臂+相机。然后将该蓝图放到场景中。
修改自己创建的BP_playercontroller,如下图。
self指代的是该PlayerController,通过视角混合完成主摄像机的绑定。
在这里插入图片描述

物体沿spline线移动

spline绘制路径

首先创建v_path_BP蓝图,类型使用actor?
在这里插入图片描述
拖入场景中后,在细节面板选择vSpline,通过selected Points选择节点,在场景中F聚焦,按住ALT键可以拖动可以新增节点。
在这里插入图片描述

使用actor蓝图

设置好路径后,对物体进行控制,我们可以在actor蓝图中编辑事件图表。这里如果使用actor蓝图。要明白你在资源文件夹中创建的actor本质是一个类,而你要使用该actor,需要拖动到场景中才能运行。并且,你如果想在actor蓝图中获取场景中的其他actor实例,使用的只有get Actor Of Class节点。该节点返回在场景中查询得到的首个对应的Actor实例,该方法在多个相同actor时候会条理不清晰。

在这里插入图片描述

使用关卡蓝图

在这里我们使用关卡蓝图。
在这里插入图片描述

获取设置的路径实例

首先我们使用V_path_BP蓝图拖动到场景中设置路径,然后我们需要关卡蓝图中使用该蓝图实例,通过在大纲面板中选中该实例对象,并且回到蓝图,右键发现出现为V_path_BP创造引用,由此可以得到准确的实例化对象。
然而我们如果使用get Actor Of Class节点,则获取不那么精确,在场景中只有一个该actor类型时候等于该效果。

在这里插入图片描述

设置时间轴

设置一个时间轴用于控制Lerp参数变化。
在这里插入图片描述
双击进入时间轴,添加自定义轨道alph,然后设置关键帧,时间长度。 变化范围0-1。
在这里插入图片描述

获取移动中曲线点的坐标

完成后回到事件图表窗口,将自定义的输出alph连接到 Lerp的alpha输入上,相当于控制百分比。a作为初始值,而Path曲线的总长度输入给B,输出一个长度。通过该该长度在Path曲线上去去找坐标。将该坐标赋值给物体即可。
注意:Get Transform at Distance Along Spline节点获取path曲线坐标时候,需要设置参数选择世界坐标or本地坐标。

更新物体坐标

最后,使用Set Actor Location And Rotation,设置物体坐标。

在这里插入图片描述

真实相机模拟仿真

创建一个Pawn,为其添加电影摄像机组件CineCamera,可以通过蓝图time line节点动态调整当前焦距,实现相机的拉近拉远效果。
在这里插入图片描述

材质、材质实例化

材质的设置

材质的设置:https://blog.csdn.net/weixin_49367526/article/details/146411592?spm=1001.2014.3001.5501

材质实例化

材质中的常量,可以右键提升为参数
在这里插入图片描述

在资源面板中,右键材质可以创建材质实例,该实例只能调整之前在材质中设置的参数,且该参数必须对主材质节点有贡献才会在实例中显示。

C++代码的使用

我的vs游戏开发组件安装未完全?必须重新进再次编译才能使得虚幻5的蓝图节点生效,否则不生效。虽然实时编译是打开的,但是没用。

创建用户代码编写的蓝图类

在这里插入图片描述

打开工程项目

在这里插入图片描述
在这里插入图片描述
其中文件ILS_simulation2.Build.cs

// ILS_simulation2.Build.cs
// Fill out your copyright notice in the Description page of Project Settings.

using System.IO;
using UnrealBuildTool;

public class ILS_simulation2 : ModuleRules
{
    public ILS_simulation2(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

		PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });//vincent增加
    }
}


编译的自定义蓝图类无法在蓝图编辑界面搜索到

项目克隆的问题

由于项目克隆,项目名称发生了变化。而项目的模块默认是与项目名称一致的,导致用户自己编译的蓝图C++类在蓝图编辑界面搜索不到。由于我的项目是从名称为ILS_simulation2项目克隆得到的TracyDataSets_1项目。所以

在这里插入图片描述

检查步骤

  1. 确认类文件是否在项目源码中 确认 .Build.cs 文件中模块设置正确。打开你模块的

  2. YourModule.Build.cs,确认是否包含必要的模块依赖:

PublicDependencyModuleNames.AddRange(new string[] {
    "Core", "CoreUObject", "Engine", "InputCore"
});

PrivateDependencyModuleNames.AddRange(new string[] {
    "Slate", "SlateCore"
});

  1. 确认 .uproject 文件中包含了你的模块。打开 YourProject.uproject,确保 “Modules” 中包含了你的模块,比如:
"Modules": [
    {
      "Name": "YourModule",
      "Type": "Runtime",
      "LoadingPhase": "Default"
    }
  ]

如果是给蓝图节点用的 Runtime 函数类,Type 可以是 “Runtime”
如果你做的是编辑器插件中的功能,可能需要 “Editor” 类型

  1. 确认包含在编译目标中
    如果你创建了新的模块,还要确保它被添加到 .Target.cs 或 .Editor.Target.cs 的 ExtraModuleNames 中:

比如 YourProjectEditor.Target.cs文件中:ExtraModuleNames.AddRange(new string[] { "YourProject", "YourModule" });

using UnrealBuildTool;
using System.Collections.Generic;

public class ILS_simulation2Target : TargetRules
{
	public ILS_simulation2Target(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.V5;

		ExtraModuleNames.AddRange( new string[] { "ILS_simulation2" } );
	}
}
  1. 重新编译并清理缓存

在这里插入图片描述
删除那两个文件夹后,可能需要对文件TracyDataSets_1.uproject右键,生成项目文件,否则打开后项目处于卸载状态。在虚幻界面打开vs的本质应该是打开的TracyDataSets_1.sln。
在这里插入图片描述

C++自定义蓝图类测试代码

//VincentSQLite.h
#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "VincentSQLite.generated.h"

UCLASS()
class ILS_SIMULATION2_API UVincentSQLite : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
public:
	UFUNCTION(BlueprintCallable, Category = "vincentSQLite")
	static FString vvCombineStrings(const FString& A, const FString& B);
};

//VincentSQLite.cpp
#include "VincentSQLite.h"

FString UVincentSQLite::vvCombineStrings(const FString& A, const FString& B)
{
    return A + B+"vincent";
}

相关文章:

  • 力扣刷题-热题100题-第32题(c++、python)
  • 玩转大语言模型——使用华为官方MindIE-Server镜像方式部署DeepSeek模型
  • 编程基础 0 到 1 1768. 交替合并字符串
  • 蓝桥杯 日期统计(刷题笔记)
  • C++多线程编码二
  • 软件学报 2024年 区块链论文 录用汇总 附pdf下载
  • httpx模块的使用
  • Java中的同步和异步
  • 语法: result=ldexp (value, exp);
  • PHP 安全 E-mail
  • MatterGen-加速材料发现
  • 现代Web应用中的时光机器:深入解析撤销/重做功能的艺术与科学
  • Mac OS 禁用 SIP 系统完整性保护
  • Java学习总结-多线程-三种创建方法
  • Qt 音乐播放器项目
  • C语言:转置矩阵
  • vue封装一个toast(vue-toastification)弹窗在拦截器js中调用
  • python | numpy小记(三):理解 NumPy 中的 `np.ceil`:向上取整的利器
  • Axure RP9.0教程 | 内联框架 对应html 元素中的iframe标签 (打开内部页面和外部网址)
  • 虚幻基础:蓝图基础知识
  • 商务网站模板下载/千博企业网站管理系统
  • 做美食视频网站有哪些/时事新闻最新
  • 做网站待遇/自己做一个网站要多少钱
  • 产品如何做网站地图/郑州网络营销哪家正规
  • 新建网站/百度官网首页登陆
  • 那个网站教做馒头/360收录提交