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

虚幻4DPI自适应缩放规则解析

虚幻4DPI自适应缩放规则解析

https://blog.csdn.net/u012999985/article/details/53447540

虚幻4DPI自适应缩放规则解析

Jerish_C 2016-12-03 21:01:55 12295 收藏 2

分类专栏: UE4 游戏开发 Unreal Engine 4(虚幻引擎)

版权

UMG 支持与分辨率无关的 UI进行自动缩放,可以设置UI随窗口大小变化的股规则。在 ProjectSetting-Engine 部分下的 设置 菜单中,提供了应用于每个项目的默认 DPI 缩放规则。(4.6版本与新版本所在位置不同,看下图)

                                      图 1  4.9版本的DPI设置界面

                                      图 2  4.6版本的DPI设置界面

首先,我们先做个测试。下面图3一直到图6是对当前游戏UI随窗口变化的效果测试。

                                      图 3

                                      图 4

注意,横向拉伸图中的按钮大小没有变化(如图3与图4)。

                                      图 5

长宽比小于1时,按钮开始变小(如图5)。

                                      图 6

竖向拉伸,按钮变小(如图6)。

上面的测试说明,UE4要保持控件在竖直方向的比例位置正常,也就是说如果窗口在竖直方向变长,对应按钮就会按照一定比例变大。如果窗口在水平方向上变长,按钮没有任何变化。但是当窗口竖直方向长度大于水平方向长度时,按钮就会反过来随着水平方向而变化。

上面的效果总结一下,就是UMG界面随着窗口最短的一个边的拉伸或者缩短而放大或缩小。其实,这时DPI缩放规则之一ShortestSide。我们在设置界面可以设置5种规则。

最短边 (ShortestSide)-该选项将基于窗口的最短边来评估缩放曲线(最常用的设置)。

最长边(LongsetSide -基于窗口的最长边来评估缩放曲线。

水平 (Horizontal)-基于窗口的 X 轴来评估缩放曲线。

垂直(vertical -基于窗口的 Y 轴来评估缩放曲线。

用户自定义(Custom-用户自定义规则。(4.9以后版本,暂时不清楚怎么使用)

最小曲线(SmallestCurve -同时基于XY两个轴来评估缩放曲线。(4.6以前的版本)

我们常用的就是第一种规则。

下面我们看一下,曲线如何设置。在4.6版本,有两个曲线,分别表示窗口的X轴和Y轴,在4.9以后的版本,只有一条曲线(因为在前4种规则中,我们其实只是使用一条曲线)。

曲线的使用与UE4里的curve相同,添加一个关键点,输入对应分辨率和Scale(缩放比例)。如图2-7就表示在窗口Y轴方向长度为1080时,UMG控件的大小为1倍,当长度为480的时候,UMG控件大小为原来的0.44倍,如果长度继续缩小的话,控件的大小也不会再改变了。同时,我们也可以事先创建好曲线,在这里调用。

                                      图 7  4.5版本设置界面

                                      图 8  4.9版本设置界面

备注:1.目前custom scaling Ruleclass的设置还不清楚,不知道应该创建什么文件。所以新版本暂时不知道如何达到那种在两个方向同时缩小的办法。

2.该模块设置的类位置在\UE4\UnrealEngine-4.8-Full\Engine\Source\Runtime\Engine\Classes\Engine\UserInterfaceSettings.h

 

原文链接(转载请标明):http://blog.csdn.net/u012999985/article/details/53447540

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • Eclipse中打开windows资源管理器或打开文件夹的设置!(实例)
  • 在Eclipse中快速定位当前文件所在位置
  • AssetBundle详解与优化
  • 苹果电脑远程管理/屏幕共享的客方设置
  • 使用UnrealPak.exe创建Pak文件
  • 正确配置 Visual Studio Code 开发和调试 TypeScript
  • Typescript 基本数据类型(boolean、number、string、any、联合)
  • typescript let和const区别
  • 关于TypeScript中null,undefined的使用
  • typescript 类型断言
  • TypeScript: this bind 和 回调的正确用法
  • TypeScript基础入门之高级类型的可null类型
  • Blender 插件之 Blender for UE4
  • 7月底发布的官方插件:从 Blender 到 Unreal
  • 使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼
  • [iOS]Core Data浅析一 -- 启用Core Data
  • Angular6错误 Service: No provider for Renderer2
  • github指令
  • Hexo+码云+git快速搭建免费的静态Blog
  • JavaScript中的对象个人分享
  • Java方法详解
  • js继承的实现方法
  • learning koa2.x
  • Ruby 2.x 源代码分析:扩展 概述
  • SpringBoot 实战 (三) | 配置文件详解
  • sublime配置文件
  • SwizzleMethod 黑魔法
  • Vue2.0 实现互斥
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Web设计流程优化:网页效果图设计新思路
  • 半理解系列--Promise的进化史
  • 闭包--闭包作用之保存(一)
  • 深度学习在携程攻略社区的应用
  • 手写双向链表LinkedList的几个常用功能
  • 算法-图和图算法
  • 我看到的前端
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 怎么将电脑中的声音录制成WAV格式
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (六)c52学习之旅-独立按键
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Sql Server 保留几位小数的两种做法
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • *p++,*(p++),*++p,(*p)++区别?
  • .gitignore文件_Git:.gitignore
  • .net core使用ef 6