- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 【UE5】动态播放媒体
最近项目中有一个需求,需要将场景中的42块屏幕都显示媒体内容,想着如果每一块屏幕都创建一个MediaPlayer资产、一个MediaSource资产、一个MediaTexture资产及创建对应的Material,就是4*42=168个资产需要维护了,所以想着就全部采用动态创建,动态管理的办法维护,其中碰到了一些问题,在此记录一下。
2024-04-29 09:38:37
2047
原创 【UE5】数字人基础
这里主要记录一下自己在实现数字人得过程中涉及导XSens惯性动捕,视频动捕,LiveLinkFace表捕,GRoom物理头发等。
2024-04-28 21:59:10
2538
2
原创 【UE5】UE5与Python Socket通信中文数据接收不全
问题就出在Count的值上,可以看到在上面的代码中我们是直接计算的FString的长度,然后以这个长度作为发送的数据大小,在纯英文的数据中这没有任何问题,但在中文数据中,由于中文编码的特殊性,FString应该有做特殊的编码处理,导致直接计算FString的长度作为发送数据的字节大小其实是小于真实数据大小的,这就导致在UE端发送中文数据时就没有发送完整到数据,所以Python端接收到数据就出现数据不全的问题。最近在使用UE的Socket模块与Python服务器进行通信时遇到了一些坑,特此记录一下。
2023-08-03 20:49:32
1271
原创 【AI】Stable-Diffusion-WebUI使用指南
最近AI绘画实现了真人照片级绘画水准,导致AI绘画大火,公司也让我研究研究,借此机会正好了解一下深度学习在AIGC(AI Generated Content)----人工智能自动内容生成领域的应用。
2023-06-03 21:27:24
18379
5
原创 【UE5】动画系统
除了使用自定义的动画蓝图外,我们也可以使用自定义的动画通知,我们只需要创建一个继承自UAnimNotify的蓝图类或C++类,动画系统就会将自定义的动画通知注册进系统,我们就可以在动画序列编辑器中看到自定义的动画通知了,如:创建一个名叫AnimNotify_JumpStart的自定义动画通知,然后我们就可以在动画序列里看到这个预定义通知:自定义类中提供了函数的重写,这样我们在接受到动画通知时可以做一些通用的处理逻辑。
2023-01-31 21:05:26
10502
3
原创 【UE5】使用快捷键切换编辑器中英文设置
最近在项目上和美术配合,由于在编辑器上美术习惯使用中文而我习惯使用英文,配合的时候对中英文要切来切去很麻烦,于是就向弄一个快捷键来切换编辑器的中英文,然后在网上找到一个大佬—[opda](UE4自定义快捷键实现中英文切换 - 知乎 (zhihu.com))的实现,并且大佬还直接将功能插件化了,不过大佬是在UE4中做的插件,而我要在UE5.1中使用,直接将插件放入引擎编译过不了,会报这个错误:这里直接在插件的.biuld.cs文件中加一行:再编译就好了,然后进入编辑器就可以直接使用F6快捷键进行中英文切换
2022-12-07 22:50:46
2203
原创 【UE5】多用户协同编辑
UE5新出了一个多用户协同功能所以想搭一个来玩玩。Epic已经将流程极度的简化了,在B站虚幻官方也放出了教程视频,[官方文档](多用户编辑入门 | 虚幻引擎文档 (unrealengine.com))也有教程。这里做一下简要记录。首先打开Multi-User Editing插件,插件会要求重启,重启之后,在Project Settings/Plugins下会多出一个Multi-User Editing选项。Enable Multi-User Toolbar Button:勾选之后需要重启编辑器,在编辑器的菜
2022-12-07 22:49:42
5272
3
原创 【UE5】解决UE5无法播放mp4视频
最近接手的项目需要把项目从UE4中迁移至UE5,其中遇到了一个mp4视频无法播放的bug,这里做一下记录。在官方论中有提到过这个bug,https://forums.unrealengine.com/t/media-textures-wont-display-video-in-ue5-preview-1-while-using-directx-12/503980/2意思是在最新的DX12图形库下UE5默认使用的WMF解码器目前不支持mp4的视频解码。解决方案有两个,其一更换图形库,其二更换解码器。
2022-11-14 22:44:12
10350
4
原创 【UE4】C++编程
右键.uproject会出现几个选项:.uproject是UE的项目描述文件,采用json的格式来描述一个项目的版本信息、模块信息、插件信息等。.uproject参数描述文件—FileVersion:描述项目版本;EngineAssociation:引擎版本;Category:这个分类着实是不知道有什么卵用;Description:项目描述;Modules:模块信息,是一个类型的数组,数组中一个元素代表一个模块,的具体描述在ModuleDescriptor.h里面涉及很多模块的描述,最常使用的基本只
2022-10-16 00:34:10
8037
4
原创 【UE4】全局Widget
由于UE4在默认情况下会OpenLevel会将当前Level创建的Widget从ViewportClient中移除,所以默认的UserWidget会随着切换关切而消失。(gif过大自行下载查看)[https://raw.githubusercontent.com/Goulandis/ImgLib/main/img/20220508232919.gif]有的时候我们可能需要使用一个全局的按钮什么的,所以就需要Widget不随切换关切而从ViewprotClient中移除,而是在我们想要移除的时候才移除,做
2022-05-08 23:38:29
1817
原创 【UE4】获取13位时间戳
UE4自身提供了一个FDateTime::ToUnixTimestamp函数可以将系统时间转换位时间戳,但是FDateTime::ToUnixTimestamp只能提供10位的时间错,翻阅了FDateTime中并没有提供13位的时间戳,且查看FDateTime::ToUnixTimestamp的源码,确实只精确到秒。FString UBPFunctionLibrary::GetTimestamp(){ FString Timestamp; FDateTime Time = FDateTime:
2022-05-06 20:41:58
5053
3
原创 【UE4】UE4文件系统
title: 【UE4】UE4 文件系统date: 2021-06-16 22:24:22tags: UE4categories: 知识记录password:abstract:message:先来看一下UE4文件系统的类组成情况:我们一个个类来看。这里面类组成大致可以分为三大类:物理文件类:UE4封装的在各个平台下直接对文件进行操作的类,主要是IPhysicalPlatformFile及其子类;包装文件类:UE4封装的对特定情况的文件进行操作的类,如对pak包的处理,包装文件类.
2022-01-27 12:22:51
9834
2
原创 【UE4】UE4GamePlay架构
参考博客:UE4官方文档、大钊、南京周润发、带带大师兄、yblackd、董国政、 Ken_An、张悟基、paprika这篇博文主要记录一些自己在学习GamePlay的过程中一些心得记录,最开始使用的是UE5源码学习,后来不知道不小心改了啥,UE5源码崩了,就换回了UE4.26所以源码部分可能会有一部分来自UE5有一部分来自UE4,会有点出入。一、整体框架首先来看一下整体框架: 红色部分为主体,从右往左为组合关系,至上而下为派生关系。在整个UE宇宙的构成中,UEngine就类似化学元素,UObj
2021-12-08 15:23:41
15063
6
原创 【UE5】9-16视域时画面拉伸
在做UE5的安卓竖屏开发时碰到一个很有意思的问题,UE5拖入场景的CameraActor画面比例默认是16:9的,当我们我们需要竖屏显示时,需要设置成9:16,设置方法也比较简单,将Aspect Ratio(横纵比)设置成9/16=0.5625就可以了。于是问题出现了,当相机靠近View Target时画面出现了拉伸。嗯,脚变得特变长,怎么办呢?经过一番摸索,发现可以通过修改视距和视域解决,这里我们把相机的视距拉远一点,然后把视域设小一点,如:视域默认为90,这里我设成23,于是效果出来了。
2021-09-14 14:36:01
2830
5
原创 【UE5】UE5 Dedicated Server专用服务器与网络同步
这篇文章是个人在学习UE4的网络同步方面的内容的一些记录,因为UE5出来了,顺带也一起熟悉熟悉UE5,所以也就直接使用UE5来实践了。说句实在话,UE4网络同步这块确实挺难的,我自己在网上搜索的博客的内容要么停留在很浅层面只搭建一个ds服务器,要么就直接深入源码去剖析UE4的网络机制,处在中间层面的内容少之又少,不得不自己好一阵研究,强烈推荐这几位博主的博文,我在学习的过程中也从中受益匪浅。Ken_An、风蚀之月、 刘东无敌还有我师傅推荐给我的一本关于UE4网络的PDF。一、什么是Dedicated
2021-08-11 23:09:38
21554
9
原创 【UE4】UE4 在网页里展示虚拟形象
参考博客:吾爱豆一、通过UMG来展示角色在UE4中使用UMG来展示角色的原理主要通过UE4提供的一个SceneCapture2D相机来捕捉场景中的画面,搭配Render Target将捕捉到的画面显示到贴图上,然后将贴图制作成材质,将材质运用到UMG中就可以了,当然也不一定非得要将贴图制作成材质再给UMG使用,贴图也是可以直接给UMG使用的,只是我们后面还需要在材质里对贴图做一些处理,所以这里就直接把贴图做成材质了。首先像场景中添加一个SceneCapture2D,并把它位置设置到角色前,设置到自己想
2021-08-05 21:57:35
1741
原创 【C++】C++STL标准模板库
一、STL的基本概念1.什么是STLSTL (Standard Template Librany)标准准模板庠是惠普实验室开发的一系列软件的统称。现在主要出现在C++中,但在被引入C++之前该技木就已存在了很长一段吋间了。STL的从广义上讲分为三类: algorithm (算法)、container (容器)和iterator (迭代器),容器和算法通过迭代器可以进行无缝链接。几乎所有的代码都釆用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C++标准中,S
2021-03-31 08:59:48
474
原创 【Python】Python学习笔记
title: 【Python】Python学习笔记date: 2021-02-04 14:10:35tags: Pythoncategories: 学习笔记password:abstract:message:Python基础一、中文编码、注释与标准文档1.中文编码若只需要在单个文件中指定中文编码,只需在文件开始处添加# _*_ coding: UTF-8 _*_即可。如果要在整个工程里设置中文编码,则需要在编辑器中设置工程的编码为UTF-8。2.单行注释python使用.
2021-03-04 09:32:45
2918
2
原创 【UE4】基于Spline的测距功能
基于Spline的测距功能插件一、功能分析这里首先分析一下整个插件的功能部件SplineActor—基于Spline的线条显示模块Ranging—对整个插件功能的整体控制DistancePanel—距离显示UIPoint—线上的点,集成DistancePanelFunLib—高复用函数集合资产状况:由于使用屏幕坐标转世界坐标的方式实现测距功能可能及其复杂,所以这里使用比较直观简便的三维Spline来实现测距功能。二、制作线上的点Point1.Point的结构分
2020-07-19 20:19:26
4463
31
原创 【UE4】实现自定义框选
要在UE4中实现自定义框选功能,首先我们来分析一下顶顶一框选插件需要些什么模块?绘制模块显示模块计算模块嗯,大概分这么三个模块,好,现在我们一个个模块来分析实现。首先分析实现一下显示模块。提示:如果功能需要打包成插件,请先浏览第四章一、显示模块首先我们需要做一些准备1.创建Wedgit作为显示载体UE4绘制直线的方式很多,这里我使用DrawLine在RenderTarget里绘制,绘制的实现放在后面说。然后我们需要让自定义框选的线显示在屏幕上,那么使用wedgit来显示是比较理想的
2020-06-05 20:04:28
4166
原创 【BAT】BATWindows自动脚本同步GitHub远程仓库
title: 【BAT】BATWindows自动脚本同步GitHub远程仓库date: 2020-01-21 20:01:34tags: BATcategories: 知识记录Windows自动脚本,我已自动同步GitHub仓库为例。一、编写自动脚本先上源码,可以直接用TXT写,然后将文件后缀改为.bat。start "C:\Windows\System32\cmd.exe"cd /G:cd Goulandis\Git\Tempgit add .git commit -m "Fro.
2020-06-01 22:09:56
621
原创 【UE4】UE4使用蓝图动态修改粒子参数
如果对UE4联级粒子P_Water系统比较熟悉的可能对动态修改粒子参数不陌生。UE4的联级粒子系统大部分的模块都拥有一个 Distribution子栏,其中可以选择如下模式其中 Distribution Vector Particle Parameter就是参数模式,选择之后Distribution栏会变成这样其中Parameter Name就是参数的名字,在蓝图调用参数时需要用到。Mi...
2020-01-17 17:07:46
8928
1
原创 【UE4】UE4内嵌Web及与Web通信
UE4嵌入Web及UE4到Web的通信,我使用UE 4.22.3版本,以UE4嵌入ECharts并与ECharts通信为例。一、自定义WebBrowserUwebBrowser是UE4自带的用于浏览Web的插件类,为了后面进行UE4与Web的通信,所以这里我们需要自定义一个UWebBrowser类。1.创建自定义WebBrowser类在C++ Classes中右键创建一个自己的继承自wid...
2020-01-17 17:04:23
24726
28
原创 【UE4】UE4联级粒子系统
一、粒子系统的一些基本概念1.Particle System(粒子系统)粒子系统如同贴图、模型一样属于UE4的驻留资产,不能单独存在于场景中,必须使用载体依托才能在场景中渲染出来,粒子系统包含粒子特效的所有配置。粒子系统在UE4中表现为如下样子:创建粒子系统在内容浏览器中右键选择Particle System可以直接创建粒子系统。2.Emitter Actor(粒子发射器)粒子发射...
2019-11-18 15:34:43
6399
原创 【UE4】UE4读写Json文件
一、准备工作如果我们想要在UE4中读写Json文件,那么我们必须使UE4包含Json和JsonUtilities这两个模块,那么UE4如何添加模块呢?UE4添加预定义模块的方法很简单,我只需打开工程的.Biuld.cs文件,在其中的PublicDependencyModuleNames.AddRange()函数中追加两个模块即可,如:using UnrealBuildTool;publi...
2019-11-06 22:09:08
11789
1
原创 【UE4】UE4连接MySQL
一、使用MySQLIntegration插件连接MysqlUpdate Data from Query Async组件后面必须再跟一个其他的节点,节点才能正常执行UE4 C++编程中不能出现私有私有变量?UE4 C++静态变量?MySQL Integration插件只支持sql语句,不支持存储过程在蓝图中实现的C++函数在蓝图中没法使用?暴露给蓝图的变量和函数必须是公有且非静态的U...
2019-11-06 22:07:44
6733
原创 【UE4】UE4蓝图基础
一、蓝图可视化脚本与蓝图系统1.蓝图脚本蓝图可视化脚本简称“蓝图”或“蓝图脚本”,是一种需要编译的面向对象的可视化编程语言,蓝图完全集成在UE4中,蓝图通过节点与连线工作。蓝图脚本的节点触发事件,在蓝图脚本中以红色的节点出现函数,在看图脚本中以蓝色的节点出现变量,在蓝图脚本中中以黄色节点出现2.蓝图系统蓝图系统又称“蓝图”或“蓝图类”,蓝图类可以看成是一个包含游戏内容的容器,其...
2019-10-31 08:27:06
11661
原创 【C++】C++高级
一、类1.浅拷贝与深拷贝浅拷贝 C++在进行浅拷贝时,只拷贝栈区的内存空间,不拷贝堆区的内存空间,即浅拷贝只拷贝非指针的成员变量和指针本身,而不拷贝指针所指向的堆区的内容。我们代码1.1为例//代码1.1class Obj{public: Obj(char *tp) { len = strlen(tp); p = (char*)malloc(len + 1); st...
2019-10-06 10:12:59
2652
4
原创 【C++】全局变量、静态全局变量、局部变量与静态局部变量
1.普通全局变量 普通全局变量是定义在函数和类外的或由extern标识或直接定义没有static标识的变量。 各个类型的变量之间最主要的区别就是作用域的不同了,普通全局变量的作用域在整个源程序中,全局变量对整个源程序中都是可见的,无论源程序是由单个文件还是多个文件组成,普通全局变量具有external链接属性,所以普通全局变量在整个源程序的各个文件中都可以被引用。2.静态全局变量 静...
2019-10-03 21:44:06
572
原创 【C++】C++中的四种转换类型
title: 【C++】C++中的四种类型转换date: 2019-09-12 09:43:34tags: C++categories: 知识记录C++提供四种类型转换:const_cast、static_cast、dynamic_cast、reinterpret_cast1.const_cast const_cast的存在主要就是针对const字段,C++提供const_cast...
2019-10-03 21:40:07
265
原创 【C++】C++函数模板的实现机制剖析
函数模板的实现机制剖析要剖析函数模板的实现机制,我们要先了解程序的编译过程,这里以gcc为例这里对下面代码进行剖析#include "stdafx.h"//这是VS的固有头文件#include <iostream>using namespace std;template <typename T>void Fun(T a,T b){ a = a + b;...
2019-10-03 21:36:12
1118
原创 【C++】C++面向对象模型初探
1.成员的分开存储C++通过将类的成员分开存储的方式来实现面向对象成员存储位置普通成员变量栈区,与struct变量有相同的内存布局和字节对齐方式静态成员变量全局数据区,如此便可以使用类名和类所有的对象都可以访问成员函数代码段,包括静态成员函数和非静态成员函数虚函数虚函数表指针(vfptr)存放在栈区,其指向的虚函数表有自身的内存存储空间2.C...
2019-10-03 21:33:59
177
原创 【C】C的typedef的妙用
1.自定义数组类型typedef int (Array)[5];Array是一个类型为int长度为5的数组类型,即定义一个Array a;那么a就是一个类型为int长度为5的数组,所以a的使用方法和数组一致。typedef int(Array)[5];Array a;int i = 0,j = 0;for (i = 0; i < 5; i++) a[i] = i;for (...
2019-10-03 21:30:31
191
原创 【shell】shell基础
一、什么是shell?shell是处于用户和Linux系统之间的命令解释器。二、shell基础操作1.创建shell脚本vi first_shell.sh2.shell脚本的格式#!/bin/bash#filename:first_shell#created day:2019.9.28echo "Hello World!"第一行:#!/bin/bash#!是一种约定标记...
2019-09-30 22:34:33
299
原创 【Lua】Lua基础
XMind导图源文件:https://github.com/Goulandis/XMinds-2019.8.27/tree/master/Lua参考博文:https://www.cnblogs.com/cjswwdz/p/5634442.html
2019-09-09 16:23:38
137
原创 【Unity3d】使用GUI绘制人物头顶血条和名称
背景:最近自己在学习写小游戏的时候想要在玩家头顶显示玩家当前血量和名字遇到了此问题,在此攻略一下。攻略:谷歌了一下,人物头顶和名称的显示大致上分为两种方法:使用UI组件设置和使用GUI绘制,我采用的方式是后者,在此之前尝试过前面的方法,但是总是出一些问题,这里讨论使用GUI绘制,使用组件设置稍后再去研究。使用GUI绘制重在代码逻辑,这里贴出我的代码 private Camera Mia...
2019-08-29 11:01:03
1467
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人