游戏美术分享:城镇类型关卡场景设计流程

2023-10-08 07:10

本文主要是介绍游戏美术分享:城镇类型关卡场景设计流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

大家好,本次是上一篇分享“结合UE4和World Creator快速进行大地图关卡概念设计”的后续。以之前设计的“青木镇”为例,给大家分享下我规划一个城镇类型的关卡场景时的具体流程和方法。主要包含关卡环境搭建、建筑设计和一些比较常用的关卡设计技巧。
 




整体设计流程

使用工具:PhotoshopCC、UE4、3Ds Max

设计流程图
 


流程详述

一、准备阶段

01.确定关卡基本尺寸设定

■针对玩家在游戏中的行为制定的一套标准尺寸,通常是一个范围。本次流程使用UE4自带角色,世界重力设置-2200,简单测试得到玩家在正常站立状态的高度为175cm。

□全高掩体:180+CM

□半高掩体:80——100CM

□跳跃高度:50——100CM
 


02.参考资料搜集

■尽可能多地搜集与关卡环境相关的素材,包括图片、视频、模型等,最好是能找到其他游戏里类似的环境、这样能对于最终能做到什么效果有一个大体的了解。参考素材最好是分类整理,可以按照游戏风格、整体布局、建筑风格、植被风格、地标、光影氛围等等。
 



03.关卡环境分析

■环境的合理性和布局

□场景的合理性

▲场景的布局和内容需要和我们对于真实世界的认知保持一致,这里的环境设定是一个现代化的城镇,所以布局上区块化会比较明显,建筑上也以大型建筑为主,植被主要是园艺。

▲比例。在制作过程中需要随时注意比例问题,不管是做建筑还是物件,比例错误会严重影响到环境的合理性。

□场景构成:在场景的构成上可以进行分级,逐级对空间进行分割和填充,我把本次的场景构成分为:

▲一级构成:道路、轻轨、建筑区块(地基和围墙)

▲二级构成:建筑(商场、餐厅、居民楼、广场等)、园林

▲三级构成:公交车站、车辆

▲四级构成:路灯等小物件

□建筑布局

▲为了使环境的立体感更强,除了建筑的高低错落外,可以在纵向空间上增加更多的层次。

▲建筑布局上需要疏密对比,这样环境看起来不会过于死板

▲在形状构成上也可以做一些对比,比如在一个方形建筑区域内可以增加一些圆弧形的结构

▲搭建环境时需要注意布局的统一性

04.在游戏性上需要考虑的因素

□射击距离:根据不同武器(步枪、狙击枪、冲锋枪、霰弹枪)的最佳射击距离进行区域切割,这取决于设定的这个环境所偏向的战斗方式,在这个基础上使用建筑或是其他掩体对空间进行隔断。

□标志性区域设计:在一个区域内设计一个视觉焦点,能够帮玩家快速记忆地图。在设计上可以有几个方向

▲大小对比:例如一个巨型的雕塑

▲风格对比:例如在一片现代建筑中的一座唐楼

▲形状对比:例如四周都是四四方方的房子,增加一个卖手机靓号弧形的建筑

▲色彩对比:例如在饱和度比较低的环境中增加一个色彩非常鲜艳的建筑

▲动静对比:例如一个旋转的摩天轮

这次的场景地标我准备做成大型雕塑和轻轨。

■性能

□尽量避免一些性价比很低的设计。(比如面数需求很大但是对效果提升不明显的设计)

□在布局设计上考虑将性能消耗比较大的区域隔断,便于后期优化裁剪

二、基本环境搭建

01.基础区域构成

■按照之前的设计先用道路对区域进行分割,这里将道路做成spline mesh,便于随时调整,后边的轨道、围墙、道路中心的花台等也使用同样的办法。

SplineMesh蓝图

双行道SplineMesh


■按照之前的设计图,使用BSP工具简单划分建筑区域。
 


■搭建轻轨。一般在搭建环境的时候我习惯从大到小,先快速进行区域分割,再对每个部分填充。这么做有利于快速搭建出环境的大型。
 


■使用BSP快速搭建建筑分布。这一步只需要简单的堆出一些BOX,设计下大致的建筑分布,建筑的大小和高低最好比较错落,这样环境不会看起来太死板。这里最好进游戏感受下建筑的大小和高度是否合适,比例不要太离谱就行。
 


02.第一次环境细化

■大体分布差不多后,接下来就可以开始慢慢地细化环境,BSP虽然做简单的形状速度快且容易调整,但做一些稍微复杂的结构效率和自由度远不如Max,所以后边的流程会转到3Ds Max进行制作。
 


■接下来用建筑模型替换掉之前的BOX,这一步只从大体构架上考虑,不用考虑建筑能不能满足游戏性,反正后边这些建筑都会再单独设计。但还是需要注意建筑的比例是否正确。最好一边搭建一边进游戏跑图测试。
 


✳在搭建环境时有时候会冒出一些新的想法,可以使用UE4的Text先快速记录下来,避免丢失。
 


■使用speed tree的素材库增加了一些植被,可以创建actor将植被和花圃打成组使用。
 


■继续使用建筑模型替换BOX
 


■增加一些地标性的建筑,这个巨型兔子雕塑是这个区域的焦点,能够帮玩家快速记忆地图,另外,中心广场也起到了分割空间的作用。为了使纵向空间更丰富我在高处增加了几个热气球。
 


■初步搭建完成后的环境:
 


三、环境细化

01.细化内容

■地图的详细布局

■对用到的资源进行一个统计(比如哪些建筑可以公用)

■建筑设计

01.细化流程

■确定各个区域的布局和建筑类型
 


■针对性的搜集参考图
 

A1:咖啡厅参考图

B1:广场参考图


■根据参考图设计制作建筑白模

□确定通用尺寸

▲建筑墙壁厚度:25CM

▲窗户离地高度:120CM(主要影响到射击和翻越)

▲楼梯台阶高度:20CM

□需要考虑的因素

▲建筑结构的合理性(一般在设计可交互类型的建筑时我习惯先从内部结构开始)

●建筑结构:建筑和物件的比例正常,避免出现过于反物理的结构。基于合理的建筑结构再针对可玩性进行调整。

●内容:填充的物件和整体布局要符合建筑的设定

▲符合玩家行为规律

▲视野控制

▲掩体设计

□建筑设计流程(AI:咖啡馆)

▲一楼内部结构设计:
 


▲二楼内部结构设计:
 


▲外观和周边设计:
 


▲制作完成后导入引擎,跑图测试,测试要点:

●建筑和物件的比例是否正常

●玩家行动是否流畅(比如有没有结构或者物件布局会影响正常移动)

●射击体验是否符合预期

●与周边环境是否搭配
 


✳TPS和FPS对于同一个场景体验是不一样的,由于FOV不同并且TPP模式人物会占掉画面的一部分,FPP模式下同一个建筑空间会感觉更大。所以游戏里的建筑最好是根据具体的模式进行调整。
 


▲测试调整完成:
 


▲测试后的建筑的活动空间基本确定,可以在这个基础上继续进行细化,下面是我结合白模和参考图元素做的几个设计。
 


■场景氛围设计

□这一步我给场景增加了一些新的设计,比如修改建筑外形、建筑顶部增加广告牌等,目的是让环境看起来更丰富。飞鸟和旗帜等元素在后边在的制作中可以考虑增加动画,为场景增加一些动态元素。
 


■后边把所有建筑设计完成后,再替换进场景里,以建筑为中心对周边进行详细规划设计。(这个就比较费时间了,后边有空再慢慢炮制)

四、关卡设计的一些常用技巧

01.怎样利用现成资源快速构造环境

■怎么获得合适的模型资源

□网上下载:

▲推荐网站:https://free3d.com/

▲优点:可以快速获得可用的模型,适合用于框架搭建的阶段,快速堆出效果。

▲缺点:和自己想要的效果差距有可能会很大,后期需要重新制作。

□自己制作:

▲优点:能与自己想要的效果完全一致。

▲缺点:速度缓慢,不适合快速出效果。所以在初始搭建阶段我一般尽量在网上找模型。

■资源的使用技巧

□确保模型的比例正确

▲下载的模型不要直接导入引擎使用,因为建模时使用的单位不同,下载的模型比例可能会不一样,最好现在MAX里和游戏角色比对,确定模型比例正常后再导进去。
 


□面数优化:有时候在网上下载的一些模型面数太高不好直接导入引擎使用,可以用软件快速把面数减下去

▲Polygon Cruncher:一个专门用于减面的模型,效果类似max自带的Optimize修改器,但算法更好,能在保持原有形状的基础上大量减面,下图中的雕塑使用这个软件将三角面从160832减到10792(ps.因为我的笔记本性能不太好,所以尽量避免浪费多余的面数)。
 


02.使用UE4和MAX搭建关卡的一些技巧

■模型的导出与导入

□3Ds Max

▲单位设置:UE4项目在使用MAX制作资源时使用CM为单位,UE4中1U=1CM
 


▲导出设置:勾选smoothing groups,确认导出单位为CM
 


▲导入设置:
 


▲增加模型碰撞:一般简单的物件直接添加BOX碰撞就行,复杂一些的可以勾选Use Complex Collision As Simple(将模型自身作为碰撞)。一般只用于测试阶段,正式制作物件时可以在Max中制作UCX碰撞。
 


■快速设置UE4的灯光:针对大世界地图,在关卡设计阶段可以简单粗暴地使用三盏动态灯照亮场景

□Directional Light1:主光源,产生投影

□Directional Light2:补光,与主光源方向相反,照亮背光面

□Sky Light:使用IBL照明,照亮暗部
 

这篇关于游戏美术分享:城镇类型关卡场景设计流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/163590

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么