瑞云介绍使用ZBrush和Marmoset工具包制作的风格化巨怪战斗机

Renderbus瑞云渲染的小编今天给大家介绍下Gianluca Squillace使用 ZBrush 和 Marmoset 工具包制作巨怪战士的一些技巧。这位艺术家还贴心地告诉大家,有些步骤是可以省略跳过的,这样就可以节省时间,帮助我们快速完成角色的创作啦。快速有用的步骤可以看看下文哦!

ZBrush和Marmoset工具包制作巨怪战士

Gianluca Squillace个人简介


Gianluca Squillace是一位来自意大利米兰的3D角色艺术家。他在游戏行业工作了大约 8 年,期间在罗马一家外包工作室担任自由角色美术师一职。同时他还在米兰的IED(欧洲设计学院)里担任教授 ,负责教ZBrush、Maya 和 Substance 3D Painter。这是因为他非常喜欢与有天赋的学生合作,并为他们提供支持和指导。


当然,在此期间,他也从未停止过个人项目的工作,这些个人工作项目所带来的经验也给他目前的工作岗位奠定了坚定的基础。

Gianluca Squillace工作经历
Gianluca一直很热爱暴雪和 Riot 游戏的那种风格,因此受其启发的他决定创作一个新的角色-巨魔。而这创作期间他也尝试了各种新的工具,学习的同时又充满了新鲜感。

Gianluca创作的“巨魔”,是源于他很想要一个极具侵略性且可以让他感到自豪感的角色,因此他搜寻了各种参考资料,收集了制作道具和调色板的有用数据,以备后期创作所用。

下面是一些用 PureRef .NET 归档和整理的图片

PureRef .NET 归档和整理的图片

这些收集相关资料的举措,他认为这一步是至关重要的,因为这些资料可以帮助他带来实现最终效果所需的正确指导方针。

第一步:雕刻


雕刻过程始终是令人愉快的一步,尤其是雕刻这种角色。模型完全是用 ZBrush 制作的。Gianluca首先粗略地勾勒出主要角色元素(头部、身体、手臂等),由于有一些笨重的道具,所以他也勾勒出了这些元素以获得主要形状。在这一步中,创作者常常会容易迷失在细节中,所以这就是为什么需要先重点关注体积,然后把清理工作留到后面。

雕刻中,轮廓是增强整体特征的一个非常重要的细节。他经常切换到全黑的平面色彩,以确保方向正确。一定要记住保持一个拓扑结构良好的低多边形模型,因为这样可以更容易地修改主要形状。所以他通常会为每个部件创建一个具有活动动态细分的低多边形版本,只有在需要微观细节时才将其折叠。


以下是Gianluca从分块到最终雕刻的一些步骤:

制作巨怪战士分块到最终雕刻的一些步骤

由于角色是直接以姿势进行雕刻的,因此在单独的工具中制作某些道具非常有用。这让他可以在对称的情况下工作,之后再将它们放置在模型上。使用 ZBrush 的 "Stager "命令还让他有机会保存和处理一个物体的两种不同姿势,并在必要时进行切换。他使用了很多不同的笔刷,以下是本项目中使用的一些笔刷:

ZBrush和Marmoset工具包制作巨怪战士的笔刷

除了常用的 Move、Clay、ZModeler、DamStandard、TrimDynamic 等工具外,他还使用了 Michael Vicente 的 Orb 笔刷(他认为这是所有数字雕塑家的必备工具)、Pablo Munoz Gomez 的 Gio 笔刷和 Shane Olson 笔刷。

第二步:绘画
Gianluca决定直接在高聚物模型上绘制,并选择在 ZBrush 中进行多画面绘制。其中他从每个元素(皮肤、头发、道具等)的参考资料中提取了调色板。这里他推荐使用 Adobe Color,这是一个可以轻松从图片中提取调色板的网站。之后,他先用一些平淡的基色,然后开始添加颜色变化。

下面是一些绘画步骤:

巨怪绘画步骤

渐变色在上色阶段确实非常重要,因为它能让我们获得极佳的色彩变化,而且通过对比,还能将观众的视线引向特定区域。这确实是一个有趣的步骤,尤其是选择巨魔一族典型的图案和装饰。这是在 ZBrush 中的最终多色绘制:

ZBrush和Marmoset工具包制作巨怪战士绘画步骤

第三步:渲染


他使用 Marmoset Toolbag 4 制作了所有的渲染。使用Marmoset Toolbag 4工具让他实现了不错的实时效果,并在合成阶段使用了各种渲染通道。首先,需要将模型从 ZBrush 导入 Marmoset Toolbag 4。由于他选择使用多色绘制来着色,因此必须确保修改材质以显示顶点颜色,而不仅仅是反照率。这是因为该模型没有 UV 和纹理,如下图所示。

修改材质以显示顶点颜

一开始,他使用了简单的三点式照明设置,包括主灯、冷补光灯和强边缘灯。这种设置对于将人物从他选择的黑暗背景中分离出来非常有用。
下面是从 Marmoset Toolbag 4 中提取的一些渲染通过提取器:

Marmoset Toolbag 4 渲染器

除了灯光之外,他还通过导出以下通道来工作:

环境光遮蔽 (AO): 该通道对最终渲染至关重要。它可以通过着色来营造冷暖氛围,也可以根据所应用的材质来改变颜色。
ID 遮罩:这一通道在合成步骤中非常有用。它可以方便地选择模型的不同元素,并分别对其进行修改。
次表面散射(SSS): 他在皮肤区域使用了这一通道,在头发上也略微使用了一下,利用 ID 蒙版进行快速选择。
最后,他直接在 Photoshop 中添加了一些手绘的高光和阴影。这就是合成阶段后的最终效果:

Photoshop的手绘的高光和阴影

最后:
当然,在这种情况下,由于跳过了拓扑、UV 贴图和纹理等多个步骤,这类角色的制作速度很快(总共花费了约 20 个小时)。不过,与整个制作流程中的完整角色相比,巨魔的制作的局限性要大得多。但Gianluca认为巨魔非常适合用于新工具和个人项目的培训。其中从四分之三视角的二维概念出发创作角色,最具挑战性的是始终保持三维思维。如果仅仅依靠二维表现,很容易对姿势和比例产生错误判断。Gianluca希望这个角色能从不同的视角,而不仅仅是从正面,都能很好地发挥作用,并能让他输出一个漂亮的转身。


from:Renderbus瑞云渲染(renderbus . com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/142946.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算与大数据——Storm配置及运行WordCountTopology(保姆级教程!)

云计算与大数据——Storm配置及运行WordCountTopology(保姆级教程!) 前言 当今世界正处于云计算和大数据的快速发展阶段,而Storm作为一种高效、可靠的实时计算框架,受到了广泛的关注和应用。在这篇文章中&#xff0c…

企业级磁盘阵列存储系统由硬到软全析

企业级磁盘阵列是由一组设备构成的存储系统,主要包括两种类型的设备,分别是控制器和扩展柜,其中控制器只有一台,扩展柜可以没有,也可以有多台。在EMC的Unity中分别称为DPE(Disk Processor Enclosure)和DAE(Disk Array Enclosure),在华为的OceanStor里面称为控制框和硬…

WebGL 切换着色器

目录 前言 如何实现切换着色器 1. 准备用来绘制单色立方体的着色器 2. 准备用来绘制纹理立方体的着色器 3. 调用createProgram()函数,利用第1步创建出的着色器,创建着色器程序对象 4. 调用createProgram(&…

Java 设计模式——抽象工厂模式

目录 1.概念2.结构3.实现4.优缺点5.使用场景6.模式扩展7.JDK源码解析——Collection.iterator方法 1.概念 (1)Java 设计模式——工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机等。这些工厂只生产同种类产品…

【kubernetes】【基础资源使用】kubernetes中的Deployment使用

1 Why need Deployment? K8S中Pod是用户管理工作负载的基本单位,Pod通常通过Service进行暴露,因此,通常需要管理一组Pod,RC和RS主要就实现了一组Pod的管理工作,其中,RC和RS的区别在于,RS提供更…

【每日一题】528. 按权重随机选择

528. 按权重随机选择 - 力扣(LeetCode) 给你一个 下标从 0 开始 的正整数数组 w ,其中 w[i] 代表第 i 个下标的权重。 请你实现一个函数 pickIndex ,它可以 随机地 从范围 [0, w.length - 1] 内(含 0 和 w.length - 1&…

混合IT基础设施的安全挑战与缓解策略

自从“身份是新的边界”这句格言问世以来,公司已经开始扩展他们的能力和运营,超越了基于本地、办公室基础设施的范围。采用云原生技术意味着组织正在寻求扩大传统工作流程,而无需投入时间和资源来建立物理数据中心和其他硬件基础设施。 身份…

JTS:08 JTS图形相交

这里写目录标题 版本JTS disjoint intersects俩个图形不相交俩个图形 边相交俩个图形 内部相交俩个图形 点相交 版本 org.locationtech.jts:jts-core:1.19.0 链接: github JTS disjoint intersects 不相交的 九交模型FF*FF**** 相交的 九交模型 [T********] [*T*******] [**…

服务断路器_Resilience4j信号量隔离实现

POM引入依赖 <dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-bulkhead</artifactId><version>1.7.0</version> </dependency>信号量隔离修改YML文件 resilience4j:#信号量隔离bulkhead:ins…

GIT提示Another git process seems to be running in this repository

解决方法 1、进入项目里面的.git文件里面找到index.lock删除即可。

【算法】递归(高阶题目) -随时补充

文章目录 岛问题汉诺塔问题牛群繁衍数量问题求字符串的全部子序列字符串的全排列数字的全排列I数字的全排列IIN皇后IIN皇后I 岛问题 递归的方法: 遍历岛这个二维数组&#xff0c;如果当前数为1&#xff0c;则进入感染函数并将岛个数1感染函数&#xff1a;其实就是一个递归标注…

创建线程的4种方法

目录 一.前言 1.关于进程调度 (1)为什么要调度? (2)调度的真正对象 (3)调度的资源 2.线程 (1).线程的写法 (2)线程创建的方法 1.继承Thread (1)使用继承Thread,重写run的方式来创建线程 (2)继承Thread,使用匿名内部类 2.实现Runnable (1)使用实现Runnable,重写run…

自定义ElementPlus主题颜色

构建工具采用Vite CSS预处理器采用Sass 一.准备定制化的样式文件 1.安装Sass npm i sass -D 2.创建好文件目录 3.书写样式 ElementPlus默认样式. //index.scss/* 只需要重写你需要的即可 */ forward element-plus/theme-chalk/src/common/var.scss with ($colors: (prim…

pytorch固定随机数中种子

1、添加到yolov7的utils/general.py文件最下面 import pkg_resources as pkg def check_version(current0.0.0, minimum0.0.0, nameversion , pinnedFalse, hardFalse, verboseFalse):# Check version vs. required versioncurrent, minimum (pkg.parse_version(x) for x in …

【Verilog 教程】6.6Verilog 仿真激励

关键词&#xff1a;testbench&#xff0c;仿真&#xff0c;文件读写 Verilog 代码设计完成后&#xff0c;还需要进行重要的步骤&#xff0c;即逻辑功能仿真。仿真激励文件称之为 testbench&#xff0c;放在各设计模块的顶层&#xff0c;以便对模块进行系统性的例化调用进行仿真…

c#用Gnuplot画图源码

直接调用这个类即可&#xff0c;需要下载个GnuPlot安装下。 // Author: Leonardo Tazziniusing System; using System.Diagnostics; using System.Drawing; using System.IO; using System.Windows.Forms;/// <summary> /// Tested with Gnuplot 5.2 /// </summary&g…

云原生微服务治理经典框架之Spring Cloud Alibaba核心技术与实战案例

系列文章目录 送书第一期 《用户画像&#xff1a;平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 文章目录 系列文章目录1、云原生如何做微服务治理&#xff1f;2、微服务治理框…

类和对象:运算符重载

本篇文章来介绍一下C中的运算符重载&#xff0c;以及与运算符重载有关的三个默认默认成员函数&#xff1a;赋值运算符重载&#xff0c;普通对象取地址与const对象取地址操作符重载&#xff0c;也就是下面图片中6个默认成员函数的后三个&#xff0c;前三个默认成员函数在之前文章…

【go语言】结构体

结构体 结构体定义 type name struct{value1 type1value2 type2...... }组成结构体的数据称为字段&#xff0c;每一个字段有一个类型和一个名字&#xff0c;每一个字段的名字必须唯一&#xff0c;字段的类型任意。 创建结构体 type myStruct struct{i1 intf1 float32str st…

HDLBits-Edgedetect

刚开始写的代码如下&#xff1a; module top_module (input clk,input [7:0] in,output [7:0] pedge );reg [7:0] in_pre;always (posedge clk)begin in_pre < in;endassign pedge in & ~in_pre; endmodule但是提交结果是错误的。猜想原因如下&#xff1a; assign p…