当前位置: 首页 > 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.dtcms.com/a/327274.html

相关文章:

  • C++——高性能组件
  • AI大模型基础:BERT、GPT、Vision Transformer(ViT)的原理、实现与应用
  • 【2】Transformers快速入门:统计语言模型是啥?
  • Agent智能体基础
  • 「日拱一码」057 逆向强化学习(IRL)
  • 从0开始的中后台管理系统-5(菜单的路径绑定以及角色页面的实现)
  • 分布式光伏气象站:为光伏电站的 “气象感知眼”
  • 自建知识库,向量数据库 体系建设(一)之BERT 与.NET 4.5.2 的兼容困境:技术代差下的支持壁垒
  • AWS EKS 常用命令大全:从基础管理到高级运维
  • 开发npm包【详细教程】
  • AWS KMS VS AWS Cloud HSM VS AWS Secret Manager?
  • 开源!!! htop移植到OpenHarmony
  • 自动驾驶决策算法 —— 有限状态机 FSM
  • AI项目提示-提示词-属于-mcp-cli等
  • css初学者第五天
  • 【CSS 变量】让你的 CSS “活”起来:深入理解 CSS 自定义属性与主题切换
  • 现代 CSS工具
  • web前端第二次作业
  • 【CSS 视觉】无需JS,纯 CSS 实现酷炫视觉效果(clip-path, filter, backdrop-filter)
  • 微前端面试考点与答案
  • 纯CSS+JS制作抽奖大转盘
  • 【CSS3】录音中。。。
  • aspose word for java 使用书签进行内容填充和更新
  • AppStorageV2:鸿蒙全局状态管理详解-ArkUI本地存储
  • django 如何读取项目根目录下的文件内容
  • Python常用的5种中文分词工具
  • 力扣 hot100 Day71
  • Claude Code,Gemini CLI,Trae-agent, Qwen Code 使用对比及感受
  • 【数据分享】2020-2022年我国乡镇的逐日最高气温数据(Shp/Excel格式)
  • ABAC 权限策略扩展