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

UE5多人MOBA+GAS 42、提高头像画质

文章目录

  • 添加接口修改渲染摄像机的位置和旋转
  • 提高画质


添加接口修改渲染摄像机的位置和旋转

添加一个接口RenderActorTargetInterface,用于修改头像渲染的摄像机位置以及方向
在这里插入图片描述
在这里插入图片描述

#pragma once#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "RenderActorTargetInterface.generated.h"// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class URenderActorTargetInterface : public UInterface
{GENERATED_BODY()
};/*** 角色渲染目标接口* 用于获取角色渲染时的捕获位置和旋转(如头像渲染、预览等)*/
class IRenderActorTargetInterface
{GENERATED_BODY()// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:// 获取捕获的本地位置virtual FVector GetCaptureLocalPosition() const = 0;// 获取捕获的本地旋转virtual FRotator GetCaptureLocalRotation() const = 0;
};

让角色基类继承该接口

class ACCharacter : public ACharacter, public IAbilitySystemInterface, public IGenericTeamAgentInterface, public IRenderActorTargetInterface
public:// 获取头像截取的位置virtual FVector GetCaptureLocalPosition() const override;// 获取头像截取的旋转virtual FRotator GetCaptureLocalRotation() const override;private:// 头像截取位置和旋转UPROPERTY(EditDefaultsOnly, Category = "Capture")FVector HeadshotCaptureLocalPosition;UPROPERTY(EditDefaultsOnly, Category = "Capture")FRotator HeadshotCaptureLocalRotation;
FVector ACCharacter::GetCaptureLocalPosition() const
{return HeadshotCaptureLocalPosition;
}FRotator ACCharacter::GetCaptureLocalRotation() const
{return HeadshotCaptureLocalRotation;
}
void USkeletalMeshRenderWidget::NativeConstruct()
{Super::NativeConstruct();// 获取拥有该UI的玩家角色ACharacter* PlayerCharacter = GetOwningPlayerPawn<ACharacter>();// 尝试转换为渲染目标接口IRenderActorTargetInterface* PlayerCharacterRenderTargetInterface = Cast<IRenderActorTargetInterface>(PlayerCharacter);if (PlayerCharacter && SkeletalMeshRenderActor){// 配置骨骼网格和动画类SkeletalMeshRenderActor->ConfigureSkeletalMesh(PlayerCharacter->GetMesh()->GetSkeletalMeshAsset(), PlayerCharacter->GetMesh()->GetAnimClass());// 获取场景捕捉组件USceneCaptureComponent2D* SceneCapture = SkeletalMeshRenderActor->GetCaptureComponent();// 如果接口和场景捕捉组件都有效if (PlayerCharacterRenderTargetInterface && SceneCapture){// 设置捕捉组件的相对位置和旋转SceneCapture->SetRelativeLocation(PlayerCharacterRenderTargetInterface->GetCaptureLocalPosition());SceneCapture->SetRelativeRotation(PlayerCharacterRenderTargetInterface->GetCaptureLocalRotation());}}
}

到角色中设置摄像机的位置以及旋转
在这里插入图片描述

提高画质

在这里插入图片描述
在这里插入图片描述
取消这个大气的勾选后背景将会变成黑色
在这里插入图片描述
添加新的材质设置为后期处理
在这里插入图片描述
勾选输出透明度
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
把刚刚的材质放入后处理材质中
在这里插入图片描述
修改头像UI的尺寸
在这里插入图片描述
到GameplayWidget中再用一个尺寸框包裹住头像,重载其高度和宽度
在这里插入图片描述
应该算是有提升吧
在这里插入图片描述

http://www.lryc.cn/news/619096.html

相关文章:

  • 方格网法土方计算不规则堆体
  • 常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx运维指南
  • 安路Anlogic FPGA下载器的驱动安装与测试教程
  • 京东方 DV133FHM-NN1 FHD13.3寸 工业液晶模组技术档案
  • C++方向知识汇总(四)
  • UserController类讲解
  • Milvus入门:开源向量数据库,解锁大模型时代的高效检索
  • iptables -L 显示无目标链规则,但是iptables-save显示仍存在链规则原因分析
  • LeetCode189~191、198~214题解
  • 力扣top100(day01-05)--矩阵
  • Golang 语言中 Context 的使用方式
  • 【Python 爬虫】Playwright 多浏览器支持(Chromium/Firefox/WebKit)
  • 云原生高级——nginx
  • Nginx 高级配置
  • 明远智睿T113-i核心板:工业设备制造的“破局者”
  • 10-docker基于dockerfile自动制作镜像
  • 机器学习——DBSCAN
  • imx6ull-驱动开发篇20——linux互斥体实验
  • [TryHackMe]Relevant(smb+windows令牌提权)
  • HarmonyOS元服务开发系列教程(三):实现音乐播放和封面旋转
  • 【问题解决】从Anaconda环境迁移到miniforge并在IDEA中完成环境配置
  • 【数据分享】2020-2022年我国乡镇的逐日最高气温数据(Shp/Excel格式)
  • C++动态代理技术详解:实现原理与应用场景
  • beacon-dongle系统(二)AP及Server建立
  • 双十一美妆数据分析:洞察消费趋势与行业秘密
  • 电商双 11 美妆数据分析学习报告
  • MyBatis持久层实现
  • 【前端Vue】log-viewer组件的使用技巧
  • Qwen-Image(阿里通义千问)技术浅析(一)
  • 物联网、大数据与云计算持续发展,楼宇自控系统应用日益广泛