虚幻5 游戏玩法框架的结构

在本视频中,我们将看到游戏框架结构的高级概述,包括角色Pawn,控制器和HUD集成等功能。Begin Play是一系列专为经验丰富的开发者设计的视频,他们正在从Unity等其他引擎过渡到虚幻引擎5。每个视频都提供了引擎的各种功能以及它们如何连接在一起的高级概述。

虚幻5游戏框架图:

视频介绍:
https://dev.epicgames.com/community/learning/tutorials/5PbO/unreal-engine-56884f

SVN仓库的搭建与使用

SVN服务器免费搭建无需破解,SVN客户端工具汉化,虚幻如何设置SVN忽略文件及忽略目录,虚幻工程如何使用SVN,一口气教会你。


一、搭建SVN服务器

 


二、客户端工具

TortoiseSVN https://sourceforge.net/projects/tortoisesvn/files/1.14.8/Application/TortoiseSVN-1.14.8.29723-x64-svn-1.14.4.msi
中文语言包 https://sourceforge.net/projects/tortoisesvn/files/1.14.8/Language%20Packs/LanguagePack_1.14.8.29723-x64-zh_CN.msi

三、SVN如何忽略文件呢

  • 单文件夹忽略设置:
    • 右键 --> TortoiseSVN --> 属性 --> 新建 --> 其他 --> 选择svn:ignore
      DerivedDataCache
      Saved
  • 全局忽略设置:
    • 右键 --> TortoiseSVN --> 属性 --> 新建 --> 其他 --> 选择svn:global-ignores
      .vs
      .idea
      *.log
      *.pdb
      *.lib
      *.sln
      *.user
      *.vsconfig
      *.obj
      *.0
      *.exp
      *.exe
      ~$*
  • 移除版本控制指令
    • 在文件夹地址栏输入cmd,开启控制台
    • 输入:

      svn rm --keep-local 文件名或文件夹名


四、提交和更新的注意事项

  • 内置的Revision Control需要确保你的.svn和 你的.uproject在同一目录下才能使用。
  • 用户名是区分大小写的
  • 提交
    • 不需要关闭引擎
    • 如果有文件名修改的行为,切记要修复引用(Update Redirector References)
  • 更新
    • 一定要关闭引擎
    • 遇到冲突酌情处理,蓝图文件是二进制文件,无法使用diff工具修改,只能覆盖。
    • 如果使用服务器的覆盖本地的,一定记得备份。

以上就是本文的全部内容

虚幻5 查找Actor的几种方式

虚幻5查找Actor有哪几种几种方式?

遍历、碰撞通道(Trace Channel)、Overlap等各有什么优劣呢?


遍历方式

Get All Actors Of Class 通过类获取,不需要类型转换
Get All Actors Of Class by Tag 通过类获取,并且通过Tag筛选过,不需要类型转换
Get All Actors by Tag 获取Actor类,通过Tag筛选,需要类型转换

能不用就不用,如果要用,谨慎使用,适用场景

    • 游戏中,在明确场景中不会有太多对象时使用。
    • 在Editor中,debug或者写一些工具时用。

因此我推荐用以下几种方法来做。

第一种:碰撞通道检测

以Sphere为例有以下几种:

函数 说明
Sphere Trace By Channel 通过Trace channel进行检测,结果是单个对象
Multi Sphere Trace By Channel 通过Trace channel进行检测,结果是一个数组
Sphere Trace By Profile 通过碰撞进行检测,结果是单个对象
Multi Sphere Trace By Profile 通过碰撞进行检测,结果是一个数组
Sphere Trace For Object 通过ObjectChannel进行检测,结果是单个对象
Multi Sphere Trace For Object 通过ObjectChannel进行检测,结果是一个数组

补充说明:

1.除了sphere以外,还有Box、Capsule、Line,他们形状不同,用法基本相同;
2.实际开发中,起始点通常传不同的坐标
3.如果使用By Channel则需要设置Trace Channel

最多配置18种通道;
在Editor->Engine->Collision->Trace Channel配置;

4.如果使用By Profile则需要设置Trace Channel

在Editor->Engine->Collision->Preset配置;

5.如果使用For Object则需要设置Trace Channel

在Editor->Engine->Collision->Object Channel配置;

6.Trace Complex尽量不勾选

勾选后会使用复杂碰撞进行运算,但对实际体验几乎没提升;

 


第二种:Overlap 检测

我们同样可以对检测到的Actor数组依次执逻辑。

Sphere Overlap Actors 标准的范围overlap,使用的ObjectType
Box Overlap Actors 同上,只是形状不同
Capsule Overlap Actors 同上,只是形状不同
    • 返回的对象是标准的Actor类,因此需要类型转换,或者使用接口来调用具体方法;
    • Object Type可以在 Editor->Engine->Collision->Object Channel 中新增;
    • 被检测物体需要开启Query;

第三种:存引用

思路是:

    • 在Actor被创建时,将自己存在一个地方,
    • 如果你是写单机,可以存在GameMode、GameState;
    • 或者干脆存在玩家Controller里都可以(前提是你确保Controller已经被加载)
    • 如果是带有联机功能的游戏,建议存在GameState里(前提是你已经熟练掌握网络同步)

 

  •  注意,这种存法,需要你去管理Actor
    • 被创建时,存进去;
    • 被销毁时,也要相应移除;
    • 对于重复的Actor可以不进行添加,防止重复触发;

以上就是虚幻检测Actor的几种方式,如有疑问,可以留言。

虚幻5 导出表格转码编辑教程

手动转码:

  1. 将虚幻引擎中的DataTable导出为CSV;
  2. 右键,使用Notepad++打开,保存为UTF8-BOM编码;
  3. 双击打开使用Excel或WPS表格编辑;
  4. 再次使用notepad++打开,并保存为UTF-16 Little Endian编码;
  5. 进入引擎,Reimport;

转码脚本:

1_转码.bat

@echo off
echo Starting PowerShell script...

:: 使用 PowerShell 以单行命令的方式执行脚本
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"foreach ($file in Get-ChildItem -Filter '*.csv') { ^
Write-Host 'Processing file: ' $file.Name; ^
Copy-Item $file.FullName -Destination ($file.FullName + '.bak'); ^
Write-Host 'Backup created: ' $file.FullName + '.bak'; ^
$content = Get-Content $file.FullName -Raw; ^
[System.IO.File]::WriteAllText($file.FullName + '.tmp', $content, [System.Text.Encoding]::UTF8); ^
Move-Item -Force ($file.FullName + '.tmp') $file.FullName; ^
Write-Host 'Replaced original file with UTF-8 BOM: ' $file.FullName; ^
}"

:: 等待按键后退出
pause

 

2_转回.bat

@echo off
echo Starting PowerShell script...

:: 使用 PowerShell 以单行命令的方式执行脚本
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"foreach ($file in Get-ChildItem -Filter '*.csv') { ^
Write-Host 'Processing file: ' $file.Name; ^
Copy-Item $file.FullName -Destination ($file.FullName + '.bak2'); ^
Write-Host 'Backup created: ' $file.FullName + '.bak2'; ^
$content = Get-Content $file.FullName -Raw; ^
[System.IO.File]::WriteAllText($file.FullName + '.tmp', $content, [System.Text.Encoding]::Unicode); ^
Move-Item -Force ($file.FullName + '.tmp') $file.FullName; ^
Write-Host 'Replaced original file with UTF-16 LE encoding: ' $file.FullName; ^
}"

:: 等待按键后退出
pause


小技巧:

NSLOCTEXT相关的文本可以全部删除,只保留文本。

NSLOCTEXT("DT_Item [BA04E9A51625FD0BDF1445A8E42FFEE7]", "道具2_DisplayName", "护手部件")

改成:

护手部件


视频演示: https://www.bilibili.com/video/BV1we6TYNEm6/

以上就是本文的全部内容。

虚幻5 Unknown structure报错解决方法

打包Unknown structure报错解决方法

Unreal 5.4.4 出包时遇到以下蓝图报错:

  • LogProperty: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/xxx/xxx' . Unknown structure.
  • PackagingResults: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/xxx/xxx' . Unknown structure.

报错信息可能很多,但本质上都是结构体报错

解决方法也很简单

  • 找到报错的蓝图
  • 重命名对应的结构体变量
  • 然后编译蓝图保存。

去试试看吧。

市面上有哪些使用UE引擎开发的游戏

中国:

黑神话:悟空 创造吧!我们的星球 无限大
鸣潮 和平精英 幻塔
鸿图之下 战争机器5 梦想新大陆
黑暗与光明 火炬之光:无限 ᅟᅠ

欧美:

地狱之刃2:塞娜的史诗(英国) 堡垒之夜 无主之地3
方舟生存进化 Stray 小缇娜的奇幻之地
小小梦魇 Darker and Darker 遗迹2
霍格沃茨之遗 堕落之主 黎明杀机(加拿大)

日本:

勇者斗恶龙12 幻兽帕鲁 蓝色协议
八方旅人I 八方旅人 II 最终幻想7重制版
DQ11 铁拳7 街霸5
拳皇15 王国之心3 龙珠 fighter Z
血污:夜之仪式 ᅟᅠ ᅟᅠ

韩国:

上古世纪2 伊米尔传奇 绝地求生
第一后裔 ᅟᅠ ᅟᅠ

其他:

潜行者2:切尔诺贝利之心 风暴之门 寂静岭2:重制版
退出移动版