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

新三消示例项目《Gem Hunter》中的光照和视觉效果

《Gem Hunter》是 Unity 的全新官方示例项目,展示了如何在 Unity 2022 LTS 使用通用渲染管线 (URP) 打造抢眼的光效和视效,让 2D 益智/三消游戏在竞争中脱颖而出。

下载示例项目及其说明文档。准备潜入清澈湛蓝的海水中探寻财富吧,因为那里到处都是色彩鲜艳的珠宝和海洋生物。了解如何设置2D精灵及光照来增加深度,应用 Sprite Custom Lit 着色器来赋予微光,并且创造眩光和波纹特效。

为 Unity 创作者提供最近发布的优质 URP 示例项目

*Unity 的 URP 示例项目

继《URP 3D 示例项目》和《Happy Harvest》之后,示例项目系列迎来了《Gem Hunter Match》,该示例项目由 Unity 的多个团队制作,展示了 Unity 2022 LTS版本中 URP 的很多功能,适用于 3D 和 2D 多平台项目。

这款跨平台三消益智游戏的可玩部片段可在 Unity 资源商店和 Unity Samples 中获取。你可以在《Gem Hunter Match》中使用自己的资源或自定义游戏玩法,或者把《Gem Hunter Match》中提供的精灵、着色器、特效、音频、纹理和脚本用到自己的项目中。

拥有多彩元素的简易游戏循环

*《Gem Hunter Match》中的游戏循环

气泡、珊瑚、警惕的美人鱼组成了《Gem Hunter Match》游戏背景。游戏板上分布着珍珠、粉钻、红海星宝石、蓝鱼、金贝壳和绿海龟等海底珍宝元素,共有三个可玩关卡。匹配三个或更多元素可清除并获得增益道具金币。增益道具可以帮助到目标,但是失败就会失去一颗心。木箱和绳子是障碍物;匹配木箱旁边或绳子下面的三个元素可消除障碍物。

*《Gem Hunter Match》游戏玩法示例

项目包含了简易的游戏循环和可复用的物品栏。主要部分如下:

主场景:此画面列出了所有可玩关卡,均引用自 Data 文件夹中名为 LevelList 的 ScriptableObject。

关卡场景:这里设置了具体的游戏玩法。玩家需要清除关卡目标区域列出的元素。

在 Data/BonusItems 文件夹中,可以找到增益道具以及引用的预制件,这些预制件包含了相关参数,例如触发生成奖励的组合形状(如果多个部分具有相同的组合形状,则会随机选择一个进行生成)。你还可以从顶部菜单创建自己的增益道具,路径为 Assets > Create > 2D Match。

关卡结束/ 商店:在通关失败或成功后可进入商店;给自己购买增益道具、心或其他货币。

商店中的所有道具均位于 Data/ShopItems 文件夹中(你也可以自行添加,路径为 Assets > Create > 2D Match。商店中的道具包括:

金币:匹配三个或更多道具即可赚取金币,然后将金币用作软货币。

心或命:这些加速器可以让玩家有机会重玩失败的关卡。如果玩家在三消游戏中耗尽此等加速器,往往需要等待一段冷却期,然后才能补充生命值。

星星:每过一关就可以收集星星;在实际的三消游戏中,星星往往是是元游戏(Metagame,指游戏主要玩法之外,玩家的其他目标或活动)的一部分、装饰元素,或用于推进剧情。

在 2D 精灵上使用逐对象光照进行创意控制

2D 益智/三消游戏之所以受到欢迎,是因为这类游戏可爱又多彩,玩法轻松有趣、简单不挑人,随时随地可玩。

虽然这类游戏可能还有精良的美工,但摄像机是静态的、游戏玩法重复,而且在很多情况下光照和阴影是预烘焙的,因此这类游戏并不以尖端的光照和视觉特效而闻名。然而,你可使用多种方法添加闪光和微光,从而增加游戏的趣味性。

《Gem Hunter Match》使用了 Sprite Custom Lit Shader。这是一种用来制作视觉特效的技术。此着色器取代了场景光照,让我们可以修改 2D 光源纹理信息,并控制各个元素上的光照。因而可以给精灵赋予创意照明,比如产生熠熠生辉的特效,让元素显得流光溢彩。

光源位置数据已迁移至着色器,不必在场景中放置实际光源对象,这也有助于保持场景的整洁。此着色器中封装的逐对象光照可以很好地进行隔离和大规模编辑,并在可以批处理时提高性能。

法线遮罩和遮罩贴图

因为光照和阴影信息被存储在着色器中,精灵中只有颜色信息。2D 光照系统使用法线贴图来计算每个像素的方向,确保根据其位置接收不同强度的光照。遮罩贴图(Mask map)则由可以影响特定RGB通道的光源使用。

《Gem Hunter Match》关卡场景中的 Lights 预制件包含用于网格的 2D 光源。这些光源会影响默认的 Sprite Lit 着色器,并应用于接收光源的排序层(Sorting Layer)中包含的网格元素。

以下图像展示了精灵的创建步骤,以及 Sprite Custom Lit 着色器在这个过程中的作用。

*精灵准备:游戏中的不同光源使用精灵信息来制作动态 2D 光源系统

眩光特效让宝石闪耀

在《Gem Hunter Match》中,“虚构的”光源位置由 LightRotator GameObject 表示,在经过动画处理后,让宝石产生了闪闪发光的特效。我们对游戏中的珍宝元素应用了 TileShader Shader Graph,其中包含 2D 光照贴图的修改和使用 Dot Product 节点制作的高光。

*在 Shader Graph 中使用 Dot Product 节点为示例项目中的宝石创造特效

如果你希望在 2D 项目中自定义光照,那么 Dot Product 节点可能非常实用。Dot Product 将测量两个向量的相近程度。在本示例项目中,我们对比了 LightDirection 位置和法线贴图中每个像素表面的方向。采样的黑白图像可以用于为精灵添加光照,并且在 Runtime 对所有使用同一着色器的元素实时更新数值。

用于制作冲击波特效的摄像机排序层纹理

Radial Warp 着色器使用了 URP 2D Camera Sorting Layer Texture(摄像机排序层纹理)设置。这项实用功能允许访问 URP 2D 渲染器中生成到指定排序层的图形数据,然后将其用于 Shader Graph 以应用特效。在《Happy Harvest》示例项目中,摄像机排序层纹理用于创建水折射特效,在《Dragon Crashers》中,它被用于制作烟雾扭曲效果。在本示例项目中,我们用它来实现一种模拟冲击波的扭曲效果,在消消乐时更添视觉吸引力。这种特效会让玩家对游戏的印象更加深刻。

我们希望你能下载《Gem Hunter Match》,亲自体验并尝试自定义,在自己的项目中应用它的图形技术。让你的 2D 休闲游戏大放异彩。

相关文章:

新三消示例项目《Gem Hunter》中的光照和视觉效果

《Gem Hunter》是 Unity 的全新官方示例项目,展示了如何在 Unity 2022 LTS 使用通用渲染管线 (URP) 打造抢眼的光效和视效,让 2D 益智/三消游戏在竞争中脱颖而出。 下载示例项目及其说明文档。准备潜入清澈湛蓝的海水中探寻财富吧,因为那里到…...

通用软件项目技术报告 - 导读III

现在,我们正式进入报告的第六个主要领域:6. 领域六:与第三方服务/API 集成 (含 LLM API)。 连接: 在现代软件开发中,很少有应用程序是完全孤立的。我们经常需要与各种外部的第三方服务或 API 进行集成,以利用它们提供的特定功能(如支付处理、地图服务、社交媒体登录、云…...

代码随想录训练营第二十三天| 572.另一颗树的子树 104.二叉树的最大深度 559.N叉树的最大深度 111.二叉树的最小深度

572.另一颗树的子树: 状态:已做出 思路: 这道题目当时第一时间不是想到利用100.相同的树思路来解决,而是先想到了使用kmp,不过这个题目官方题解确实是有kmp解法的,我使用的暴力解法,kmp的大致思…...

单向循环链表C语言实现实现(全)

#include<stdio.h> #include<stdlib.h> #define TRUE 1 #define FASLE 0//定义宏标识判断是否成功 typedef struct Node {int data;struct Node* next; }Node;Node* InitList() {Node* list (Node*)malloc(sizeof(Node));list->data 0;//创建节点保存datalist…...

【AI大模型】赋能【传统业务】

在数字化转型的浪潮下&#xff0c;传统业务流程&#xff08;如通知公告管理、文档处理等&#xff09;仍依赖人工操作&#xff0c;面临效率低、成本高、易出错等问题。以企业通知公告为例&#xff0c;从内容撰写、摘要提炼到信息分发&#xff0c;需耗费大量人力与时间&#xff0…...

Clion内置宏$PROJECT_DIR$等

CLion 内置宏 文章目录 CLion 内置宏通用路径相关宏路径相对化宏 官方文档地址&#xff1a; https://www.jetbrains.com/help/clion/built-in-macros.html 通用路径相关宏 宏名称含义说明示例$WORKSPACE_DIR$当前项目所属的工作区根目录路径。/home/user/workspace$PROJECT_D…...

团结引擎开源车模 Sample 发布:光照渲染优化 动态交互全面体验升级

光照、材质与交互效果的精细控制&#xff0c;通常意味着复杂的技术挑战&#xff0c;但借助 Shader Graph 14.1.0(已内置在团结引擎官方 1.5.0 版本中)&#xff0c;这一切都变得简单易用。通过最新团结引擎官方车模 Sample&#xff0c;开发者能切身感受到全新光照优化与编辑功能…...

hghac8008漏洞扫描处理

文章目录 环境文档用途详细信息相关文档 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5.10 文档用途 本文只要用于在客户提出hghac8008端口漏洞时&#xff0c;如何进行漏洞处理&#xff0c;本文章的方法已经应用于浪潮云&#xff…...

PyQt5教程:QComboBox下拉列表框的全面解析与实战应用

QComboBox概述 QComboBox是PyQt5中一个集按钮和下拉选项于一体的控件&#xff0c;通常被称为下拉列表框或组合框。它允许用户从预定义的选项列表中选择一个值&#xff0c;是GUI开发中最常用的输入控件之一。 主要特点&#xff1a; 紧凑的界面设计&#xff0c;节省屏幕空间提…...

GAN简读

Abstract 我们提出了一个通过同时训练两个模型的对抗过程来评估生成模型的新框架:一个生成模型 G G G用来捕捉数据特征,还有一个用于估计这个样本是来自训练样本还是 G G G的概率的判别模型 D D D, G G G的训练过程是最大化 D D D犯错的概率。这个框架就相当于一个minimax tw…...

精准测量“双雄会”:品致与麦科信光隔离探头谁更胜一筹

在电子技术飞速发展的当下&#xff0c;每一次精准测量都如同为科技大厦添砖加瓦。光隔离探头作为测量领域的关键角色&#xff0c;能有效隔绝电气干扰&#xff0c;保障测量安全与精准。在众多品牌中&#xff0c;PINTECH品致与麦科信的光隔离探头脱颖而出&#xff0c;成为工程师们…...

NSSCTF [HNCTF 2022 WEEK4]

题解前的吐槽&#xff1a;紧拖慢拖还是在前段时间开始学了堆的UAF(虽然栈还没学明白&#xff0c;都好难[擦汗])&#xff0c;一直觉得学的懵懵懂懂&#xff0c;不太敢发题解&#xff0c;这题算是入堆题后一段时间的学习成果&#xff0c;有什么问题各位师傅可以提出来&#xff0c…...

Step1

项目 SchedulerSim 已搭建完成 ✅ ⸻ ✅ 你现在拥有的&#xff1a; • &#x1f527; 两种调度器&#xff08;Round Robin SJF&#xff09; • &#x1f4e6; 模拟进程类 Process • &#x1f9f1; 清晰结构&#xff1a;OOP 风格 便于扩展 • ✍️ 主函数已演示调度器运行效…...

tornado_登录页面(案例)

目录 1.基础知识​编辑 2.脚手架&#xff08;模版&#xff09; 3.登录流程图&#xff08;processon&#xff09; 4.登录表单 4.1后&#xff08;返回值&#xff09;任何值&#xff1a;username/password &#xff08;4.1.1&#xff09;app.py &#xff08;4.1.2&#xff…...

YOLOv12模型部署(保姆级)

一、下载YOLOv12源码 1.通过网盘分享的文件&#xff1a;YOLOv12 链接: https://pan.baidu.com/s/12-DEbWx1Gu7dC-ehIIaKtQ 提取码: sgqy &#xff08;网盘下载&#xff09; 2.进入github克隆YOLOv12源码包 二、安装Anaconda/pycharm 点击获取官网链接(anaconda) 点击获取…...

BGP实验练习1

需求&#xff1a; 要求五台路由器的环回地址均可以相互访问 需求分析&#xff1a; 1.图中存在五个路由器 AR1、AR2、AR3、AR4、AR5&#xff0c;分属不同自治系统&#xff08;AS&#xff09;&#xff0c;AR1 在 AS 100&#xff0c;AR2 - AR4 在 AS 200&#xff0c;AR5 在 AS …...

Three.js知识框架

一、Three.js 基础概念 1. Three.js 简介 是什么&#xff1f; 基于 WebGL 的 3D JavaScript 库&#xff0c;用于在浏览器中渲染 3D 场景。 核心优势 简化 WebGL 的复杂 API&#xff0c;提供高层封装。 跨平台&#xff08;支持桌面和移动端&#xff09;。 适用场景 3D 可视…...

AWS技术助力企业满足GDPR合规要求

GDPR(通用数据保护条例)作为欧盟严格的数据保护法规,给许多企业带来了合规挑战。本文将探讨如何利用AWS(亚马逊云服务)的相关技术来满足GDPR的核心要求,帮助企业实现数据保护合规。 一、GDPR核心要求概览 GDPR的主要目标是保护欧盟公民的个人数据和隐私权。其核心要求包括: 数…...

HTML、CSS 和 JavaScript 基础知识点

HTML、CSS 和 JavaScript 基础知识点 一、HTML 基础 1. HTML 文档结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.…...

数据结构与算法分析实验12 实现二叉查找树

实现二叉查找树 1、二叉查找树介绍2.上机要求3.上机环境4.程序清单(写明运行结果及结果分析)4.1 程序清单4.1.1 头文件 TreeMap.h 内容如下&#xff1a;4.1.2 实现文件 TreeMap.cpp 文件内容如下&#xff1a;4.1.3 源文件 main.cpp 文件内容如下&#xff1a; 4.2 实现展效果示5…...

使用 Semantic Kernel 调用 Qwen-VL 多模态模型

使用 Semantic Kernel 调用 Qwen-VL 多模态模型 一、引言 随着人工智能技术的不断发展&#xff0c;多模态模型逐渐成为研究的热点。Qwen-VL 是阿里云推出的大规模视觉语言模型&#xff0c;支持图像、文本等多种输入形式&#xff0c;并能够进行图像描述、视觉问答等多种任务。…...

请求内存算法题

题意描述 有两个数组输入&#xff1a; mem [32,128,64,192,256]表示有数组长度个设备&#xff0c;每个设备能提供分配的内存大小值(均为4的倍数)&#xff0c;数组最大长度200000 reques [64,128,128,128,512]表示请求内存&#xff0c;在mem中找与请求内存大小最相近或相等的…...

(4)python开发经验

文章目录 1 使用ctypes库调用2 使用pybind11 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;Qt开发 &#x1f448;&#x1f449;python开发 &#x1f448; 1 使用ctypes库调用 说明&#xff1a;ctypes是一个Python内置的库&#xff0c;可以提供C兼容的数据类型…...

深度剖析 GpuGeek 实例:GpuGeek/Qwen3-32B 模型 API 调用实践与性能测试洞察

深度剖析 GpuGeek 实例&#xff1a;GpuGeek/Qwen3-32B 模型 API 调用实践与性能测试洞察 前言 GpuGeek专注于人工智能与高性能计算领域的云计算平台&#xff0c;致力于为开发者、科研机构及企业提供灵活、高效、低成本的GPU算力资源。平台通过整合全球分布式数据中心资源&#…...

MindSpore框架学习项目-ResNet药物分类-数据增强

目录 1.数据增强 1.1设置运行环境 1.1.1数据预处理 数据预处理代码解析 1.1.2数据集划分 数据集划分代码说明 1.2数据增强 1.2.1创建带标签的可迭代对象 1.2.2数据预处理与格式化&#xff08;ms的data格式&#xff09; 从原始图像数据到 MindSpore 可训练 / 评估的数…...

e.g. ‘django.db.models.BigAutoField‘.

在Django框架中&#xff0c;django.db.models.BigAutoField 是一个用于数据库模型的字段类型&#xff0c;它用于自动增长的ID字段。这个字段类型特别适用于需要处理大量数据的应用&#xff0c;比如在大型网站或应用中&#xff0c;普通的 AutoField 可能不足以存储增长的ID值&am…...

ACM算法

在ACM模式下使用JavaScript/TypeScript获取输入值 在ACM编程竞赛或在线判题系统(如LeetCode、牛客网等)中&#xff0c;JavaScript/TypeScript需要特定的方式来获取输入值。以下是几种常见的获取输入的方法&#xff1a; 1. 使用Node.js的readline模块 这是最常见的处理ACM模式…...

MySQL入门指南:环境搭建与服务管理全流程

引言 各位开发者朋友们好&#xff01;今天我们将开启MySQL的学习之旅 &#x1f31f; 作为世界上最流行的开源关系型数据库&#xff0c;MySQL在Web应用、企业系统等领域占据着举足轻重的地位。无论你是刚入行的新手&#xff0c;还是想系统复习的老鸟&#xff0c;这篇教程都将为…...

【MySQL】别名设置与使用

个人主页&#xff1a;Guiat 归属专栏&#xff1a;MySQL 文章目录 1. 别名基础概念2. 列别名设置2.1 基础语法2.2 特殊字符处理2.3 计算字段示例 3. 表别名应用3.1 基础表别名3.2 自连接场景 4. 高级别名技术4.1 子查询别名4.2 CTE别名 5. 别名执行规则5.1 作用域限制5.2 错误用…...

【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权

【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权 文章目录 【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权[toc]一&#xff1a;Kerberos 委派攻击原理之 S4U2利用1.1原理1.2两种扩展协议**S4U2Self (Service for User to Self)****S4U2Proxy (Service for User to Proxy)*…...