Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(gcores): 机核网专题 #18367

Merged
merged 2 commits into from
Feb 21, 2025
Merged

Conversation

nczitzk
Copy link
Contributor

@nczitzk nczitzk commented Feb 15, 2025

Involved Issue / 该 PR 相关 Issue

Close #

Example for the Proposed Route(s) / 路由地址示例

/gcores/collections/64/articles

New RSS Route Checklist / 新 RSS 路由检查表

  • New Route / 新的路由
  • Anti-bot or rate limit / 反爬/频率限制
    • If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?
  • Date and time / 日期和时间
    • Parsed / 可以解析
    • Correct time zone / 时区正确
  • New package added / 添加了新的包
  • Puppeteer

Note / 说明

@github-actions github-actions bot added the Route label Feb 15, 2025
Copy link
Contributor

Successfully generated as following:

http://localhost:1200/gcores/collections/64/articles - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>游戏开发设计心得分享 | 机核 GCORES</title>
    <link>https://www.gcores.com/collections/64?tab=articles</link>
    <atom:link href="http://localhost:1200/gcores/collections/64/articles" rel="self" type="application/rss+xml"></atom:link>
    <description>欢迎大家在机核分享交流 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>zh</language>
    <lastBuildDate>Sat, 15 Feb 2025 16:03:15 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>图形AI粗读丨三维重建——立体视觉篇(上)</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;图形AI粗读丨三维重建——立体视觉篇(上)&quot; src=&quot;https://image.gcores.com/0b8500a83d5ee2502cc658af193ab43c-1518-1041.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;从零开始读:AI生成3D的脉络及现状&lt;/blockquote&gt; &lt;h1&gt;前言&lt;/h1&gt;&lt;p&gt;如果说2025年春节期间有什么关键词,DeepSeek和AI肯定是其中之一。虽然敲一些关键字就能生成游戏的时代还没有完全到来,但AI确实在快速更新人们使用计算机和互联网的方式。&lt;/p&gt;&lt;p&gt;以我个人体验来说,目前DeepSeek在很多时候都是比百度和google更好的查资料来源(知识类、交通出行、概括总结等);虽然偶尔也有一些细节上的错误,但也可以通过对话指出其问题使其自动纠错。&lt;/p&gt;&lt;p&gt;而在游戏相关的领域,其实之前虚幻官方力推的&lt;span style=&quot;font-weight: bold&quot;&gt;基于照片扫描的三维重建(3D Reconstruction)&lt;/span&gt;就已经得到广泛应用了。这是一项从前AI时代就开始提出的技术线,现在正在被AI深度学习狠狠地加持发展。如果说之前提这个事情还比较抽象的话,相信经历了《黑神话:悟空》以后,大部分玩家应该也清楚了照片扫描能达到的效果。&lt;/p&gt;&lt;p&gt;AI三维重建的另外几个方向,比如视频生成、3D模型生成等也在不断发展。在目前比较新的技术线上,其推算与生成的性能和准确度是由被称为&lt;span style=&quot;font-weight: bold&quot;&gt;高斯点云渲染(Gaussian Splatting)&lt;/span&gt;的算法来保证,而其在AI领域的更早期的技术是&lt;span style=&quot;font-weight: bold&quot;&gt;神经网络辐照度场(NeRF)&lt;/span&gt;。这些可能都是我后面会读到的内容——在这个系列的“上半场”应该都还不会读到AI相关的内容,而是以一些基础算法和理论为主。&lt;/p&gt;&lt;p&gt;至于AI生成图象和动画,以及从视频进行动作捕捉等,目前已经进入了非常成熟足够商用的阶段了。但我个人的读文章系列中可能不会涉及这两部分。&lt;/p&gt;&lt;p&gt;对我个人而言,要基本看懂三维重建相关的内容还是难度不小的。目前这个系列我计划在一年内以写翻译笔记的形式更新我的学习心得,如果有理解得不对的地方也欢迎指正。&lt;/p&gt;&lt;p&gt;为了赶时髦,我让DeepSeek帮我总结了一下三维重建的一些关键点,构成了第一部分。另外还是老样子,PPT部分以翻译为主,打星号的部分是我的个人理解或补充。&lt;/p&gt;&lt;h1&gt;一、三维重建的历史脉络&lt;/h1&gt;&lt;p&gt;*这部分DeepSeek的概括我觉得足够好了,因此就没删改(包括标点符号和样式)——大家可以感受下。基本上我的三维重建粗读计划就是基于这些关键词来进行的。&lt;/p&gt;&lt;h3&gt;1. &lt;span style=&quot;font-weight: bold&quot;&gt;早期探索(1960s-1970s)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;计算机视觉的诞生&lt;/span&gt;:20世纪60年代,计算机视觉领域开始兴起,研究者尝试从二维图像中提取三维信息。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;基础理论&lt;/span&gt;:70年代,研究者提出了许多基础理论,如立体视觉(Stereo Vision)和结构光(Structured Light)技术。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;2. &lt;span style=&quot;font-weight: bold&quot;&gt;算法发展(1980s-1990s)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;立体匹配&lt;/span&gt;:80年代,立体匹配算法得到显著发展,研究者提出了多种匹配方法,如基于区域的匹配和基于特征的匹配。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;多视角几何&lt;/span&gt;:90年代,多视角几何理论逐渐成熟,研究者开始利用多张图像进行三维重建。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;3. &lt;span style=&quot;font-weight: bold&quot;&gt;技术进步(2000s-2010s)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;激光扫描&lt;/span&gt;:2000年代,激光扫描技术(LIDAR)被广泛应用于三维重建,尤其是在建筑和考古领域。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;结构光与深度相机&lt;/span&gt;:2010年代,结构光和深度相机(如Microsoft Kinect)的出现,使得实时三维重建成为可能。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;4. &lt;span style=&quot;font-weight: bold&quot;&gt;深度学习与AI(2010s-至今)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;深度学习&lt;/span&gt;:2010年代后期,深度学习技术被引入三维重建领域,显著提高了重建的精度和效率。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;自动化与实时重建&lt;/span&gt;:近年来,基于AI的三维重建算法能够实现自动化和实时重建,广泛应用于虚拟现实(VR)、增强现实(AR)和自动驾驶等领域。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;5. &lt;span style=&quot;font-weight: bold&quot;&gt;未来展望&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;高精度与实时性&lt;/span&gt;:未来,三维重建技术将继续向高精度和实时性方向发展。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;多模态融合&lt;/span&gt;:结合多种传感器和数据源(如RGB图像、深度图像、激光扫描等)进行多模态融合,进一步提升重建效果。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;三维重建技术的发展历程反映了计算机视觉、传感器技术和人工智能等多个领域的进步,未来有望在更多应用场景中发挥重要作用。&lt;/p&gt;&lt;p&gt;*这次读立体视觉(Stereo Vision)我选择了斯坦福大学Professor Fei-Fei Li 在2021年的课件。篇幅原因这次会读其中的前半部分。&lt;/p&gt;&lt;h1&gt;二、立体视觉概述——Introduction to stereo vision&lt;/h1&gt;&lt;p&gt;*部分页数显示不连贯,可能是我抽选了一些页,也有些是课件本身就没标。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1243&quot; src=&quot;https://image.gcores.com/b5ea2ea926b03cdf1d5354495e3cbb0e-1683-1243.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里提出了降维机器(3D到2D)的概念,例如相机就是一种降维机器。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;针孔相机(小孔成像)&quot; width=&quot;1686&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/cc2c1f57e59835f4464df17a5a5f8850-1686-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;能对焦点前方的范围成像&lt;/li&gt;&lt;li&gt;移动成像平面能使图像内容缩放 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*图中标出了在前后等距的位置可以视为有一个“虚拟图像”,前后两者是颠倒但是尺寸相同的。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;真实世界的点和摄像机中的点关联&quot; width=&quot;1765&quot; height=&quot;1324&quot; src=&quot;https://image.gcores.com/85bd97c258a27e0f3e908b8db151a21a-1765-1324.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里列出了一个基础的&lt;span style=&quot;font-weight: bold&quot;&gt;齐次坐标&lt;/span&gt;(homogeneous coordinates) 变换,其目的是计算真实世界的一点P是如何对应到成像平面的P&#39;点的。其中XYZ是P的坐标。&lt;/p&gt;&lt;p&gt;*这里假设了变换矩阵M是一个“理想型”,即它符合这些预设:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;内在假设:统一的纵横比;光学中心在(0,0)点;没有偏斜。&lt;/li&gt;&lt;li&gt;外在假设:没有旋转;摄像机在(0,0,0)点。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*齐次坐标我还能联想到的应用就是在游戏引擎计算&lt;span style=&quot;font-weight: bold&quot;&gt;视锥体透视投影&lt;/span&gt;时。这里附一张图但是不展开了,有兴趣的还是可以去看Games101。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1342&quot; height=&quot;646&quot; src=&quot;https://image.gcores.com/c08911d9328488334728f9b7fbd5beac-1342-646.jpeg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1764&quot; height=&quot;1320&quot; src=&quot;https://image.gcores.com/c0e46a87efa9cb5f84e5f9bf09f7f8cb-1764-1320.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里矩阵K提出去,内部变成了单位矩阵I的形式。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;假设f=2,在矩阵计算器中还原了一下。&quot; width=&quot;580&quot; height=&quot;133&quot; src=&quot;https://image.gcores.com/36bf12a9360f829a14b28f0ea06e8035-580-133.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;真实世界的摄像机&quot; width=&quot;1768&quot; height=&quot;1324&quot; src=&quot;https://image.gcores.com/e0371d985aa85a907f7a270f8f7a3b1f-1768-1324.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;内在假设:光学中心在(u0,v0)点;矩形像素点阵;轻微的偏斜。&lt;/p&gt;&lt;p&gt;*这部分内在假设反映在变换矩阵中,u0、v0在矩阵中的位置用于计算平移,而α和β则反映了纵横比的不统一,系数s则用于计算偏斜(扭曲)值。偏斜可以想象矩形扭成平行四边形的情况。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;真实世界的相机+真实世界的变换&quot; width=&quot;1767&quot; height=&quot;1323&quot; src=&quot;https://image.gcores.com/8ff86587bab882ef016584848433b4df-1767-1323.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;外在假设:允许旋转,摄像机在(tx,ty,tz)点。&lt;/p&gt;&lt;p&gt;*对应其中r系列的9个参数用来表示旋转变换,而t系列3个参数表示摄像机的平移变换。&lt;/p&gt;&lt;p&gt;*至此内在假设和外在假设都变成了参数矩阵,并且两者相乘也被赋予了意义。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;从图像中还原3D&quot; width=&quot;1687&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/d0cdcfc2689c4cfac2269ea5e19dc45f-1687-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;我们如何从图像中计算3D几何信息呢?——哪些图像中的线索能提供3D信息?&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;明暗&quot; width=&quot;1687&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/a44702094d17dce045a7c878c97f5a44-1687-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中的这个公司Merle Norman Cosmetics是一个换妆品牌子,和主题无关。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;纹理&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/34358ff7b10e03f7459aaf24f6688758-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里指有一定规律的纹理走向。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;焦点&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/5ba5a1838f92ff7f551fe7cf710bb80a-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;动态&quot; width=&quot;1681&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/d6dfc1dc2a66cacff808653b61c47e18-1681-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/d6ab2bff3ca3452aa74e450b06ab116f-1683-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;其它:高光、阴影、剪影、内反射、对称型、光学偏振等。&lt;/p&gt;&lt;p&gt;课件中会聚焦在motion这一类线索——追踪图像中某些特征点在不同图像空间的位置。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;立体重建&quot; width=&quot;1684&quot; height=&quot;1252&quot; src=&quot;https://image.gcores.com/78c6b0a7410710d3a86ce387bb087824-1684-1252.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;立体课题(指为什么要使用多视角):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;通过两张(或更多)图片生成形体&lt;/li&gt;&lt;li&gt;生物性动机(人眼)&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;1. 二比一更好&quot; width=&quot;1684&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/def949e10b8ebfd18c029492821d0e1c-1684-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;2. 从汇聚点还原深度&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/0cd18de0d224ff8b071fd12a69eb1a42-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*基于人眼可以感受双眼夹角的原理,通过图中的公式就可以计算出距离。&lt;/p&gt;&lt;h1&gt;三、对极几何的简单引入——Epipolar geometry: a gentle intro&lt;/h1&gt; &lt;figure&gt;&lt;img alt=&quot;对极几何&quot; width=&quot;1686&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/e95d3e8003a36e4103ab707c76eda91a-1686-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里引入了几个基本概念:对极平面、基线(黄色)、对极线。&lt;/p&gt;&lt;p&gt;*其中极点e、e&#39;表示:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;基线和图像平面的交点&lt;/li&gt;&lt;li&gt;另一摄像机中心的投影&lt;/li&gt;&lt;li&gt;摄像机动态方向的消失点&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;例子:汇聚图像平面&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/d12dd87c1ac0d0527736783617afad9d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;对极约束&quot; width=&quot;1686&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/8effbee7f74d3b0e1503b6a4b9b88be6-1686-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;同一个物体的不同视角&lt;/li&gt;&lt;li&gt;假设已知摄像机的位置和矩阵&lt;/li&gt;&lt;li&gt;给定一个左侧图片的点,如何确定右侧图片中该点的位置?&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/8543cdf90203a2c3a8c8dcc9e2db1f6a-1683-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;p点的潜在匹配点必须在对应的极线l&#39;上。&lt;/li&gt;&lt;li&gt;p&#39;点的潜在匹配点必须在对应的极线l。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/fb62d7ca0736c85faeb0a592fe91f7cd-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中右侧上方应该是p&#39;点,课件应该是写错了。p和p&#39;都是在各自图像平面上投影的点。&lt;/p&gt;&lt;p&gt;*M是左侧摄像机对应的矩阵,写成了之前一节中的形式,K对应之前提到的内部假设,后面的单位阵I是默认旋转矩阵、0则是默认位移矩阵。&lt;/p&gt;&lt;p&gt;*M&#39;则是经过了旋转R和平移T之后的摄像机矩阵。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/747e550034e6abc6ddfb02aaa04c3905-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*两者的K值是由校准相机(calibrated camera)的参数来确保的。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/a48540df4151855f15322a810fda8e50-1684-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*T叉乘(Rp&#39;)得到的向量与对极平面垂直。&lt;/p&gt;&lt;p&gt;*p的转置与之的点乘等于0——代表两者也垂直。矩阵的转置可以理解为将其行列翻转的结果。&lt;/p&gt;&lt;p&gt;*向量点乘得到的是一个标量,而叉乘得到的是一个与两者垂直的法向量。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;向量叉乘转为矩阵乘法&quot; width=&quot;1687&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/194f56a9d83b0b73418809d777b5c6cf-1687-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里引入了一个&lt;span style=&quot;font-weight: bold&quot;&gt;斜对称矩阵&lt;/span&gt;的概念,其对角线上值为0,其它位置的值分布如图。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;作为参照这里展示了向量叉乘的计算结果&quot; width=&quot;611&quot; height=&quot;245&quot; src=&quot;https://image.gcores.com/80c576f16562b69243fc453730992596-611-245.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1687&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/fb1b9b95fd3053e7389a2f3660e86873-1687-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*将之前叉乘的部分转换为矩阵点乘,其中提出的部分被称为&lt;span style=&quot;font-weight: bold&quot;&gt;本质矩阵&lt;/span&gt;。通过它可以快速运算出另一个图像中的极线。&lt;/p&gt;&lt;p&gt;*这一概念于1981年由Higgins提出,这一概念的翻译也在矩阵学中被广泛使用。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/070d78e3ee1a482e89dd834dcd6e2322-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;本质矩阵的一些特质如下:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;E乘p&#39;是与p&#39;相关的极限l。&lt;/li&gt;&lt;li&gt;“E的转置”乘p是与p对应极线p&#39;。&lt;/li&gt;&lt;li&gt;E是一个&lt;span style=&quot;font-weight: bold&quot;&gt;奇异矩阵&lt;/span&gt;。它没有逆矩阵,并有着EX=0有无限多解的特性。&lt;/li&gt;&lt;li&gt;E乘e&#39;等于0,E的转置乘e等于0。(这类计算时e和e&#39;视为向量)&lt;/li&gt;&lt;li&gt;E是一个3X3的矩阵,它有着5的&lt;span style=&quot;font-weight: bold&quot;&gt;自由度&lt;/span&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*DOF是degree of freedom的缩写,以通俗但不算准确的方式来描述,矩阵自由度值有其中最少多少个参数能确定其约束;又由于&lt;span style=&quot;font-weight: bold&quot;&gt;对极约束是等式为零的约束&lt;/span&gt;,所以对E乘以任意非零常数后,对极约束仍然满足——这件事情称为E在不同尺度下是等价的。 基于平移3个参数、旋转3个参数,尺度等价减1(指其它参数可以按一个参数做等比例缩放),得到自由度为5。&lt;/p&gt;&lt;h1&gt;四、平行图片与图像校正——Parallel images &amp;amp; image rectification&lt;/h1&gt; &lt;figure&gt;&lt;img alt=&quot;最简单的例子——平行图片&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/564070432ef9d87b986902288bf2f550-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;摄像机的图像平面彼此平行并与基线平行&lt;/li&gt;&lt;li&gt;摄像机中心在同一高度&lt;/li&gt;&lt;li&gt;焦距相同&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/e8c465e2e8aaefc1c8d8a9d21a53167d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;此时,极线就沿着图片的水平扫描线分布。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;平行图片的本质矩阵&quot; width=&quot;1684&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/9bb0f51dfe32d6af1ddb971fe36067e6-1684-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里将t按照之前的规则转换成斜对角矩阵[tx],而R是单位矩阵——这样就得到E。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/1238ee8b0d32198309f41d481d60ae59-1684-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*由于矩阵乘是有&lt;span style=&quot;font-weight: bold&quot;&gt;结合律&lt;/span&gt;的,因此可以得出v=v&#39;的结论,即图中所说的对应两点的y坐标相同。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;三角测量——依据差异计算深度&quot; width=&quot;1684&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/dda28ba640828ac8b63b50110c7d088d-1684-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*差异(disparity)值是&lt;span style=&quot;font-weight: bold&quot;&gt;和深度成反比&lt;/span&gt;的。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;立体图像校正&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/f57ba8aedb73f121d4d7c48272fed27d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;算法:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;重投影图像平面,至两个与视觉光学中心线平行的平面上。&lt;/li&gt;&lt;li&gt;这次变化之后像素的移动是水平的。&lt;/li&gt;&lt;li&gt;两个变换矩阵,对应每个输入图片的投影各一个。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*直译过来稍微有些别扭,但结合示意图理解,实际上是想用多一个步骤的图像平面变换来达到简化计算以及利用三角测量的意义。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;校准示例&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/21d74202793a0a62de0ee8bd8b7c7086-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;应用:视觉变形&quot; width=&quot;1684&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/e5ba0362deb461f105856e259043b238-1684-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;移除透视扭曲(校正)&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/4012d5f7a0e0c88fde5ed3c9e9f28bf9-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;h1&gt;结语&lt;/h1&gt;&lt;p&gt;由于课件没有解说稿,因此能感觉到有些部分直接上各种公式计算还是缺一点铺垫。而如此高密度的各种矩阵计算,有些我能掌握,也有很多方面我是纯萌新——有些东西只能概念性的把握一下,没法深入再去了解了。&lt;/p&gt;&lt;p&gt;但尽管如此,相信不管是我还是读到这里的各位,应该能从示意图感受到这些计算机视觉领域的前期研究是在处理哪些方面的问题,并为之设计了哪些数学工具和算法的。&lt;/p&gt;&lt;p&gt;尽管只是开了个头,距离读到最前沿和AI都还挺远,但也算是开启了这个读计算机视觉和三维重建方面文章的系列。下周会继续更新这篇课件的下半部分。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;最后是一些资料链接:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Computer_stereo_vision&quot; target=&quot;_blank&quot;&gt;立体视觉的WIKI&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/645991529&quot; target=&quot;_blank&quot;&gt;一篇介绍本质矩阵的知乎&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://matrixcalc.org/zh-CN/&quot; target=&quot;_blank&quot;&gt;一个实用的矩阵计算器工具&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://ww2.mathworks.cn/help/vision/ug/camera-calibration.html&quot; target=&quot;_blank&quot;&gt;介绍摄像机校准的一篇文章&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://vision.stanford.edu/teaching/cs131_fall1415/lectures/lecture9_10_stereo_cs131.pdf&quot; target=&quot;_blank&quot;&gt;斯坦福大学这篇课件的地址&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/194564</link>
      <guid isPermaLink="false">gcores-194564</guid>
      <pubDate>Thu, 13 Feb 2025 23:11:40 GMT</pubDate>
      <author>Hakumen</author>
      <enclosure url="https://image.gcores.com/0b8500a83d5ee2502cc658af193ab43c-1518-1041.png" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/0b8500a83d5ee2502cc658af193ab43c-1518-1041.png"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3" length="811" type="audio/mp3"></enclosure>
      <itunes:duration>0:13:31</itunes:duration>
      <category>知识挖掘机</category>
    </item>
    <item>
      <title>关于游戏叙事设计,我们应该如何武装自己的头脑?</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;关于游戏叙事设计,我们应该如何武装自己的头脑?&quot; src=&quot;https://image.gcores.com/98b4aadab80aa6319c914a0fba8610a8-1275-718.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;这是一篇一万六千字的长文。Deepseek帮我吹牛:我这是尝试在商业性与艺术性之间,搭建可落地的游戏叙事工程学 。&lt;/blockquote&gt; &lt;h1&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;前言:为什么在设计叙事前我们需要武装头脑?&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;2024年六月底,我在学习了媒介社会学相关的知识后,受视野被开拓的热情与灵感所驱动,开始写作杂谈《从媒介的视角看游戏文案的困境与出口》。我先后发布了涉及“困境”的上、中两篇,但唯独最关键的探讨“出口”的下篇却难产了。在写下下篇的大纲后,我看着大纲,忽然意识到这可能只会是一篇伪学术垃圾。越是从媒介学的视角探讨,我们便越能看到游戏在成为复杂的综合艺术之前,先是一个精密运转的现代文化产业的产品。我当然可以高屋建瓴地大谈特谈行业可能的出口,但最后能落到实际而对阅读文章的大家真正有意义的,恐怕只有“游戏文案该怎么做”这一小部分了。 &lt;/p&gt;&lt;p&gt;而游戏文案该怎么做呢?&lt;/p&gt;&lt;p&gt;从入行开始,我便一直在思考这个问题,但若我真正将这部分作为文章的核心内容,以我的实践经验和理论储备,真的能回答好这个问题吗?在2024年中旬的我还没有这样的信心。而随后的2024年下半年,也算机缘巧合,我为两个项目快速地从0到1搭建了比较完整的虚构层框架。虽然它们的体量都不算大,但最终的效果让我对自己长久以来形成的思维方式和积累的方法论有了一些自信。所以正值2025年的新年,我希望将它们分享出来,作为《从媒介的视角看游戏文案的困境与出口》真正的下篇,为去年的理论探索收尾。也用作抛砖引玉,来和大家一起探讨,在新的一年里为成为更好的游戏文案的奋斗作开篇。&lt;/p&gt;&lt;p&gt;同时在上面两个项目的开发过程中,我再次意识到,只探讨游戏文案怎么做往往还不能真的导向一个叙事优秀的游戏。正如我在《从媒介的视角看游戏文案的困境与出口(中)》里面提到的:&lt;/p&gt;&lt;blockquote&gt;理论上的文案策划的职能在实际开发中被分化出去了,这是游戏这种媒介的经济模式和市场需求所决定的。如果相关岗位的从业者对游戏文案、虚构层包装都有着比较全面、系统的认识,能够在此基础上密切配合,最终一起实现一套优秀的包装,想来也不会有文案策划有怨言。但这却偏偏是现阶段业内的文案策划们比较无奈的事。 &lt;/blockquote&gt;&lt;p&gt;所以,最终这篇文章会不只是面向游戏文案,而是面向所有对游戏叙事设计有兴趣的游戏开发者。我希望尽可能从游戏叙事的底层出发,去帮助大家达成上面提到的“对游戏文案、虚构层包装都有着比较全面、系统的认识”。这篇文章的核心便从“游戏文案该怎么做”,转为了“在设计游戏叙事前,设计者应该做好哪些认知上的准备”。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;在开始之前我们先再次确认一下进行认知准备的必要性:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;玩家审美迭代加速&lt;/span&gt;&lt;/li&gt;&lt;li&gt;回顾游戏叙事的发展史,如今游戏设计者的总体叙事水平无疑是高于两千年初的。但在我们心中,当今称得上叙事经典的作品涌现的频率似乎并没有提高。这侧面反映了我们作为玩家的审美水平也在提升。且玩家对游戏叙事的要求只会越来越高,直到游戏不再能满足玩家对故事的需求,他们便转向别的媒介来满足这种需求。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;工业化生产需求&lt;/span&gt;&lt;/li&gt;&lt;li&gt;游戏规模的扩张带来游戏开发团队的膨胀,工种越分越细,而知识区隔使沟通成本膨胀。而对游戏叙事较统一的整体认知能极大减少策划、美术、音频团队在产出叙事方面内容时的沟通成本,也能保证大家在团队合作中能在充分理解需求的前提下发挥自己的创造力,从而提升产出质量。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;叙事媒介特殊性&lt;/span&gt;&lt;/li&gt;&lt;li&gt;游戏叙事有着它独有的特点,在实践中不能将其他艺术门类的叙事理论简单套用过来。先跳出文学、影视的叙事理论,从交互性的根本来理解游戏叙事非常有必要。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;而在建立正确的认知之前,我们还需要澄清几个常见的认知误区:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(以下案例皆由我真实遇到过的情况改编,但其实我对我可爱的同事们没有不满,毕竟术业有专攻,此处只是举例说明常见的误区)&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;叙事≠写故事&lt;/span&gt;&lt;/li&gt;&lt;li&gt;“叙事就全部交给你(文案)了,放心,我作为制作人/美术/音频不会太干涉故事的事情。” &lt;/li&gt;&lt;li&gt;叙事并不简单地指讲述一个故事。在叙事学中,叙事有着更广泛的含义,它指通过某种结构来传达一些信息或者体验。也就是说,从广义的叙事的定义来看,所有游戏都需要传递信息和体验,也就都绕不开叙事。而游戏叙事当然不只是文案需要考虑的事情。游戏为叙事所建立的结构又叫做虚构层,它包含着美术、音频,而又被游戏的交互规则——玩法深深影响。团队中每个人的每个选择几乎都会影响到叙事最终的效果。因此,想要创作出优秀的游戏叙事,团队的每一个参与者都应该朝着共同建立一个优秀的叙事结构而努力。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;世界观≠设定集&lt;/span&gt;&lt;/li&gt;&lt;li&gt;“我想给这个角色面部加个防毒面具/头上加一对猫耳不可以吗?只是加一个小设定,又不会影响什么。”&lt;/li&gt;&lt;li&gt;世界观是经由游戏所表现出来的叙事符号所搭建的一个可信的,因此才可沉浸的虚拟世界。他是人为设计的叙事符号之间的关系与意义,也是设计者人为创造的文化语境(别担心,后面会细致解释这句话)。它并不是简单的设定堆砌,它需要在一个逻辑严密、核心明确的框架下层层展开。有时一个小设定的更改会像改掉一栋楼的承重柱一样,对世界观最重要的可信性带来巨大影响(比如在一个本没有兽人设定的世界观里给主角加个小小的猫耳)。那如何判断设定能不能改、能不能加呢?这里有一个原理可以用来帮助判断:某个设定需要展现出对玩家关心的事情——信息的呈现、故事、角色的有逻辑的影响,才会被玩家采信,它才能融入世界观当中去。因此,对信息的呈现效果、对故事的讲述、角色的塑造有益则能加能改、能加,反之则不能。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;共情≠煽情&lt;/span&gt;&lt;/li&gt;&lt;li&gt;“我们对主角的想法很简单,可爱就行了。我们没有打算写有深度的或者煽情的故事,所以本来还没有考虑让玩家对角色共情的。”&lt;/li&gt;&lt;li&gt;如果叙事的主要目标只是为了准确地传达信息(《俄罗斯方块》),或者给玩家提供简单的代入感、沉浸感(《堆叠大陆》),那么在设计时可以抛开共情的问题。而如果游戏叙事的主要目标涉及到塑造一个角色,或者换句话说,涉及到讲述一个故事,那么让玩家共情便自然而然地变成了最关键的一步。玩家要关心游戏的故事,关心游戏角色的成长变化,他才不会想要在对话或演出时点击跳过按钮。而建立关心也就是要建立玩家对角色在当前故事发展中的当前困境、当前感情、当前选择的感同身受,也就是所谓的“共情”。共情是讲述故事、塑造角色的大前提,煽情只是达成共情的一种手段。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;前言的最后,我在这里列一个文章的目录:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;我们可以怎么看待游戏叙事?&lt;/li&gt;&lt;li&gt;游戏的叙事内容包括哪些部分?&lt;/li&gt;&lt;li&gt;游戏叙事的“好”有哪些维度?&lt;/li&gt;&lt;li&gt;如何落地游戏叙事设计?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;736&quot; height=&quot;650&quot; src=&quot;https://image.gcores.com/1303a74a125f7e61d83950dffc159754-736-650.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;&lt;/p&gt;&lt;h1&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;一、我们可以怎么看待游戏叙事?&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;一切都开始于这一个问题:游戏是什么?&lt;/p&gt;&lt;p&gt;如同其他学科的本体论问题一样,这一问题没有标准答案。但我坚持认为游戏制作者在制作某一游戏时,他对游戏的认识会充分体现在制作的过程和结果上。如果认为游戏是艺术,那么制作者往往会更重视艺术性与个人表达;如果他认为游戏是娱乐,那么游戏的玩法和乐趣会被放到设计的首要位置;而如果他认为游戏是产品,那么大家便总会听到他用“赛道”“竞品”一类的词汇表述自己立项和开发的历程。&lt;/p&gt;&lt;p&gt;我在之前的文章中推荐过一个更全面的视角来看待游戏,即媒介的视角。游戏在成为艺术品、娱乐方式、商业产品之前,它首先是一种能够用以传递信息的媒介。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;媒介被生产出来的目的,在于它能传递承载的信息,以达成传者/受者的目的。而游戏这种媒介区别于其他种类的媒介,有着“交互性”这一独特的特点。&lt;/li&gt;&lt;li&gt;游戏这一媒介的发展是以各种媒介技术为基础的。技术的发展会极大地带动游戏的发展。&lt;/li&gt;&lt;li&gt;而这种媒介现在是在一个庞大、复杂、精密的现代文化产业中生产的。这个产业既受制于外部的政治、经济环境,而又由产业中每一个活生生的人组成。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;媒介的视角能够包容我们前面提到的一些视角,它也能包容一些游戏未来潜在的发展方向。例如教育游戏、医疗游戏、公益游戏等功能游戏,无法被上述的艺术品、娱乐方式、商业产品的视角所容纳,但它们能很好地放入媒介的视角内。&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;从媒介的视角来看:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;首先,游戏的叙事内容是游戏这一媒介产品所承载的一部分的媒介信息,这一部分往往又包含了两个模块的内容,一是对游戏交互的虚构包装,二是对游戏流程的故事包装,它们往往作为游戏这一媒介串联和传递信息的核心,且能赋予玩家的游戏体验以更丰富的意义。&lt;/li&gt;&lt;li&gt;其次,主要负责游戏叙事的文案策划(理论上的,实际常由别的岗位兼任,有专职文案策划的项目反倒占少数)处于游戏行业这一媒介产业当中,其产出会深受项目内的岗位要求、权利分配、工作流程影响。在项目之外,游戏叙事也会受到整个行业的行业规范、商业模式,乃至上下游产业链的影响。&lt;/li&gt;&lt;li&gt;再次,游戏叙事的设计与叙事相关的技术联系密切。像articy:draft一类的文案管理软件的发展促成了《极乐迪斯科》等具有极其复杂的分支对话的游戏诞生。此外,在理论技术方面,我们也能看到近十年来影视写作技巧的引进与成熟,使得《美国末日》《荒野大镖客》等作品在叙事上大获成功。&lt;/li&gt;&lt;li&gt;而后,游戏文案面对着游戏玩家这一受众群体,玩家的需求与过往的游戏产品塑造着玩家对于游戏叙事的期待,这种期待会间接影响到文案策划的产出。而如今在平台时代,游戏在各种平台上的玩家社区几乎决定了游戏的“生命力”,社区氛围的营造更加需要被纳入叙事设计的考虑要素之中(《碧蓝档案》的成功离不开这一点),社区的舆论反馈往往也会直接影响到叙事内容的修改。&lt;/li&gt;&lt;li&gt;最后,游戏文案还受到上述众多因素之外的外部社会世界的制约,包括各种政治、经济因素。大家感受最为直接的大概是版号制度,以及最近欧美游戏中愈发盛行的政治正确内容。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;而当我们以媒介的视角来看待游戏,游戏叙事内容又起到怎样的一个作用呢?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;首先,媒介的核心功能是传递信息。而游戏这一媒介的特点是交互性,它本质上只是玩家与一段程序进行输入与输出的信息交互,原始的信息是以二进制的形式存在的。人类当然无法直观地理解二进制信息,而将这些二进制数据转化为玩家能够理解的内容,这就是游戏叙事的开始了。例如玩家按下键盘的A键,程序使一张图像根据某些参数往位置坐标轴x轴的负方向移动,并在屏幕上反馈出来,而游戏叙事便将这个过程用图像、文字、音频符号包装为玩家操纵一个角色,向游戏场景的左侧移动,或者包装为玩家以上帝视角在拖动场景中的某个物件向左。这样对游戏程序的反馈信息进行“包装”,其实就是我们常提到的机制层上的虚构层设计。它赋予了游戏体验基本的意义。想象一下完全没有虚构层的游戏,玩起来恐怕就是程序员测试代码一样的体验吧。&lt;/p&gt;&lt;p&gt;同样的游戏玩法也可以使用完全不同“包装”,就像我上面提到的那个例子。他们可能会导致反馈信息呈现的效果截然不同,从而影响到游戏风格和玩家体验。而玩家深恶痛绝的“换皮游戏”之所以存在,也正是因为虚构层包装有很强的可操作性。&lt;/p&gt;&lt;p&gt;当然,如今大家开始设计一个新游戏,肯定不会先从程序逻辑的角度思考,再寻找合适的叙事包装。游戏设计的发展经过多年的积累,在虚构层包装上已经有了一些惯例,他们被统合进了游戏题材、游戏类型的定义里。即使对一个游戏毫无了解,别人在提到类银河恶魔城、魂类、格斗游戏、西幻这些游戏的标签时,我们脑海里也会浮现出一些常见的包装元素,或对整体的叙事风格先有了想象,这就是惯例的力量。但我认为了解这样的底层逻辑是没有坏处的,在题材和类型的框架下,我们仍可以继续探索更加贴合游戏玩法的虚构层包装方式,更换惯例的虚构层设计,也能为玩家带来新鲜的体验。&lt;/p&gt;&lt;p&gt;其次,无论是出于艺术表达的、商业的,或公益的目的,所有的游戏设计者都希望玩家在上手游戏后,能持续地玩下去,直到设计者达成了他们的目的。从玩法(机制层)的角度来看,心流理论能为我们达成目的提供指导;而从叙事(虚构层)的角度来看,我们已经通过虚构层构建好信息认知的框架了,而吸引玩家持续游玩,实际是需要基于玩家意义的反馈,进一步影响到玩家的情绪、情感,再进一步塑造玩家与游戏的情感联结。用通俗的方式来讲,这其实就是配合玩法建构代入感、沉浸感、共情的过程。游戏达成了与玩家的情感联结后,还可以更进一步向玩家传递价值观,在虚构层赋予的基本的意义之上,为玩家的游戏体验赋予更深刻的意义。&lt;/p&gt;&lt;p&gt;反过来看,最糟糕的情况是游戏无法影响到玩家的情绪,玩家会觉得游戏无聊,自然会放弃继续游玩。其次糟糕的情况是当一个游戏的体验过程激起了玩家在设计者意料之外的情绪,例如突如其来的NTR情节带来的愤怒,持续出现恶性bug带来的恶心,这些都有极高的让玩家弃坑的风险。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;在媒介的视角下,该怎么定位游戏文案策划这一岗位呢?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;我在前言中提到,这篇文章是面向所有对叙事设计感兴趣的游戏开发者的,但这里我仍旧想分享一下我理解中的游戏文案策划核心的工作责任,以帮助大家更好地与文案策划合作,或判断自己的项目需不需要一个文案策划。&lt;/p&gt;&lt;p&gt;我平常向同事们介绍文案策划的职责时,往往会这么比喻:设计和制作游戏的交互规则/玩法像是在搭设骨架、安排内脏。而理想状态下,我们文案策划的工作便像根据骨架和内脏来统筹安排串通全身的血管,从而帮助美术、音频设计直接表现在外的皮肉,让游戏的外在鲜活起来。而我们安排的血管里,流淌的是意义的血液,它们使玩法的心脏一次次搏动,让玩家的情绪也随之波动,从而使玩家能感受到,这是一个活生生的、协调且有魅力的艺术生命。&lt;/p&gt;&lt;p&gt;在实际的开发流程中,叙事设计的工作肯定会分散,完全由文案作为上游给美术、音频非常细致的设计需求,会限制美术、音频的创造空间,往往也不现实。因此,我认为文案策划在一个团队内最恰当的位置是叙事顾问。在承担最基本的设定、故事、文字工作以外,文案策划还应该积极主动与其他岗位的同事们沟通,为叙事元素的设计提出建议、反馈,为叙事设计的前进的方向掌舵,努力使大家对项目叙事内容想要达到的效果有着统一的认识,并在此大前提下,尊重各个岗位独立的创造空间,尽力将大家的灵感纳入到叙事整体当中来。&lt;/p&gt;&lt;p&gt;对于文案策划,乃至所有游戏叙事的设计者来说,什么是媒介的视角呢?就是既要尊重叙事理论,也要尊重开发实际,尊重团队创作的形式。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;736&quot; height=&quot;729&quot; src=&quot;https://image.gcores.com/de9230aee3885ba75361c0a029e43964-736-729.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;二、&lt;/span&gt;游戏的叙事内容包括哪些部分?&lt;/h3&gt;&lt;p&gt;上一个部分中,我们探讨了该如何看待游戏叙事。但这样的基础认知还不足以指导我们的实践。为了排布设计叙事时的优先顺序,审视各个部分的叙事元素达到的效果,我们需要对游戏的叙事内容进一步进行划分,并细致讨论各个部分的原理与作用。&lt;/p&gt;&lt;p&gt;在之前的文章中,我从中国的游戏文案策划这一岗位的发展史中总结过现阶段文案策划的工作:&lt;/p&gt;&lt;blockquote&gt;理论上,文案策划需要配合其他岗位横向地为游戏中相互关联的系统建构符号体系,赋予玩家与游戏的交互以意义,同时需要纵向地为游戏流程在这套符号体系上搭配相符的叙事,让玩家的体验过程在玩法乐趣上增添审美价值。因此,现阶段理论上的游戏文案指代着一个统一的符号体系,它由两个互为表里的部分组成, 一是对游戏交互的虚构包装,二是对游戏流程的叙事包装。 &lt;/blockquote&gt;&lt;p&gt;而现在,抛开了岗位历史的视域,我们已在上一部分的探讨中已经从作为游戏根本的“交互性”中再次推导出了相似的结论。我们在这里可以更新一些表述方式,让它更加细致准确:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;游戏的叙事内容其实是一个复杂精密的球体,但我们可以从横向和纵向两个角度将它切开来看。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;横向——虚构层:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;横向切开,我们便会看到在某个游戏的时刻或者片段,设计者将游戏的交互信息由程序语言转译为了另一套相匹配的、成体系的符号语言。&lt;/li&gt;&lt;li&gt;这套符号体系让玩家能理解游戏当前的状态,了解游戏的交互规则,并赋予了玩家与游戏的交互以意义。&lt;/li&gt;&lt;li&gt;我们将这套符号体系称作“虚构层”。这是游戏叙事的基础。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;纵向——故事层:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;纵向切开,我们便会看到在游戏整个游玩流程中,在虚构层的基础上建立的叙事过程。&lt;/li&gt;&lt;li&gt;这个过程将零散呈现给玩家的意义逐渐联系成一个整体,并将这些意义延伸成情绪体验。&lt;/li&gt;&lt;li&gt;配合精妙的符号体系与此起彼伏的情绪体验推动玩家沉浸到游戏的世界中、与故事角色产生共情,并最终接受设计者试图传递的价值观。&lt;/li&gt;&lt;li&gt;我们可以将这个叙事过程称作“故事层”。故事层是一个叙事过程,往往会讲述一个故事,但并不一定需要讲述一个故事。&lt;/li&gt;&lt;li&gt;在编剧的剧作理论中,一个故事成立需要有五个要素,主角、目标、阻碍、失败代价、为什么故事开始于此。这五个要素往往天然地存在于游戏玩法规则之中。&lt;/li&gt;&lt;li&gt;例如,象棋并没有讲述故事,但基于象棋的虚构层,我们也能从两个玩家对弈的过程中提取出上面的五个要素,这会是一个指挥官操作士兵运筹帷幄消灭敌军的故事。而即使是俄罗斯方块,我们也能在一定的脑补下想象出游玩过程代表的故事。&lt;/li&gt;&lt;li&gt;也就是说,在合理的虚构层之上,玩家与游戏交互的过程会自然形成故事。理解了这一点,也就能理解为什么游戏能实现涌现式叙事了。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;注意:你在其他地方看到的“虚构层”指的是所有叙事内容,其实包含了这里所谓的故事层,而我为了更好地将理论落地,在这里将它们拆开来了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;当然,上述的横向与纵向只是两种观察游戏叙事的视角,在做横与纵的切分的时候,我们也应该牢记游戏叙事是一个复杂的动态过程。纵向的故事层肯定离不开横向的虚构层的支撑,而横向的虚构层中各个符号的意义,往往也需要在故事层展开的过程中逐渐联系成一个整体,而才能为玩家所理解。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;现在,我们再更加细致地讨论虚构层:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;我们已经了解了虚构层是一套符号体系,而这套符号体系是如何传递意义的呢?&lt;/p&gt;&lt;p&gt;符号学告诉我们,符号传递出意义有着这样一个过程:符号→结构→叙事信息(意义)&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;符号指的是承载着意义的事物,它是传递意义的最基本的单位。&lt;/span&gt;&lt;/li&gt;&lt;li&gt;例如,一个字即是一个符号。&lt;/li&gt;&lt;li&gt;符号的概念最初来自于语言学。语言符号分为两个部分,一是能指,二是所指。能指是符号本来的概念和对象,例如汉字“花”的能指是字形“花”和字音“hua”的结合;而所指是符号具体指代的对象或意义,例如汉字“花”的所指是被子植物特有的生殖器官。&lt;/li&gt;&lt;li&gt;当符号的思维发展到了更广泛的人文社科领域,便出现了文化符号学。文化符号进一步地在语言符号的所指之上探讨符号衍生出的文化含义,例如在文化符号学看来,文化符号“花”的能指是被子植物特有的生殖器官,而文化符号“花”的所指在不同的文化语境中可能是美好、生命、青春等象征含义。&lt;/li&gt;&lt;li&gt;符号的意义是在语境当中传达的,文化符号的意义也是在文化语境当中传达的。这意味着传递意义的不是符号本身,而是符号之间的组合关系。换句话说,在一个作品中单独的、与其他符号无逻辑关联或文化隐喻关联的符号没有实际的叙事意义。就像在艾尔登法环中突然放入一个哆啦A梦只会让人困惑,或被解读为某种解构主义、后现代主义的艺术潮流。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;承载着意义的符号会组成结构。&lt;/span&gt;&lt;/li&gt;&lt;li&gt;结构的概念来自于学术界与艺术界的结构主义思潮,而从结构的思潮中进一步发展出了现代叙事学。结构可以进一步解释符号如何在与其他符号的组合中,或在文化语境中运作。&lt;/li&gt;&lt;li&gt;结构主义者认为,文化意义实际是通过二元对立的符号构成的结构来传达的。例如,一个故事让正义的势力与邪恶的势力对抗,这便构成了一个简单的正义与邪恶对立的结构。通过正义最终战胜了邪恶,作品能传达出邪不压正的意义(奥特曼)。当然,绝大部分作品为了追求叙事深度,结构都不会如此朴素,往往不止一组对立,是多组对立交织,即使是同一组对立,也可能有几重的内涵。&lt;/li&gt;&lt;li&gt;那么在艺术作品中,美如果没有与丑对立,那美便无法传达出美的意义吗?实际上并不会。人类对符号有天然的敏感,一个作品中若只有代表美的符号,没有代表丑的符号,那受众也会无意识地将代表美的符号与自己的认知经验联系起来,在作品外寻找与之相似的符号和与之对立的符号,来尝试解读出信息(只是符不符合作者的意图就是未知数了)。这是因为人类天生追求意义,会难以接受无意义的事物。因此,个人的认知经验对符号的解读有着至关重要的作用。设计者让符号承载的意义贴近该符号在现实的文化语境中的意义,也会降低受众解读符号的难度。&lt;/li&gt;&lt;li&gt;我们每个人早已置身于社会生活的符号的海洋中。所以,无论设计者是否有意,符号与作品内外的其他符号组成结构是自然而然的事。只是有设计目的的更清晰的结构会带来更简单的接受难度,使受众有着更清晰准确的理解。&lt;/li&gt;&lt;li&gt;而综合我们上文的探讨,&lt;span style=&quot;font-weight: bold&quot;&gt;结构便是一个由相似或对立的符号组成的联系密切的符号体系。&lt;/span&gt;视它囊括的符号的多少,它可大可小。它在一个一个简单文化意义基础上传达出更深远的意义。因此,构建结构需要精巧地选择文化符号,编织它们的关系,来表达结构中相似或对立的各个元素,便能搭建起虚构层的地基。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;虚构层是一个宏观的结构。&lt;/span&gt;&lt;/li&gt;&lt;li&gt;游戏中的所有有意义的元素都是符号,它们共同组成了虚构层这一个宏观的叙事结构。&lt;/li&gt;&lt;li&gt;虚构层的结构中基本的对立是游戏规则中玩家与阻碍之间的对立,而以此为基础可以排布出代表玩家/主角的符号、代表目标的符号、胜利相关的符号、失败相关的符号、代表友方的符号、代表敌人的符号等,所有的符号都会有一个初步的位置。游戏玩法的不同可能会使符号在这个结构中排布的方式不同,但为了构建游戏自己的语境,这些符号在规则之外一定还需要用某种逻辑更紧密地联系在一起。我们往往会借助现实的文化语境,以及游戏世界观设定。&lt;/li&gt;&lt;li&gt;如果这些符号的之间的联系与对立关系清晰,并且在作品内外的文化语境中的联系与对立关系也足够清晰,并且这种联系与对立非常契合游戏规则中的联系与对抗,那这样的虚构层便非常易于理解。例如象棋。&lt;/li&gt;&lt;li&gt;好的虚构层会呈现给玩家一种简洁、准确、又似乎能包罗万象的优美,这是一种近似于氛围的整体的美感,你无法用任何单一的元素描述出这种美感,它是游戏中每个符号的合力,存在于游戏的每时每刻,每个角落。例如《Gris》《动物井》《艾尔登法环》。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;我们继续更细致地讨论故事层:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;在现代的电子游戏中,虚构层中的符号不会在游戏一开始就全部都呈现给玩家,玩家也没有一本规则书,让他能在游戏一开始就理解所有符号的联系与意义。&lt;span style=&quot;font-weight: bold&quot;&gt;从本质上看,故事层,即所谓的叙事过程,其实就是将虚构层中的符号按某种顺序、以某些方式逐步展示出来。&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;叙事顺序与叙事方式&lt;/span&gt;&lt;/li&gt;&lt;li&gt;在故事层这个叙事过程中,游戏的符号会在某种叙事顺序下呈现出他们的联系与对立关系,也就传递出了他们的意义。叙事顺序需要与之相匹配的叙事方式,但叙事方式更多在交互规则的范畴,且根据项目需求可以千变万化,我就不讨论了。&lt;/li&gt;&lt;li&gt;我认为最好的叙事顺序便是玩家按游戏规则自由体验的顺序,即玩家在游玩游戏时符号紧密围绕着游戏的规则,也配合玩家的交互过程自然地呈现出来。符号的关系、意义不用设计者用额外的信息来解释,也在玩家游玩的过程中能逐步被玩家领悟到。所谓的环境叙事是这种叙事顺序的一种体现。而在这里我还不得不提到《巴别塔圣歌》,它仿佛就是为了解释这个理论而诞生的。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1ru411T75L/?share_source=copy_web&amp;amp;vd_source=304b5abf7f731556abaceac1de467453&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-style: italic&quot;&gt;【《巴别塔圣歌》介绍:基于文字学和符号学的优质解谜游戏】&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;而其次的叙事顺序是按照一个故事叙述的顺序。游戏叙述一个故事,塑造一个或多个角色。而我们从剧作理论中引进了激励事件、进展纠葛、高潮、结局的故事展开顺序,在玩家游玩游戏的过程中插入对话、演出呈现信息。这样也能通过角色和故事的逻辑串起大部分的符号,符号的意义也可以在故事或者对白中得到进一步解释。&lt;/li&gt;&lt;li&gt;再次的叙事顺序就是按照设计者设定的顺序。简单来说就是在玩家游玩到某个节点时,会弹出额外的信息来解释游戏中的符号的具体意义,以及它和其他符号的关系。我并不排斥这种方式,在不影响玩家体验的前提下,这种方式成本最低,也最直观,但想要用得自然并不容易。而在体量较大的游戏中,这种顺序也不太可能成为主导的叙事顺序。&lt;/li&gt;&lt;li&gt;上述三种顺序以外的其他顺序,例如意识流,或者基于互联网流行梗进行叙事,这些都太小众了,我就不展开了。&lt;/li&gt;&lt;li&gt;而游戏当然并不是只能采用一种叙事的顺序,在大部分项目中,三种主流的顺序都是交织在一起的。用哪种顺序作为主导,以及在何种场景下使用哪种顺序,并且搭配什么样的叙事方式,这是要求设计者根据自己项目的需求细致考虑的事情。这里提供一个优秀的案例以供参考——《塞尔达传说:旷野之息》。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;情绪变化&lt;/span&gt;&lt;/li&gt;&lt;li&gt;玩家接受这些符号的过程实际是在接受与游戏交互的反馈。理想情况下,获得意义的反馈会影响玩家的情绪。如果叙事过程能配合玩法持续地影响玩家的情绪,使其上忽下、起伏不定,那玩家便会持续地被吸引住,产生代入感、沉浸感。这是一个游戏的最基本的要求,也就是不让玩家“无感”或“无聊”。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;情绪变化也是故事层的最基本的要求,下面便是设计者们可选择添加的内容了。&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;故事与角色&lt;/span&gt;&lt;/li&gt;&lt;li&gt;我们在前面提到过,游戏规则往往天生符合故事成立的要素,游戏其实非常适合讲述故事。故事中的价值变化和角色的成长弧光能激发玩家的共情,让叙事带来的情绪变化上升为情感变化,玩家便与游戏产生了情感纽带,这极大地增强了游戏的吸引力。&lt;/li&gt;&lt;li&gt;利用故事层讲一个故事其实要比用电影、小说、戏剧讲故事有着更多的限制。这是因为故事是充满矛盾的,矛盾其实就是二元对立的结构,而游戏已经先有了虚构层的结构了。故事的结构必须先融入虚构层的结构当中去才能顺畅地讲述。例如在一个没有战斗的休闲建造游戏内放入一个跟建造无关的,主角战天斗地的故事,有极大概率会显得水土不服。如果故事的核心矛盾,也就是核心的结构,贴合虚构层的总体结构,也就是贴合着游戏玩法,那故事的呈现便能自然地嵌入游戏流程当中。例如用象棋的规则讲一个楚汉争霸的故事,用肉鸽游戏讲一个逃脱轮回的故事。&lt;/li&gt;&lt;li&gt;而如果游戏中的符号既非常符合呈现玩法信息的要求(也就是先有一个好的虚构层),又非常符合呈现故事信息的要求,那么故事的主题展现便能自然地嵌入玩家游玩游戏的体悟中,角色在故事压力下的抉择对应着玩家在规则压力下的选择,角色成长魅力的呈现贴合着玩家在玩法中的成长,那游戏带给玩家的情绪变化也就自然在故事高潮的力量中上升为了情感的变化。在这种情况下,玩家将为游戏的高潮所震撼,从而与游戏产生情感链接。例如《蔚蓝》《逆转裁判系列》。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;价值观&lt;/span&gt;&lt;/li&gt;&lt;li&gt;而通过结构,设计者也能在故事层中传递出自己的价值观。我在上面已经提到过了通过“正义”与“邪恶”的结构来传递邪不压正的价值观。而如果将主角设计为多元性别人士,TA的敌人是各种对TA存有偏见的人,或代表着偏见的凶暴生物,那便能打造出符合欧美DEI政治正确的游戏价值观。&lt;/li&gt;&lt;li&gt;游戏的交互性使得游戏相较于其他媒介,更易于让受众在游戏过程中接受植入的价值观。但也正是因为这样的特点,玩家如今已学会在挑选游戏时避开那些充满说教意味的,甚至引起他们反感的价值观。不妥当的价值观还会在玩家社区内引起舆论风波,而如果处理不当,在平台时代,玩家社区对游戏越来越重要的当下,这便几乎等于给游戏的社区活力和商业前途判下死刑。例如《少女前线2》《龙腾世纪:影障守护者》。所以,价值观的选择必须慎之又慎。&lt;/li&gt;&lt;li&gt;即使设计者无意传递价值观,但就如我在上文中提到的,我们早已处于现实的文化语境中,有些符号或对立结构是带有意识形态标签的(比如男与女的对立),玩家也有可能试图从中揣测设计者植入价值观的意图。设计者需要留心,自己游戏中的结构有没有在无意中传递出某种有风险性的价值观,或自己能够接受的价值观是否是当今的玩家群体难以接受的。如果因为这种事情而导致好游戏风评受损,那也太冤了。例如《活侠传》。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;736&quot; height=&quot;882&quot; src=&quot;https://image.gcores.com/19b206c6cc8575081d1b01039220e876-736-882.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;&lt;/p&gt;&lt;h1&gt;三、游戏叙事的“好”有哪些维度?&lt;/h1&gt;&lt;p&gt;我们在第一节中提到了游戏叙事设计应该采用媒介的视角,而上一节的内容其实主要集中在媒介内容上,也就是游戏本身的内容上。我们已经从虚构层、故事层两个角度总结出好游戏媒介内容要满足的几个条件了:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;符号的之间的联系与对立关系清晰,并且在作品内外的文化语境中的联系与对立关系也足够清晰,并且这种联系与对立非常契合游戏规则中的联系与对抗,这样的符号体系构成的虚构层便非常易于理解,也会呈现给玩家一种简洁、准确、又似乎能包罗万象的优美。&lt;/li&gt;&lt;li&gt;游戏按一定叙事顺序/叙事方式呈现符号,清晰地呈现出它们的关系与意义。并在这个过程中配合玩法持续地影响玩家的情绪,使其上忽下、起伏不定,持续地吸引住玩家,使玩家产生代入感、沉浸感。&lt;/li&gt;&lt;li&gt;(如果有故事的话)故事的核心矛盾,也就是核心的结构,贴合虚构层的总体结构,也就是贴合着游戏玩法,将故事的呈现自然地嵌入游戏流程当中。&lt;/li&gt;&lt;li&gt;(如果有故事的话)游戏中的符号既非常符合呈现玩法信息的要求,又非常符合呈现故事信息的要求。使故事的主题展现自然地嵌入玩家游玩游戏的体悟中,角色在故事压力下的抉择对应着玩家在规则压力下的选择,角色成长魅力的呈现贴合着玩家在玩法中的成长,让游戏带给玩家的情绪变化自然在故事高潮的力量中上升为情感的变化。在这种情况下,游戏的高潮将震撼玩家,从而让玩家与游戏产生情感链接。&lt;/li&gt;&lt;li&gt;审慎地植入价值观,确保游戏中呈现出的价值观是玩家群体能够接受的。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;但游戏这一媒介处于一个极其复杂的外部环境中,达成了上述条件只是游戏叙事被评判为“好”的基础。&lt;span style=&quot;font-weight: bold&quot;&gt;游戏的叙事内容还需要:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在产业中,经历项目内部的、公司内部的、发行商的评判。&lt;/li&gt;&lt;li&gt;在流媒体平台中进行宣发,经历平台用户的打量。&lt;/li&gt;&lt;li&gt;随后经历发售平台、国家制度的审核。&lt;/li&gt;&lt;li&gt;发售后,经历玩家的体验与评价。&lt;/li&gt;&lt;li&gt;形成玩家社区后,在玩家反复的二次创作中不断经受提炼与审视。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;可以说,要闯过以上众多难关,最终形成一个好的风评,才能被称作为“好”。这么看来,这简直是地狱难度。我试图在这里再额外提供一些“好”的维度参考,以帮助大家的叙事内容渡过上述难关。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;商业性&lt;/span&gt;&lt;/li&gt;&lt;li&gt;我想没有游戏开发者会认为这是一个不重要的维度,所以我必须把它列在这里。但这个维度很宽泛也很概括,与其看我这个失业小文案夸夸其谈,感觉不如去问Deepseek。我就不耍大刀了。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;创新性&lt;/span&gt;&lt;/li&gt;&lt;li&gt;玩家渴望着新的叙事体验,而行业也渴望着新的前进方向。游戏的叙事内容在满足上述五个条件后,如果还具备创新性,那不可能不受到欢迎。&lt;/li&gt;&lt;li&gt;叙事创新最终体现在能否让玩家感叹:“原来游戏故事还能这样讲”。 真正有价值的叙事创新应满足下面两个条件:&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;提供前所未有的体验,能在玩家认知中建立新范式。例如《黑暗之魂》的碎片叙事。&lt;/li&gt;&lt;li&gt;激发行业模仿与迭代。例如《极乐迪斯科》的对话呈现方式。&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;而在上文的虚构层、故事层的逻辑下,我觉得从下面这两个方面探索可能更易实现叙事创新,给大家作为参考:&lt;/li&gt;&lt;li&gt;虚构层与游戏规则更深层次的结合。例如《巴别塔圣歌》。例如《1001夜》 探索基于对话AI的创意叙事游戏玩法 。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt; &lt;a href=&quot;https://www.1001nights.ai/zh&quot; target=&quot;_blank&quot;&gt;首页 | 1001 Nights&lt;/a&gt; &lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;叙事顺序/叙事方式的创新。例如《十三机兵防卫圈》的网状叙事。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;社群话题性&lt;/span&gt;&lt;/li&gt;&lt;li&gt;在平台时代,玩家的评价越来越决定一款游戏的生死,玩家社区的活跃程度也越来越决定一款游戏的生命周期。所以我会建议在叙事设计时便尽可能考虑当代玩家的需求,考虑创造社群话题性。&lt;/li&gt;&lt;li&gt;如果游戏的叙事能够在宣发时在玩家社区中创造有积极影响的话题,可能会帮助游戏的销量提升一个数量级,例如《幻兽帕鲁》《米塔》。&lt;/li&gt;&lt;li&gt;如果游戏的叙事内容留有足够的空间供玩家长期挖掘话题,那么便可以形成良好的二创生态,极大提升玩家留存率和游戏影响力的持续时间,例如东方Project、《碧蓝档案》。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;艺术性/审美价值&lt;/span&gt;&lt;/li&gt;&lt;li&gt;我在之前的文章中抨击了完全将游戏作为个人表达艺术来创作的方式,但那是在罔顾游戏团队创作的形式、罔顾游戏本身性质与设计原理的前提下。而一个游戏作品如果只是纯粹的文化工业的产品,那再成功的商业成绩也只会让它在历史的长河中昙花一现。只有艺术性能让游戏叙事超越时代的限制,为代代的玩家带来超越时代的审美体验与感动。&lt;span style=&quot;font-weight: bold&quot;&gt;艺术性仍旧应该作为叙事设计的最高追求。&lt;/span&gt;&lt;/li&gt;&lt;li&gt;那什么是艺术性呢?我采用了张世英先生在《哲学导论》中的回答:&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;以有限表达无限,或者说,以有限超越有限。&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;一个游戏作品超越有限的程度,决定了它的艺术性的强弱,也决定了它审美价值的高低。&lt;/li&gt;&lt;li&gt;在这样的理解下,游戏叙事需要追求在有限的内容中,传递超越无穷时间、无限空间的感动与哲思,去折射我们的“生活世界”,去叩问我们这样渺小的生命在这样的无穷和无限当中,有着怎样的意义和出路。我想,这就是《蔚蓝》《星际拓荒》为什么伟大的原因。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;736&quot; height=&quot;890&quot; src=&quot;https://image.gcores.com/5188a9a8b2cfffede53a7f048305e33e-736-890.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;&lt;/p&gt;&lt;h1&gt;四、如何落地游戏叙事设计?&lt;/h1&gt;&lt;p&gt;在开始这一部分之前我必须声明,游戏叙事设计没有标准流程。&lt;/p&gt;&lt;p&gt;我下面提供的只是基于上文中对游戏叙事认识的理想化的流程。而项目需求是千变万化的,开发实际也是千变万化的,每个人擅长与不擅长的部分也千差万别。对于游戏叙事的设计者来说,什么是媒介视角?就是既要尊重叙事理论,也要尊重开发实际,尊重团队创作的形式。&lt;/p&gt;&lt;p&gt;所以,所有的流程一定开始于与团队成员的沟通。请在理想化的流程的基础上,在开发过程中积极探索适合自己团队的工作流。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;注意:以下故事相关的术语皆来自于罗伯特·麦基《故事》,这里限于篇幅,便不展开解释一些故事相关的原理了。而我会向任何想要学习故事写作的人推荐这本书。&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;前期准备&lt;/span&gt;&lt;/li&gt;&lt;li&gt;首先了解大家期望本项目的叙事要达到什么效果,跟团队一起确定本项目叙事的主要目标。&lt;/li&gt;&lt;li&gt;与团队成员沟通,了解大家对叙事的认知程度,以及对本项目叙事内容的一些愿景。尤其需要与美术、音频沟通,了解他们的风格,以及他们希望在本项目中创作什么。&lt;/li&gt;&lt;li&gt;尝试统合大家的想法与灵感,做一些取舍。一起配合玩法的设想拟定一个大概的叙事方案,初步设想虚构层风格与结构,一些核心的符号。设想一些故事层的要素,例如主要的叙事顺序与叙事方式,设想主角形象,以及确定需不需要故事等。&lt;/li&gt;&lt;li&gt;与相关岗位的团队成员商量好对接的流程,初步建立起工作流。如果在建立工作流的过程中,感到大家对叙事的认知水平有差距,或还没有对本项目的叙事达成较为统一的认知,可以根据需要将叙事目标和初步设想总结为一份叙事规范,并在叙事规范中科普一些叙事相关的知识。然后用生命去逼迫大家仔细看这份叙事规范。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;确定虚构层结构,与核心符号&lt;/span&gt;&lt;/li&gt;&lt;li&gt;确定好核心玩法后,需要确定下虚构层结构,与核心玩法相关的符号。例如在一个攀登模拟游戏项目中,确定好玩家扮演的主角是什么?他利用什么攀登?攀登的是什么?往下是什么?往上又会见到什么?&lt;/li&gt;&lt;li&gt;确认上述内容后,实际也就基本定下了项目的叙事风格,可以再次与美术、音频对接,看他们是否能接受这样的风格。可以与美术、音频协商,创作一些早期的概念设计,进一步统一团队成员对项目的想象与愿景。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;确定叙事顺序与叙事方式&lt;/span&gt;&lt;/li&gt;&lt;li&gt;与负责玩法的策划确定预期的游戏流程长度,以及流程中是否有重要的节点需要叙事配合。配合预期的玩法流程确定需要采用的叙事顺序,搭配相符的叙事方式。再次与负责玩法的策划沟通,尽力让叙事顺序与叙事方法更好地融入流程。例如在攀登模拟游戏项目中,确定好需要故事配合玩法,而预期的流程长度为一个小时,那故事便只能是短篇;流程为关卡制,有关卡切换,可以配合关卡切换设计场景变化、时间变化等符号的变化;关卡中有休息点,可以作为主要的叙事节点,在休息时用自由选择对话、演出的方式呈现故事;而可以在关卡中穿插一些Bark来连缀叙事表现。&lt;/li&gt;&lt;li&gt;这一个部分是最有创新空间的部分,也是再往下推进后就难以回头修改的部分,可以多花一些时间在这里迭代。&lt;/li&gt;&lt;li&gt;如果项目不需要故事的话,便可以直接跳跃到确定角色设计的步骤了。如果项目甚至不需要角色的话,便直接跳跃至丰富世界观设定的步骤了。如果项目甚至不需要世界观,那可以直接建立并维护叙事符号库,然后开始最后的具体的文本设计了。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;确定故事矛盾、故事结构&lt;/span&gt;&lt;/li&gt;&lt;li&gt;如果项目需要故事的话,务必先配合以上两个步骤的结果,先确定好故事的矛盾,也就是故事的结构。例如在攀登模拟游戏项目中,向上和向下的对立是虚构层最核心的结构,那便可以将向上和向下确定为故事的核心矛盾之一。思考向上和向下在故事中分别代表着什么,我们在故事中是希望主角最终选择向上?还是向下?主角配合着玩法流程在故事的结局该是一个什么样的状态?这种矛盾结构是否缺乏内涵,是否需要再加入一对矛盾丰富故事的内涵?&lt;/li&gt;&lt;li&gt;这个过程也建议反复迭代。&lt;/li&gt;&lt;li&gt;而在流程大致确定的情况下,故事的结构确定下来,实际也就基本确定下来了主角的成长弧光,以及项目想要传达的主题。这时需要再次与团队成员沟通,初步设想主角形象,初步设想故事开头、故事高潮、故事结局时的情景。&lt;/li&gt;&lt;li&gt;请美术老师为上述情景画一些简单的故事板,再请音乐老师配合故事板做最初的配乐demo。不要吝啬这些工作量,这其实是再次统一团队成员对项目的想象与愿景的过程。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;确定角色设定&lt;/span&gt;&lt;/li&gt;&lt;li&gt;在初步的主角设想的基础上,确定好主角的各种设定。包括外观、性格与气质、背景故事、成长弧光等。确定好主角相关的符号,向美术提出正式的人设需求,并配合美术对人设进行反复迭代,直至最终定稿。&lt;/li&gt;&lt;li&gt;可以视需求的优先级陆续设计其他角色。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;构建故事大纲&lt;/span&gt;&lt;/li&gt;&lt;li&gt;初步定下故事的高潮,再从故事的高潮反推整个故事,逐步写下故事大纲。我建议一定要从高潮反推,高潮对游戏故事的重要性不言而喻,而只有这种方式才能保证高潮的质量。要尽可能避免《咒术回战》的下场。&lt;/li&gt;&lt;li&gt;故事大纲尽可能以幕、序列、场景的卡片结构构筑,此时至少要精确到序列,并尽可能精确到一些重要的场景。这里的场景并不是指游戏场景,而是指的是剧作理论中包含一个价值变化事件的剧本单位。而标注出激励事件、幕高潮、序列高潮。然后再反复迭代。&lt;/li&gt;&lt;li&gt;请再次与团队成员沟通并对大纲达成共识。而如果美术有余力的话,请在不受伤的前提下继续逼迫他们根据大纲自由创作一些故事板。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;丰富世界观设定&lt;/span&gt;&lt;/li&gt;&lt;li&gt;与美术一同丰富世界观设定,为游戏在世界观设定的组织下加入更多的符号,为后续的UI设计、场景设计等工作提供支持。&lt;/li&gt;&lt;li&gt;视项目需求,为美术提出一些正式的概念设计的需求,并帮助美术迭代概念设计。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;细化故事大纲至细纲&lt;/span&gt;&lt;/li&gt;&lt;li&gt;细化故事大纲,直至精确到场景。如果可以的话,标注出每个场景中故事的价值变化,看看是否能对应上玩法上的价值变化。继续迭代细纲。&lt;/li&gt;&lt;li&gt;在迭代细纲的过程中,根据故事需要,细化各种之前的步骤中没有来得及完成的设计。例如配角的设计、场景的设定、怪物的设定等。这个过程中,也需要反复与团队成员达成共识。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;建立并维护叙事符号库&lt;/span&gt;&lt;/li&gt;&lt;li&gt;如果项目的符号较多,便需要建立一个专门的文档,画出虚构层的结构、故事的结构。并统计上述步骤中使用到的一些主要的符号,标明它们的意义,它们的关系。在来得及更改的情况下,可以尝试精简符号。&lt;/li&gt;&lt;li&gt;再次与团队沟通,并就这份文档达成共识。这份文档的主要目的是为了给美术、音频在进行设计时提供符号选择上的参考,保证虚构层的优美。请在符号有更改时及时维护这份文档,并通知相关团队人员。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;具体的文本设计与迭代&lt;/span&gt;&lt;/li&gt;&lt;li&gt;到这一步不同项目的需求就完全不一样了。但无论如何,积极主动地与团队成员沟通,协助他们的设计工作,并保证团队对叙事内容达成共识都是必不可少的。这一切的努力都是为了实现优美的虚构层,若在团队没有共识的情况下进行开发,便常会出现美术画出的一些元素不太好融入现有的符号体系当中去的情况,这样的元素增多便会使虚构层显得松散,甚至影响世界观的可信度,从而影响到玩家的沉浸感。&lt;/li&gt;&lt;li&gt;同时,迭代也是必不可少的。相信最开始的灵感一定不是最好的选择,经得起审视的艺术是在打磨中练就的,或者会在打磨中变得更好。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;我在这里放上攀登模拟游戏项目的叙事设计文档。它比较细致地展示了我从无到有构建叙事框架的过程,可以供大家参考。当然,当时的我一定还有做得不够好,或者做得不好的地方(比如对白),大家也可以当做反面案例。&lt;/p&gt;&lt;blockquote&gt; &lt;a href=&quot;https://coffee-ozraraptor-e96.notion.site/188f588b1c638010a204c5b71f8497be&quot; target=&quot;_blank&quot;&gt;《伊卡洛斯之旅》叙事设计&lt;/a&gt; &lt;/blockquote&gt; &lt;figure&gt;&lt;img width=&quot;736&quot; height=&quot;895&quot; src=&quot;https://image.gcores.com/f81b1b7c7a38e15e385d3ec92de140a3-736-895.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;h1&gt;结语&lt;/h1&gt;&lt;p&gt;以上内容仅是我个人对游戏叙事认知的阶段性总结。 我利用媒介学、游戏学、叙事学、符号学、结构主义、故事原理的一些知识搭起了我自己的认知框架。我认为这当然不是真理,我将它分享出来,只是希望抛转引玉。我非常欢迎大家来提出自己的见解、指出我的不足之处。 &lt;/p&gt;&lt;p&gt;游戏叙事这片土地本就没有标准答案。有人用《最后生还者》证明线性叙事的生命力,有人用《极乐迪斯科》展现文本深度的可能性,也有人用《动物森友会》诠释&quot;无剧情&quot;中的叙事魔法。我们像在不同山径上攀登的旅人,最终都在用自己的方式丈量游戏叙事的维度。&lt;/p&gt;&lt;p&gt;我们搭建认知框架的意义,或许就像工匠打磨自己的工具——不是为了雕刻出完美无瑕的雕像,而是为了让每一次下刀都更稳、更深、更贴合游戏的肌理。当方法论在实践中反复淬炼,当个人经验与集体智慧不断碰撞,我们或许终将触摸到那个本质:好的创作不是对理论的刻板复刻,而是让知识沉入潜意识,再随着创作者的生命体验自然流淌的过程。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;736&quot; height=&quot;903&quot; src=&quot;https://image.gcores.com/860428a5285f7d2502ed9a234eca385c-736-903.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/194189</link>
      <guid isPermaLink="false">gcores-194189</guid>
      <pubDate>Mon, 03 Feb 2025 01:02:49 GMT</pubDate>
      <author>木鱼鱼鱼鱼鱼鱼</author>
      <enclosure url="https://image.gcores.com/98b4aadab80aa6319c914a0fba8610a8-1275-718.jpg" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/98b4aadab80aa6319c914a0fba8610a8-1275-718.jpg"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3" length="3282" type="audio/mp3"></enclosure>
      <itunes:duration>0:54:42</itunes:duration>
      <category>创作笔记</category>
    </item>
    <item>
      <title>《艾尔登法环》驱暗地下墓地拆解</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;《艾尔登法环》驱暗地下墓地拆解&quot; src=&quot;https://image.gcores.com/40b26a9c8a4ce23762e1317dd80bf9d8-853-480.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/8b670a4b-4c60-4386-9281-2a5ac2530ced.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/8b670a4b-4c60-4386-9281-2a5ac2530ced.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/8b670a4b-4c60-4386-9281-2a5ac2530ced.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;引入新玩法,到场景玩法相结合的轻量关卡&lt;/blockquote&gt; &lt;p&gt;本拆解由Sprout和蓝小柚联合完成@蓝小柚&lt;/p&gt;&lt;p&gt;一、 关卡介绍&lt;/p&gt;&lt;p&gt;驱暗地下墓地是尔登法环dlc中作为两个区域的连接枢纽。它的位置是从幽影城打完黄金河马后从城底积水处一路向西南方向前进,跳下两处悬崖石碑,它也是前往颠火森林的入口。由于进入墓地中一片漆黑,需要在黑暗中一边杀怪一边点灯,还要面对大炮的袭击,因此这个墓地也是玩家的噩梦。&lt;/p&gt;&lt;h1&gt;二、 地图总览&lt;/h1&gt;&lt;p&gt;整个地下墓地由三部分组成,地下一层和二层地图都呈环形,地下三层则有一个大炮正面攻击。每一层的连通度都很高,由于每一层都有中庭,玩家在墓地中探索时,每经过一个封闭空间都会重新回到一个视觉上能看到中庭的位置,因此玩家可以在前进过程中定位到自己的位置,比本体鬼打墙的地下墓地识别性高很多。&lt;/p&gt;&lt;p&gt;(地图的比例尺寸均经过测量,和游戏中大致相同。灰色部分为玩家可达区域,三种颜色的灰度分别代表了三种高度,灰色为玩家到达该层的高度,浅灰则是相对高处,深灰则是相对低处。黑色是中庭部分,中庭是中空悬崖,若不慎跌落则判定死亡。黄色三角形为赐福点,蓝色圆圈是宝箱,蓝色方块是宝箱,红色的×是怪的位置,绿色标记是梯子,紫色标记是每层楼开灯的开关,楼梯的箭头方向表示按主路探索前进时楼梯向下或者向上的方向)&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;地下一层&quot; width=&quot;1304&quot; height=&quot;1437&quot; src=&quot;https://image.gcores.com/c5153ec60a6cb9b434b3415ae5c45c25-1304-1437.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;地下二层&quot; width=&quot;1223&quot; height=&quot;1432&quot; src=&quot;https://image.gcores.com/954802dcdab5890a3ba0d7bf7ee27aeb-1223-1432.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;地下三层&quot; width=&quot;2041&quot; height=&quot;1640&quot; src=&quot;https://image.gcores.com/1075628b4c8ba712e76da46f193311d2-2041-1640.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;地下四层&quot; width=&quot;289&quot; height=&quot;876&quot; src=&quot;https://image.gcores.com/c8ddd8ecf6cc4c048df9ab47827dd1aa-289-876.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;&lt;/p&gt;&lt;h1&gt;三、玩法解析&lt;/h1&gt;&lt;p&gt;驱暗地下墓穴是老头环中,第一次将机关与场景灯光结合在一起的关卡,通过打开机关,改变场景光线(获取的信息量不同),来改变关卡的整体结构(信息量不足时,很多结构容易被忽略),这个做法如同关卡《沉水礼拜堂》(即机关开启前路线较为线性,机关开启后关卡结构改变,有更多可探索内容,让玩家感到新奇)。&lt;/p&gt;&lt;p&gt;此前地下墓穴的机关大多代表着”打开某个门“,这里使用方式做了个修改,也算是复用,若还希望打造与“驱暗地下墓穴”和“沉水礼拜堂”一样玩法的关卡,则可以同样在视觉上做文章,通过机关改变灯光朝向,灯光正在照射的路才是可以通过的路(某个地下墓穴有用照射光做过文章),这样让玩家在几条预设路线中自行修改,探索,玩家也会觉得有自主权。&lt;/p&gt;&lt;h1&gt; 四、 区块空间分析&lt;/h1&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;地下一层&lt;/span&gt;&lt;/p&gt;&lt;p&gt;通常法环的地下墓地中,都会有一个临近火点的怪①。这个怪通常代表了这个地下墓地中会出现的最普通的怪的类型和攻击方式,类似于给玩家一个预告。——给玩家建立的预期&lt;br&gt;玩家会被尽头的道具所吸引,拾取道具时会被后方的怪物偷袭。晦暗的场景和偷袭的怪物都在强调——该墓穴非常危险,探索需谨慎。(建立共识)&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1983&quot; height=&quot;1068&quot; src=&quot;https://image.gcores.com/3bae1490972c1f71538296ffd72115d5-1983-1068.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1304&quot; height=&quot;1437&quot; src=&quot;https://image.gcores.com/4a516fca9e3b5f4e7410ccec74abe588-1304-1437.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;随手玩家返回时发现通往下方的道路,给予玩家惊喜的同时再给玩家树立目标,加入了玩法变量。&lt;br&gt;玩家进入到第一个观察平台后,能在漆黑的环境下看到一个光亮位置有一个机关②。由于一片漆黑,所以玩家看不到远处任何空间或道路,只能向这个机关前进,树立玩家短期目标。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1973&quot; height=&quot;931&quot; src=&quot;https://image.gcores.com/58d56808cca826ae0c85c45f61087d50-1973-931.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1304&quot; height=&quot;1437&quot; src=&quot;https://image.gcores.com/e4140aa4de43a475ba18bde1935dfe3b-1304-1437.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;该机关位处于隐藏门③后,较为隐蔽,但设计师又希望玩家优先打开机关,于是又加入了二次引导(光线引导)。&lt;br&gt;问题来了,此前没有给玩家建立过,打开机关=场景变亮 这么一个机制的认知(引导不到位)&lt;br&gt;玩家在心里对于机关的优先级并不是最高的。这样一来玩家的动线就变得有些不可控了(开不开机关明显是两条动线)&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1918&quot; height=&quot;949&quot; src=&quot;https://image.gcores.com/0f2c2a5d2fa02538f6447181e17e9796-1918-949.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1931&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/40370b4ca877e1d7ba81ce5ff2f69515-1931-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1304&quot; height=&quot;1437&quot; src=&quot;https://image.gcores.com/052919e26dcce0542d823939bbc24f91-1304-1437.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;在玩家下楼梯的过程中,会被通道口的小炮台怪④给吸引,随后来到观察点⑤,能再次看到被点亮的机关,给玩家二次强调这个机关的位置,引导玩家回去刚刚的空间发现隐藏门③,并开启机关,点亮这层的空间。&lt;/p&gt;&lt;p&gt;假设我们优先找到了隐藏门的位置并打开了机关,那么玩家会优先获得的信息是有条小路可以通往未知,吸引玩家前往。玩家通过先前的观察点⑤跳到小路⑥,即可到刚刚的未知夹层,获取宝箱,这算是给玩家的解开机关谜题的一个奖励。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1954&quot; height=&quot;964&quot; src=&quot;https://image.gcores.com/06b2117f26ab8ec8c90fc66f7fbae63e-1954-964.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1304&quot; height=&quot;1437&quot; src=&quot;https://image.gcores.com/ce21ce2d06c35e100c754029ca85873b-1304-1437.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;打开宝箱后玩家的视线被锁定在通往下个楼层的道路上(玩家不知道道路通往下个楼层,但视角问题,他会知道这有条路)&lt;br&gt;于是乎中间部分黑暗的场景+怪物会被玩家忽略掉(复用率不高),若玩家优先探索中间的部分,则一定会走回头路(体验不好)&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;2010&quot; height=&quot;981&quot; src=&quot;https://image.gcores.com/34c8677ad26161cc126c3b4fe3c22aa3-2010-981.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1304&quot; height=&quot;1437&quot; src=&quot;https://image.gcores.com/60f01136832429f236cc46048d7b61e0-1304-1437.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;若玩家优先向下探索(不开开关),则玩家容易忽略掉上述的宝箱,这样做问题倒还不大,玩家会觉得是因为自己的马虎导致遗失物品,同时在之后获得时也会有较好的体验。但会导致设计师仍未把 &lt;span style=&quot;font-weight: bold&quot;&gt;开机关=点亮地图&lt;/span&gt;,这么一个逻辑教给玩家。后续的体验会更加不可控。&lt;br&gt;玩家可以一路狂飙莽过关卡(充分体验战斗,但关卡设计的意义就不大了),也可以慢找机制,地毯式的推过关卡。但这种体验的优先级应该由设计师建立,同时也要最高程度地保证资源不浪费(复盘时的思考,设计时只会考虑落地要消耗多少资源)。 &lt;/p&gt;&lt;p&gt;随后我们前往二层。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;地下二层&lt;/span&gt;&lt;/p&gt;&lt;p&gt;来到观察点⑨,此时我们还无法看到黑暗空间中的机关亮光,此刻左边的路线⑩(黄色)更近且更明显,走左边的路会被小怪吸引,攻击小怪时会被头上的老法师⑪阴,逼迫玩家向红色箭头方向前进。这里明显是设计师刻意为之,刻意给玩家制造烦恼,加深印象,留下伏笔。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1958&quot; height=&quot;970&quot; src=&quot;https://image.gcores.com/af8bc799c6b584c27f5ce4e922471fab-1958-970.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1223&quot; height=&quot;1432&quot; src=&quot;https://image.gcores.com/3a6060752304b14ef56a69ac45aee5f0-1223-1432.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;玩家向右侧道路前进时,蜡烛亮光才会显示出来,这里很明显地用蜡烛高光告诉玩家——那有个机关,要先找到机关去点亮场景。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1942&quot; height=&quot;952&quot; src=&quot;https://image.gcores.com/232f1447c017fc2a06a57611bc76ce72-1942-952.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;玩家前进时会发现前方有个空间可以进去探索,走到尽头时会被扒在柱子上方的小怪袭击,这里就会迫使玩家向后看,看到前一根柱子背面有个向上的梯子⑫,这里能进入二层夹层,通往开开关的空间。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1592&quot; height=&quot;911&quot; src=&quot;https://image.gcores.com/4b8e3488e132944a6201959192f684a9-1592-911.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1223&quot; height=&quot;1432&quot; src=&quot;https://image.gcores.com/ebad4d413bbf45b4e51b0ce3a020ff68-1223-1432.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;点亮机关,场景高亮之后玩家会发现对面有梯子A⑬,通过梯子可以解决刚才阴我们的法师,并且获得一定量的奖励,同时从解决法师的屋子出来时,在先前的观察点⑨,我们会在对面发现第二个梯子B⑭(这点更关键)让玩家产生好奇心,吸引玩家探索。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;2021&quot; height=&quot;969&quot; src=&quot;https://image.gcores.com/29d99d2ac47e5f7a1d5d7dd91843669f-2021-969.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1323&quot; height=&quot;922&quot; src=&quot;https://image.gcores.com/c0dfcc8dbbf34007533a7c53e1b3ad45-1323-922.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1223&quot; height=&quot;1432&quot; src=&quot;https://image.gcores.com/2b3a409cfa58969c90c2e84e06ba712a-1223-1432.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;此时玩家就可以按照既定的路线,拿完这层的所有奖励并直接通向下一层。&lt;/p&gt;&lt;p&gt;但此处的问题是玩家会发现还有一部分区域⑯没有探索,玩家需要走大量的回头路才能将地图在脑内打通,并且这部分回头路并没有同等价值的奖励(区域⑯内没有高价值奖励),不及玩家预期。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1223&quot; height=&quot;1432&quot; src=&quot;https://image.gcores.com/4d5c288d2daa0cfa903460f310b0526f-1223-1432.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;若玩家没有发现梯子,径直沿道路向下探索,会发现有个地方去不了,有个奖励拿不了,成功引起玩家好奇心,我们称之为盲点A。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1680&quot; height=&quot;895&quot; src=&quot;https://image.gcores.com/b983342e6f5ab8692a29608aafab4c2b-1680-895.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1223&quot; height=&quot;1432&quot; src=&quot;https://image.gcores.com/13d709729f4d6a0e7875ef1de0f2204b-1223-1432.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt; &lt;/p&gt;&lt;p&gt;从设计的体验上来可以反推,梯子A的主要价值是为了让玩家发现梯子B,获得一次回环体验(探索与否都行),梯子B的价值是快速到达下方获得道具(战斗压力较低,但较隐蔽)。&lt;/p&gt;&lt;p&gt;总结这一层有两种动线:&lt;/p&gt;&lt;p&gt;1. 若玩家在第一次探索时就发现了梯子B,则可以用短距离高回报的方式结束这一层的主要内容探索。但若玩家好奇剩下的区域⑯内容,则需要走长距离的低回报回头路,主要以战斗为主。这块区域玩家可以选择不去,但关卡中并没有提示两个区域的权重。&lt;/p&gt;&lt;p&gt;2. 若玩家在第一次探索时没有发现梯子B,则可以在有探索目的驱使下,回去寻找盲点A的位置,从而发现梯子B。最好的办法是在玩家第一次探索发现盲点A时死亡,强迫玩家去发现梯子B。(加强盲点A后的战斗强度即可达到目的)&lt;/p&gt;&lt;p&gt;不难看出,二层相对于一层是做了体验强化的,给了更完整的谜题以及更好的体验。但后续的体验越好,前期的问题越明显。若玩家在一层是莽过去的,没有建立起拉机关=点亮场景的共识,后续的设计则全为徒劳。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;地下三层&lt;/span&gt;&lt;/p&gt;&lt;p&gt;到了三层,玩家会迎头碰上高台上的大炮兵,需要点亮机关后将其击杀。这里的体验以及设计都比较明显,故不加以讲解。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1961&quot; height=&quot;961&quot; src=&quot;https://image.gcores.com/5d183e759043c3c555c99501ff3a803e-1961-961.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;一二三层用的都是相似的机制,但一层偏向于解密和机制教学,二层是深化解密,三层是战斗变奏(直接拉高了紧张强度),以一个强烈的机制+战斗作为结尾,从而结束关卡,符合峰值效应。&lt;/p&gt;&lt;h1&gt;总结&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;1.&lt;/span&gt; &lt;span style=&quot;font-weight: bold&quot;&gt;关于引导&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;手机游戏是非常卷教学的,教学的越好受众越多,在国内手游教学已经到了胎教基本的如今,在关卡上的教学也应当更为细腻。而驱暗地下墓穴的机制教学就还差一些,若在玩家刚进入纯黑关卡时就引入机关,在玩家心里建立 “拉机关=点亮场景”的认知,则整体体验会更加可控,也更好玩一些。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;2.并非所有回头路都没有意义&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;在我们的关卡推演中,是需要玩家分一次探索和二次探索的,如何让玩家在推进一次关卡时完成一次探索和二次探索呢?(即如何让玩家回到原点)&lt;/p&gt;&lt;p&gt;本关卡是采用加强战斗强度,让玩家死一次的思路(简单粗暴,成本低,但更为不可控)。净身小教堂是以篝火点为中心做了个四通八达的关卡(成本巨高无比,可控,但无法批量生产)&lt;/p&gt;&lt;p&gt;在玩家有目的性进行二次探索时,回头路就有意义。玩家的脑中会自发性地充斥着“我到底哪里漏了”,而并非“这关卡路又臭又长”,是个很好拉长玩家游戏时间的想法。(但作为demo视频观感较为不好,云游戏和实际游戏是两个体验,代入感差距太大)&lt;/p&gt;&lt;p&gt;希望有机会将这种想法落地实践一下。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;3.关卡区域&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;驱暗地下墓地采用了电梯分层的方式,并且都围绕每层的中庭进行探索,增强地图辨识度,让玩家能更快定位在地图中的位置。通过点灯这一机制,加强玩家探索的驱动力和对地图的熟悉度。与艾尔登法环本体中的很多地下墓地不同,本体的地下墓穴多是层层向下,并且基本为线性走廊串联几个战斗空间,玩家只有一直被怪驱使向前探索的动机,对自己的位置和对地图的掌握并不清晰。而驱暗地下墓地有着更清晰的分层地图,每层对应一个关卡强度和节奏,可以让玩家完成一层探索时能有喘息的时间。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;4.关卡节奏&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;“引入机制、深化谜题、结合战斗”,很明显的三板斧。在做关卡时可以考虑使用一下这个套路。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/193582</link>
      <guid isPermaLink="false">gcores-193582</guid>
      <pubDate>Wed, 22 Jan 2025 13:00:00 GMT</pubDate>
      <author>Sprout_Schrub</author>
      <enclosure url="https://image.gcores.com/40b26a9c8a4ce23762e1317dd80bf9d8-853-480.jpg" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/40b26a9c8a4ce23762e1317dd80bf9d8-853-480.jpg"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/8b670a4b-4c60-4386-9281-2a5ac2530ced.mp3" length="761" type="audio/mp3"></enclosure>
      <itunes:duration>0:12:41</itunes:duration>
      <category>知识挖掘机</category>
    </item>
    <item>
      <title>Godot入门到弃坑:再见敌人</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;Godot入门到弃坑:再见敌人&quot; src=&quot;https://image.gcores.com/0f06022bf7b8722ab47d4f0413b7a384-1141-643.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;blockquote&gt;敌人又来了,还是你又来了&lt;/blockquote&gt; &lt;p&gt; 之前在2D部分做过一个简单的敌人。这次在3D中又来做一个简单的敌人。 &lt;/p&gt;&lt;h2&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;敌人的表示&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;我们先来实现一些基本的功能,暂时不关心它的具体视觉表现。所以我简单地用一个胶囊表示就行了。当然你也可以导入一个3D模型什么的。&lt;/p&gt;&lt;p&gt;当然,如果你像我一样懒,只给了一个简单的&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;MeshInstance3D&lt;/span&gt;占位的话,那么记得再给它个什么东西表示他的前方。不然我们不好调试。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;738&quot; height=&quot;543&quot; src=&quot;https://image.gcores.com/6fbb8ad223a4757d5a248805a76ef207-738-543.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;根节点依然用方便的&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;CharacterBody3D&lt;/span&gt;,但是和玩家不同,就目前来说不需要给它摄像机。添加脚本即可。&lt;/p&gt;&lt;p&gt;由于我们不需要控制敌人,所以脚本模板中只需要留下重力相关的代码即可。&lt;/p&gt;&lt;h2&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;看向玩家&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;这里说的行为其实算是敌人AI的一部分。要实现敌人的AI,其实没那么简单。我们也没法在一篇文章中说完(可能“永远”也说不完)。我们先做一个看向玩家的功能。例如我们想要实现,“玩家离敌人只有5m的时候,就看向玩家”。&lt;/p&gt;&lt;p&gt;首先的问题是,如何判断和玩家的距离?&lt;/p&gt;&lt;p&gt;如果&lt;span style=&quot;font-weight: bold&quot;&gt;一定要&lt;/span&gt;计算两点之间的距离,我们应该使用&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Vector3&lt;/span&gt;的&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;distance_to&lt;/span&gt;或者&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;distance_squared_to&lt;/span&gt;来求得(毫无疑问&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Vector2&lt;/span&gt;也有对应的方法)。这是两个实例方法。后者会比前者快一些,后者计算的是没有开平方的距离。&lt;/p&gt;&lt;p&gt;两点距离是如何求得的?不要忘了,我们把点也视作向量。“AB间的距离”就是两点之间拉一个向量的长度。这个向量就是两点坐标之差。由于向量是有方向的,所以A-B得到的其实是从B指向A的向量。这里可能会显得反直觉,是需要注意的地方。当然,要计算的“距离”是一个标量,所以这里其实也不那么重要。&lt;/p&gt;&lt;p&gt;要推导出这个距离怎么算其实视角有很多,但是这里我肯定说中小学生都能理解的。在2D空间中,想象一条斜着的向量。这个向量在X轴上的投影(v),v末端和P的连线,构成了一个三角形。这个三角形斜边的长度——勾股定理知道吧?那你就会求向量长度了。两条直角边的长度恰好就是向量的两个分量。公式我就懒得打了,简单用伪代码表示就是&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;sqrt(x*x + y*y)&lt;/span&gt;,三维空间中也是一样,只不过是三个分量的平方和。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;721&quot; height=&quot;811&quot; src=&quot;https://image.gcores.com/4a0ed83a176c13cab233a35a2e40beb0-721-811.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;这就是求准确距离需要开方的原因,如果你不需要那么精确,那么就直接用没开方的结果即可。由于我们这里明确知道是“5m以内”,那么直接&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;position.distance_squared_to(player.position) &amp;lt; 25&lt;/span&gt;即可。当然这里你需要用一种办法在场景中找到player,然后每帧做这个运算去检查。&lt;/p&gt;&lt;p&gt;然而,这里实际上不用真的去算这个距离。还记得&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Area&lt;/span&gt;吗?一个可以用来检查是否有可碰撞对象的没有实体的区域。在3D中我们同样有&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Area3D&lt;/span&gt;来做这个事情。为Enemy套上一个&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Area3D&lt;/span&gt;,给它一个shape然后调整到适当大小,连上&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;body_entered&lt;/span&gt;即可检查玩家是否进入!具体操作不赘述。&lt;/p&gt;&lt;p&gt;注意,实际上这里需要调整碰撞层让它不检查enemy自己,因为&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;CharacterBody3D&lt;/span&gt;本身也要参与碰撞的。这里请自行调整或者偷懒。&lt;/p&gt;&lt;p&gt;接下来要实现“看向玩家”。直接说结论,需要使用&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Transform3D&lt;/span&gt;的&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;looking_at&lt;/span&gt;方法。名字已经很直白了,就是要让这个transform“看向”某个点。第二个参数指定“上方”,用这个方向确定这个transform会绕哪个方向转过去。默认就是Y轴正方向(通常意义的上方),所以调用时可以省略。&lt;/p&gt;&lt;p&gt;现在&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Area3D&lt;/span&gt;的&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;body_entered&lt;/span&gt;信号的处理函数大致是这样:&lt;/p&gt;&lt;pre&gt;func _on_area_3d_body_entered(body: Node3D) -&amp;gt; void:&lt;br&gt; if body is not FpsCharacter:&lt;br&gt; return&lt;br&gt; transform = transform.looking_at(body.position)&lt;/pre&gt;&lt;p&gt;为什么需要给transform赋值?因为&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;looking_at&lt;/span&gt;方法并不直接修改transform本身,它会返回一个新的&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Transform3D&lt;/span&gt;实例。&lt;/p&gt;&lt;p&gt;现在玩家进入Enemy的area时,敌人会一瞬间看向玩家:&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1152&quot; height=&quot;648&quot; src=&quot;https://image.gcores.com/f11ce58f882c8a3d443c9c6a3a7db3a7-1152-648.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt; &lt;/p&gt;&lt;p&gt;有被吓到。如果这是你想要的效果,那也行。但是你可能期望可以看到敌人转身,哪怕转身很快也要能看到这个过程感觉才真实。当然,这里也不是bug,因为你代码就是这么写的。我们就是在某一帧里直接设置了transform,所以这个变换肯定也是一瞬间完成。&lt;/p&gt;&lt;p&gt;如何解决?说白了,要达到这种效果,我们需要让这transform的这种变化,不在一帧中完成。但是我们只有起始值和最终值,如何获得在中间这些帧的值呢?&lt;/p&gt;&lt;p&gt;话都说到这个份上了,肯定就是要插值。&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Transform3D&lt;/span&gt;是一个相对复杂的数据结构,所以一般情况下不可能我们自己去插值。它提供了一个&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;interpolate_with&lt;/span&gt;方法来插值。第一个参数就是目标值,第二个参数为一个取值为0到1的值,就是说插值到哪里了。&lt;/p&gt;&lt;p&gt;先定义一堆变量:&lt;/p&gt;&lt;pre&gt;var turning = false&lt;br&gt;var turn_alpha = 0&lt;br&gt;var turn_time = 1&lt;br&gt;var turned_time = 0&lt;br&gt;var target_transform: Transform3D&lt;/pre&gt;&lt;p&gt;由于我们要在&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;Area&lt;/span&gt;的信号响应函数中确定何时开始插值,因此目标transform要在这里确定,但是要在其它函数中使用。在处理&lt;span style=&quot;font-family: monospace; word-wrap: break-word&quot;&gt;body_entered&lt;/span&gt;的函数中,我们不直接设置transform,只是确定目标并指出正在转向:&lt;/p&gt;&lt;pre&gt;func _on_area_3d_body_entered(body: Node3D) -&amp;gt; void:&lt;br&gt; # ...&lt;br&gt; if turning:&lt;br&gt; return&lt;br&gt; target_transform = transform.looking_at(body.position)&lt;br&gt; turning = true&lt;/pre&gt;&lt;p&gt;在&lt;span style=&quot;font-family: monospace; wor

@github-actions github-actions bot added the Auto: Route Test Complete Auto route test has finished on given PR label Feb 15, 2025
Co-authored-by: Tony <[email protected]>
Copy link
Contributor

Successfully generated as following:

http://localhost:1200/gcores/collections/64/articles - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>游戏开发设计心得分享 | 机核 GCORES</title>
    <link>https://www.gcores.com/collections/64?tab=articles</link>
    <atom:link href="http://localhost:1200/gcores/collections/64/articles" rel="self" type="application/rss+xml"></atom:link>
    <description>欢迎大家在机核分享交流 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>zh</language>
    <lastBuildDate>Fri, 21 Feb 2025 16:04:23 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>血条进化史 3.0 - 战斗时长和节奏</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;血条进化史 3.0 - 战斗时长和节奏&quot; src=&quot;https://image.gcores.com/e50ed90da099d86d6d0cf0a441bf10ed-480-192.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/e1bce263-992a-4e49-99cf-4233fbca9283.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/e1bce263-992a-4e49-99cf-4233fbca9283.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/e1bce263-992a-4e49-99cf-4233fbca9283.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;JAPAN Studio 是真的强得可怕&lt;/blockquote&gt; &lt;h1&gt;前言&lt;/h1&gt;&lt;p&gt;很经验主义 很主观的一个主题。然后强推一下 ICO &amp;gt; 旺达与巨像 &amp;gt; 食人的大鹫 这系列Sony的第一方工作室的作品,不管是游戏设计 技术力 表现力都十分惊人远超他们所在的时代。&lt;/p&gt;&lt;p&gt;文章讨论范围集中于真3D 实时战斗动作游戏为主,捎带一点射击游戏。 &lt;/p&gt;&lt;h1&gt;正常战斗的总时长&lt;/h1&gt;&lt;p&gt;一般来说装备 等级达标 且打过了的情况下的战斗时长的一些数据。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;传统MMO:类魔兽&lt;br&gt;代表战斗循环:小循环:GCD+技能轮换+职业资源管理 | 大循环:躲圈阶段-输出阶段 循环 | 躲圈阶段单人约15~30秒&lt;br&gt;战斗时长:约10+分钟&lt;/li&gt;&lt;li&gt;动作MMO:洛奇英雄传 / 剑灵 / 龙之谷&lt;br&gt;代表战斗循环:小循环:躲避-蹭刀 | 大循环:躲Boss关键技能-等待输出阶段-输出阶段疯狂输出&lt;br&gt;战斗时长:10分钟左右&lt;/li&gt;&lt;li&gt;ACT:怪物猎人:老猎人初见一般是10+分钟,近战针对配装后6~8分钟 远程逃课大约5分出头&lt;br&gt;小循环(普通飞龙种):怪物普通状 每次蹭刀机会之间间隔约12秒 怒后 17秒 疲劳约8秒&lt;br&gt;*我本来以为高清化后世界的战斗节奏会和之前的P2/XX等有很大区别,实际上计时一看区别很小。卡普空这套战斗节奏公式含金量是真的很高。&lt;br&gt;**很多诸如 噬神者 / 讨鬼传 / 灵魂献祭 / Dauntless / Wild hearts 都在MH基础上减慢或加快了节奏,但是就ACT合作狩猎这个题材来说 MH还是最成功的。&lt;/li&gt;&lt;li&gt;传统ACT:战神 10分钟左右 但是中间会有不少时长是Boss换阶段 召唤杂兵,实际每个战斗阶段持续时间只有2~3分钟&lt;/li&gt;&lt;li&gt;传统ACT:鬼泣 3~5分钟&lt;/li&gt;&lt;li&gt;现在的抽卡动作手游 - 3~5分钟&lt;/li&gt;&lt;li&gt;ACT:噬神者 GodEater 3~5分钟&lt;/li&gt;&lt;li&gt;ARPG:仁王 3~5分钟&lt;/li&gt;&lt;li&gt;传统ACT:3D忍龙 2~3分钟&lt;/li&gt;&lt;li&gt;ARPG:黑魂 - 2~3分钟&lt;/li&gt;&lt;li&gt;ACT:灵魂献祭 2~3分钟&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;小的循环交互对玩家注意力要求高 总战斗时长就不应该过长,但是如果小循环对玩家注意力/操作要求过低 游戏又容易显得没有紧张感 无聊,这个平衡的话参照现有游戏吧。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;怪物的攻击动画数量&lt;/span&gt;&lt;br&gt;怪猎:怪物一般普通状态 有5~6种攻击,然后 疲劳+愤怒后动作发生变化,很多都会出现不同派生。可以视为15种左右。一般来说玩家和怪物特定身位的情况下可能随机出3+种攻击。&lt;br&gt;魂系:Boss一般也是5~6种攻击,但是除少数2阶段Boss外,很少有派生。一般来说玩家和怪物特定身位的情况下,只会在2~3种攻击中随机出。且魂系Boss抬手长很多。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;其他游戏类型&lt;br&gt;&lt;/span&gt;手游Moba一局约10~15分钟 PC Moba一局约15~20分钟 彩六/CS约30分钟 Dota2也是约30分钟&lt;span style=&quot;font-weight: bold&quot;&gt;&lt;br&gt;&lt;/span&gt;Boss战时长 和Moba 或者说类守望先锋/彩六的英雄射击的单局时长和体验设计思路类似,或者说和MMO的当前版本毕业要多久的设计思路类似。需要贴合目标玩家的生活习惯。超休闲游戏 SLG可能现有版本就可以顶1年,但是 射击游戏 ACT哪怕每3个月稳定推出内容都不一定能稳住热度。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;魔鬼藏在细节里面&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;少了一颗钉子,丢了一只马掌; 少了一只马掌,折了一匹战马; 少了一匹战马,损了一位骑士; 少了一位骑士,输了一场战斗; 输了一场战斗,亡了一个国家。&lt;/blockquote&gt;&lt;ol&gt;&lt;li&gt;战斗动画的长短快慢&lt;/li&gt;&lt;li&gt;影响攻守转换循环时间&lt;/li&gt;&lt;li&gt;影响 Boss战的整体时长&lt;/li&gt;&lt;li&gt;影响玩家每一次重新打开游戏时那一次 gaming session 的时长和体验&lt;/li&gt;&lt;li&gt;影响玩家从入坑到弃坑整个life time的游戏体验&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;一环套一环 细节很重要,如果精力允许 务必打磨细致。&lt;/p&gt;&lt;h1&gt;战斗中下血的节奏&lt;/h1&gt;&lt;p&gt;宏观上的下血节奏&lt;/p&gt;&lt;ol&gt;&lt;li&gt;均匀下血&lt;/li&gt;&lt;li&gt;分阶段(玩家不能控制&lt;/li&gt;&lt;li&gt;分阶段(玩家能控制阶段转换&lt;/li&gt;&lt;li&gt;一击必杀&lt;/li&gt;&lt;/ol&gt; &lt;figure&gt;&lt;img width=&quot;3000&quot; height=&quot;2048&quot; src=&quot;https://image.gcores.com/d509159b0886c795ebc1664d6d63d935-3000-2048.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;2个游戏可能值得单独说一下&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;《灵魂献祭 Soul Sacrifice》&lt;/span&gt;的魔腕,灵魂献祭的魔腕 提供可观的攻击属性加成,不单单是伤害,特别还有属性异常累积增幅。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;图自 ElderWraith&quot; width=&quot;1920&quot; height=&quot;1080&quot; src=&quot;https://image.gcores.com/0ab426566c909f816b5b5ac1d10b0a4c-1920-1080.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;然后这个游戏有个循环克制系统,如果魔物被冻结进入了[冰]属性异常状态,那么它的弱点属性也会就变成了克制[冰]的[电]属性,这个克制关系无视魔物的初始弱点属性,哪怕是抗[电]的怪物被冰冻后,被[电]属性攻击也会有高额伤害加成和属性异常累积加成。&lt;/p&gt;&lt;p&gt;这就让魔腕因为属性异常累积加成极高,可以在魔物没有脱离上一个异常状态的时候把魔物打入下一个属性异常状态,比如 &lt;br&gt;1.魔物先冻结变得弱电&lt;br&gt;2.冻结未结束魔物进入感电状态变得弱土&lt;br&gt;3.玩家继续灌土属性伤害石化魔物,魔物石化后弱毒&lt;br&gt;4.玩家灌毒属性伤害灌满后魔物变得弱火。。。如此循环往复&lt;br&gt;达成对魔物的高频控制 + 无视魔物初始抗性的高额伤害加成。&lt;/p&gt;&lt;p&gt;事后诸葛亮的来看,这套系统虽然很爽 但是会让Boss体验非常同质化,玩家只是在第一次让Boss进入属性异常之前需要针对一下,后续就是灌属性打桩了。可能引入类似《雨中冒险2》触发链/触发系数之类的设计,让这个循环克制只能持续2~3个异常状态会好一些。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;只狼&lt;/span&gt;的逻辑比较微妙 &lt;br&gt;1.一心 / 义父 这类会大量招架格挡 主要打架势的人形Boss 架势槽可以看作是 999盾 1血。招架熟练的话 有效血量就是1000左右,如果不能打出压制就是 有效血量2000~3000。&lt;br&gt;2.怨恨之鬼 这种不格挡 但是架势条基本打不满 只能打血击杀的Boss 和传统的黑魂/怪猎Boss没有什么差别。&lt;/p&gt;&lt;h1&gt;战斗系统相关&lt;/h1&gt;&lt;p&gt;叠甲:这个主题太大 太复杂了,只是提供一些基本的思路/经验。没有可落地的 量化的 系统化理论。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;下血速度/战斗节奏的本质&lt;/span&gt;&lt;/p&gt;&lt;p&gt;实际上是&lt;br&gt;战斗主动权的轮换 x 动作性能(打点/延迟/取消等) x 游戏数值 的综合结果。&lt;br&gt;这里动作性能 ≈ 射击游戏中的 冲锋枪 vs 步枪 vs 狙击枪 的区别。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;比较直观的下血速度差别演示(理论Dps 一样&quot; width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://image.gcores.com/47f95d80434bcb5f1be8e41ff1fec28d-1200-400.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;放慢50%&quot; width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://image.gcores.com/df1b108ede18bcf390d6c487d555e36b-1200-400.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;拿怪猎的 大剑 vs 太刀 vs 片手 vs 双刀 来说,打桩的理论Dps大差不差。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;大剑:&lt;/span&gt;蓄力斩 真蓄的打点很好控制 dph高 同时伤害集中在少数几次攻击上,更容易打出怪物倒地。攻击次数少 以前版本不太适合打属性。&lt;br&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;太刀:&lt;/span&gt;中规中矩 可以单人应付任何情况+帅,如果其他武器数值不压制的话,使用率理所当然会高一截。属性和物理都可,打爆发和蹭刀都可的万金油。&lt;br&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;片手:&lt;/span&gt;中规中矩 偏偏没有任何很有识别性的武器特点,哪怕是 XX世代 同时有圆月斩 + 混沌刃药 化身无敌数值怪的情况下,使用率也就8%略高于平均值,世界世代是3%左右。&lt;br&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;双刀:&lt;/span&gt;武器短 打点偏差 T0级别的属性输出。一个很有意思的现象,玩家个人统计数据结果中显示X/XX世代 HR150以上猎人中双刀使用率为第一 17%,HR100以下的猎人中 使用率为14% 低于大剑(22%)和太刀(15%)。&lt;/p&gt;&lt;p&gt;因为对打点的要求,某种意义上来说怪猎有点像一个披着近战皮的慢节奏射击游戏。&lt;/p&gt;&lt;p&gt;这里本质是个动作风险和收益的问题,像大剑原地蓄上2秒 是个风险很大的动作 那么有着类似武器长度的太刀同样是打桩,为了风险收益比例相似 dps 就需要比大剑略低一些。但是双刀 虽然后摇短 但是武器短 风险高 就需要仔细平衡动作模组的收益了。不过卡普空最近几作的数值平衡也不算做得特别好。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;重视技巧/机制 vs 重视数值 的问题 (除开战术 战略&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;重视技巧/机制&lt;br&gt;&lt;/span&gt;- 设计麻烦&lt;br&gt;- 开发素材要求高 多&lt;br&gt;- 数值上限高 留给了外挂很多发挥空间&lt;br&gt;- 需要投入额外技术反外挂&lt;br&gt;+爽&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;重视数值/随机性&lt;br&gt;&lt;/span&gt;+减小玩家之间技术差距&lt;br&gt;+长线运营潜力更大 填内容更简单&lt;br&gt;+长时间玩着不累&lt;br&gt;-需要维持刺激体验 难度很高&lt;/p&gt;&lt;p&gt;怪猎的武器设计的长期以来都满足了的几个限制条件&lt;/p&gt;&lt;ol&gt;&lt;li&gt;武器都得能用来通关&lt;/li&gt;&lt;li&gt;武器间伤害期望不能差太离谱&lt;/li&gt;&lt;li&gt;每把武器要有自己的独特的机制/战斗节奏&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;然后这些问题还要同时考虑单人solo和多人组队,还总共有14把武器。&lt;/p&gt;&lt;p&gt;为了运营数据上好看,还要在武器帅气度 上手难度 乐趣 等完全不一样的情况下,武器间使用率差距尽可能小点。 = =。。。要求是实在挺高的。。。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;射击游戏 vs 动作游戏&lt;/span&gt;&lt;/p&gt;&lt;p&gt;射击游戏战术 战略上选择多很多,更适合团队竞技。但是单论战斗体验上来说,实在缺乏玩家和玩家之间互相交互的战斗方法。这么多年了可能也就一个《泰坦陨落》的漩涡盾。&lt;/p&gt;&lt;p&gt;远程攻击无论是第一人称/第三人称还是固定视角 不过也更适合类MMO 或者 CS 那样的多人混战,规模效应好得多。&lt;br&gt;近战攻击放在固定视角 规模效应的问题部分解决了,但是打击感很差。近战攻击放在第三人称 打击感问题解决了,但是需要不好处理多人战斗的场景。第一人称还有容易3D眩晕的问题。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;漩涡盾 Vortex Shield&quot; width=&quot;450&quot; height=&quot;252&quot; src=&quot;https://image.gcores.com/610a5c4302b760451ef20a3a5bb77d99-450-252.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;然后 射击 + 近战 战斗系统做得好的几个案例&lt;/p&gt;&lt;p&gt;龙之信条1代的九头蛇 Boss战:远程拥有更好的输出环境 队友被吞了之后需要精准点杀特定蛇脑袋的时候更好,但是想速杀还是需要近战斩击属性去快速斩掉脑袋。&lt;/p&gt;&lt;p&gt;生化6 远程枪械 + 近战体术:体力槽快速恢复 手枪点头+体术 可以快速击杀小型僵尸同时节省子弹。弹一闪 和 大口径马格南用来处理Boss。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;一些乱七八糟的思考&lt;/span&gt;&lt;/p&gt;&lt;p&gt;多维复杂战斗系统还是不错的。感觉卡普空为了大众市场删了太多东西了。然后武器差异化和乐趣就很难同时保持。斩味和弹刀(最近几作斩味基本沦为纯粹增伤属性) 或者 部分古龙部位需要特殊属性破坏 这些东西都可以考虑加回来。&lt;/p&gt;&lt;p&gt;类似魂那样有极其复杂的伤害公式(类似穿甲系统)或独立的击倒值,击倒值会缓慢恢复。也都是可行的。 &lt;/p&gt;&lt;p&gt;MH荒野这作目前感觉就是卡表的策划要么是新人有点缺乏想象力太保守了,要么是在给DLC留平衡空间。这次红刃太刀的红刃槽只能续刀3次,然后总时长续满应该不到60秒。&lt;/p&gt;&lt;p&gt;一个比较符合直觉的改动应该是红刃无限续刀,但是红刃槽开刃后 30秒后消耗速度1.5x 50秒后2.0x 70秒后3.0x 。这样解放了高手的上限,但是平均收益不会那么高,而且更符合直觉。&lt;/p&gt;&lt;p&gt;要是让我来设计我估计会给炼气解放无双斩后让太刀直接开个RGB彩虹刃,然后刃槽高速衰减但是所有攻击增加刃槽,此状态登龙掉光所有气刃 但是根据气刃槽长度追加hit数 hit数无上限,同时登龙特效一定要一路火花带闪电 还要有专属音效 要比马里奥的无敌星星还要酷炫。名字就叫【彩虹新星气刃极意解放斩】。嗯!&lt;/p&gt;&lt;p&gt;*炼气解放无双斩的加入 导致红刃成了个很尴尬的东西 目前Beta版本资源管理自相矛盾 不符合直觉&lt;br&gt;**太刀冰原之后一直缺一个好的连招终结技 原来是登龙 或者 气刃3&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;截取自 An Incorrect Summary of Metal Gear Rising | Part 2 - By Max0r&quot; width=&quot;520&quot; height=&quot;256&quot; src=&quot;https://image.gcores.com/eabff319fc07df847f4a6e6e4a6a56cd-520-256.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;以及本来不想做卡普空fanboy的。。。但是一找案例纯近战动作游戏做得好的90%都是它家的,近战+远程战斗系统都有(且不是摆设的)100%都是它家的。&lt;/p&gt;&lt;h1&gt;血条UI&lt;/h1&gt;&lt;p&gt;这个系列文章一个最关键的问题。游戏到底应不应该 需不需要做血条UI?&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;鬼泣3/4都有的Boss血条会随着玩家造成伤害而震动,5代给我砍了。。。怨念&quot; width=&quot;358&quot; height=&quot;102&quot; src=&quot;https://image.gcores.com/46886a5a61252f59ac0123b2e1414df3-358-102.gif&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;来看看 黑魂 vs 洛奇英雄传国服 国际服 vs 怪猎 vs 鬼泣&lt;/p&gt;&lt;ul&gt;&lt;li&gt;有血条 - 黑魂:大部分作品 虽然战斗有主动权切换 少数战斗有游戏自动的阶段切换 所有Boss有血条&lt;/li&gt;&lt;li&gt;有血条 - 洛奇英雄传国服:简化了所有动作的动作派生 砍了动作伤害系数 拉长了战斗总时长 战斗更加拼数值而不是注重玩家技术&lt;/li&gt;&lt;li&gt;无血条 - 洛奇英雄传国际服:硬核动作网游 难度和操作上限显著高于国服版本 高于同时期的剑灵/龙之谷,是黑魂1代 怪猎级别的打击感。&lt;br&gt;*严格来说是 简单本有血条 困难本 英雄本无血条&lt;/li&gt;&lt;li&gt;无血条 - 怪猎:硬核动作游戏 怪物招式多变 变招繁多&lt;/li&gt;&lt;li&gt;有血条 - 鬼泣:硬核动作游戏 但是怪物变招 阶段转换等设计较少 游戏节奏偏向于均匀下血&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;结论:&lt;/span&gt;如果对战斗体验(节奏 / 多样性等要素)有充分自信,完全可以不做血条UI。如果战斗体验还不错 需要找补一些打击感和感官刺激,可以靠认真设计了的血条弥补一些。&lt;/p&gt;&lt;p&gt;但是就靠血条这一个UI组件,哪怕雕出花来也没有办法化平庸为传奇。(参考卡普空的生化指挥官 Bionic Commando 2009)&lt;/p&gt;&lt;p&gt;如果做到了像怪猎那样的怪物会 流口水+瘸腿+发怒招数全变+疲劳龙车跌倒+部位破坏,那么基本是没必要用血条UI来画蛇添足 破坏沉浸感了。&lt;/p&gt;&lt;h1&gt;结语&lt;/h1&gt;&lt;p&gt;应该是我很长时间内最后一篇长文了(滚去荒野准备开荒了)。&lt;/p&gt;&lt;p&gt;20世纪后半叶真是群星璀璨人才辈出啊。。已经25年了。。希望人类不要把整个21世纪前半叶浪费在窝里斗和重新建立信任上。 - By 终极无敌 傲慢酸腐 中二无双 EdgeLord Plus Max Extra Omega 下头太刀 太刀下头 估计虫棍开荒 的 MeowMeowRanger&lt;/p&gt;&lt;h1&gt;参考文档 / 引申阅读:&lt;/h1&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcores.com/articles/136874&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;链接:战斗主动权相关 - 攻防流转的艺术:《荣耀战魂》战斗系统设计分析(1/3)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http:// https://www.gcores.com/articles/138087&quot; target=&quot;_blank&quot;&gt;链接:情报博弈相关 - 激斗之下的暗流:梳理对战类游戏中的“情报博弈”&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcores.com/articles/164614&quot; target=&quot;_blank&quot;&gt;链接 - 血条进化史 游戏性概述 - 血条进化史:游戏设计层面血条设计和分析&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcores.com/articles/182078&quot; target=&quot;_blank&quot;&gt;链接 - 血条进化史 2.0 攻防数值 - 血条进化史v2.0.0:数字与公式&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcores.com/articles/192998&quot; target=&quot;_blank&quot;&gt;链接 - 随机性相关 - 游戏数值:概率/随机性 概述&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcores.com/articles/194380&quot; target=&quot;_blank&quot;&gt;链接 - 数值边界确立相关 - 游戏数值:《雨中冒险2》的上限/体验边界的确立&lt;/a&gt;&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/194557</link>
      <guid isPermaLink="false">gcores-194557</guid>
      <pubDate>Fri, 21 Feb 2025 08:15:00 GMT</pubDate>
      <author>MeowMeowRanger</author>
      <enclosure url="https://image.gcores.com/e50ed90da099d86d6d0cf0a441bf10ed-480-192.gif" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/e50ed90da099d86d6d0cf0a441bf10ed-480-192.gif"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/e1bce263-992a-4e49-99cf-4233fbca9283.mp3" length="1058" type="audio/mp3"></enclosure>
      <itunes:duration>0:17:38</itunes:duration>
      <category>知识挖掘机</category>
    </item>
    <item>
      <title>图形AI粗读丨三维重建——立体视觉篇(下)</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;图形AI粗读丨三维重建——立体视觉篇(下)&quot; src=&quot;https://image.gcores.com/65fe6487736a10aec2acf039c397b5a1-1518-1041.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/2c7ab07f-2ccd-4b08-b9e0-99a8b152d07b.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/2c7ab07f-2ccd-4b08-b9e0-99a8b152d07b.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/2c7ab07f-2ccd-4b08-b9e0-99a8b152d07b.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;从零开始读:AI生成3D的脉络及现状&lt;/blockquote&gt; &lt;h1&gt;前言&lt;/h1&gt;&lt;p&gt;在&lt;a href=&quot;https://www.gcores.com/articles/194564&quot; target=&quot;_blank&quot;&gt;上一篇&lt;/a&gt;中我们进行了三维重构方面的简单介绍,并很快引入了第一步的主题——立体视觉。这次继续读斯坦福大学的这篇课件。 &lt;/p&gt;&lt;p&gt;PPT部分以翻译为主,打星号的部分是我的个人理解或补充,主要是对课件中没解说的部分补充外部信息。&lt;/p&gt;&lt;h1&gt;一、解决对应点问题——Solving the correspondence problem&lt;/h1&gt;&lt;p&gt;*这部分课件中举例用的一些图都不算直观,有点难以看出左右两图的区别。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;立体匹配:解决对应点问题&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/509f6201504e3f6b8984aa79634e6a63-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;目标:找到两张图片中的对应点。(*Hypothesis,假设)&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;基础的立体匹配算法&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/f1710dd676f6655d59eb26588f91ab7c-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;对于第一张图中的每个像素:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;找到右侧图中的对应极线&lt;/li&gt;&lt;li&gt;检测极线上的每个像素并选择最匹配的&lt;/li&gt;&lt;li&gt;三角测量匹配点以得到深度信息&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;最简单的情况——极线都是扫描线(与画面平行)。何时会发生这种情况?&lt;/p&gt;&lt;p&gt;*选择匹配点规则后面页会介绍到。另外,三角测量的方式在上一篇中介绍过了。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/e42fd6bfd6c0e4db14707be08b0c5152-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;如果需要,可以将两张立体图片校正以变换极线为扫描线。(变成平行平面)&lt;/p&gt;&lt;p&gt;对于第一张图中的每个像素x:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;找到右图中&lt;span style=&quot;font-weight: bold&quot;&gt;相对应的&lt;/span&gt;极线扫描线&lt;/li&gt;&lt;li&gt;检测极线上的每个像素并选择最匹配的x&#39;&lt;/li&gt;&lt;li&gt;计算差异度x-x&#39;,&lt;span style=&quot;font-weight: bold&quot;&gt;将深度设为它的反比&lt;/span&gt;(如图)&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;对应点问题&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/68241888165ab6394b3935a43391c37a-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;让我们做一些假设来简化匹配问题:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;基线相对很小(和场景中点的深度对比而言)&lt;/li&gt;&lt;li&gt;这样大部分场景中的点都能在两个视图中可见&lt;/li&gt;&lt;li&gt;并且,匹配的区域在外观上是相似的&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;通过相似性约束来查询对应点&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/57364d5f2255c478cecad6488855b506-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;沿着右侧的扫描线滑动一个(检测)窗口,并比较左侧中相关联窗口的结果。&lt;/p&gt;&lt;p&gt;匹配开销:&lt;span style=&quot;font-weight: bold&quot;&gt;SSD&lt;/span&gt;(后一页提到了,差方和)或&lt;span style=&quot;font-weight: bold&quot;&gt;归一化相关系数&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;*两者都是统计学上量化数据的方式。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/35ceceedeed4d112688002d324f53c0c-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里横轴是差异度(disparity),纵轴是&lt;span style=&quot;font-weight: bold&quot;&gt;差方和&lt;/span&gt;(Sum of Squared Differences)。这里对比的是左侧的一个位置和右侧一条线上的窗口——可以看到图中的例子中最匹配的点肯定不是差异度为0的,而是接近0。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;这里是一段伪代码示例,长宽对应一个检测窗口的尺寸&quot; width=&quot;453&quot; height=&quot;132&quot; src=&quot;https://image.gcores.com/e9c78e335107a96aeff09fd7eb0699a8-453-132.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/33aabf6fccfa97cd2b9dde6c4c8b3840-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里纵轴换成了&lt;span style=&quot;font-weight: bold&quot;&gt;归一化相关系数&lt;/span&gt;。不管哪种计算方式,都是对比的窗口像素差异。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;归一化相关系数的定义。可以看出相似度越高越接近1。&quot; width=&quot;313&quot; height=&quot;80&quot; src=&quot;https://image.gcores.com/61fe8bd174dace25e97c02051ac3f8c9-313-80.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;(不同)窗口尺寸的效果&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/cef6413a8a5c6d5bb7c6496570c15446-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;小窗口:更多细节,更多噪声。&lt;/li&gt;&lt;li&gt;大窗口:更平滑的差异图,更少噪声。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*这里是差异图可视化之后的结果,而能表现为灰度图应该是使用的归一化相关系数作为颜色显示,并且处理完整张图像的结果。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;相似性约束&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/73994a81d232e816a745e2416501318d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;两张图中对应的区域应该在外观上类似&lt;/li&gt;&lt;li&gt;而不对应的区域应该在外观上不同&lt;/li&gt;&lt;li&gt;那么何时这一相似性约束会失效?&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;相似性约束的局限&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/511d2c91c053e27ca7944cdc7e62dc68-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;(图中顺序依次是):无纹理的表面、剔除或重复、高光表面。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;窗口查找的结果&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/6f39409b54eba1e23c2597f0b2cc74ab-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中左侧是基于窗口的匹配结果,右侧是事实结果(很多算法实验都会配Ground truth结果作比较)。颜色图展示的是&lt;span style=&quot;font-weight: bold&quot;&gt;基于还原深度信息&lt;/span&gt;的物体轮廓。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/4e857253e92d1c1920472992d400b7ea-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里指出了基于图切割算法能有更好的结果。其中涉及了用图论思想优化图像划分,后续这个脉络的算法都被称为min-cut/max-flow算法。&lt;/p&gt;&lt;p&gt;*之前基于窗口的算法是一种&lt;span style=&quot;font-weight: bold&quot;&gt;局部算法&lt;/span&gt;,而图切割算法是一种&lt;span style=&quot;font-weight: bold&quot;&gt;全局算法&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;*图论的部分超出我个人能解释的能力范围了,文末会给出2001年这篇论文的链接。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;基线的作用&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/69538c48021d3e55d8293247729559f6-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;小的基线:较大深度误差。&lt;/li&gt;&lt;li&gt;大的基线:产生难以查询的问题。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*图中反映了两种情况,通过蓝色和红色包围的区域表示。不过左侧的示意图并没有表现出小的基线相对大的基线能更确定点的位置,实际上两者的观察点距离应该是差距很大的。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;宽基线的问题(的解决):透视法缩绘&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/29a480b814d352f7f84863918fa9af7b-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;(宽基线的情况)按固定尺寸的窗口匹配将失败。&lt;/li&gt;&lt;li&gt;可行的解决方案:自适应的窗口尺寸。&lt;/li&gt;&lt;li&gt;另一个解法:基于模型的立体查询。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*这里的model-based指先生成近似模型,再辅助计算点的相关性,这里摘录了1996年的一篇论文中提出的概念:&lt;/p&gt;&lt;blockquote&gt;Model-based stereo differs from traditional stereo in that it measures how the actual scene deviates from the approximate model, rather than trying to measure the structure of the scene without any prior information. The model serves to place the images into a common frame of reference that makes the stereo correspondence possible even for images taken from relatively far apart. &lt;/blockquote&gt;&lt;p&gt;译:Model-based的立体查询与传统立体查询的不同是,它通过与近似模型的偏差来度量(估算)实际场景,而不是尝试在没有任何前置信息的前提下来度量场景的结构。这一模型能提供特定帧(观察位置)的参照,使立体相关匹配变得可行——即使是从相当远的观察距离。&lt;/p&gt;&lt;p&gt;*这里的近似模型生成是从其它的一些参照方式(例如平面识别等)来构建,并辅助提高相关点匹配的准确性。虽然这篇课件主要介绍的是点与点之间的对应算法,但上一篇中介绍的各种方式(纹理、明暗等)都能辅助立体视觉的匹配过程。&lt;/p&gt;&lt;h1&gt;二、单应变换——Homographic transformation&lt;/h1&gt; &lt;figure&gt;&lt;img alt=&quot;回顾:2D中的变换&quot; width=&quot;1687&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/d94711a214e0caaa9aa555f0909ed9f9-1687-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*(只在平面上的)特定情况中,二维变换矩阵是2X2的,其中R代表旋转,t代表平移。&lt;/p&gt;&lt;p&gt;*它有着3的自由度(DOF,上篇中介绍过这个概念);能保持距离(区域);刚性物体间符合动量约束。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1686&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/f6753e7b88fc9287d2cd86e0d70bbcd5-1686-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*普适的情况中,变换矩阵如图所示(a1-a9)。&lt;/p&gt;&lt;p&gt;*它有着8的自由度,保持&lt;span style=&quot;font-weight: bold&quot;&gt;共线性&lt;/span&gt;的特征。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;目标:估算两张图像之间的单应变换&quot; width=&quot;1683&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/56bb5fa48fbb32acff46ed6af3acf115-1683-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;假设:给定一组对应点。&lt;/li&gt;&lt;li&gt;问题:需要多少点?——至少需要4个点(8个方程)。&lt;/li&gt;&lt;li&gt;提示:变换矩阵H的自由度是8。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;DLT算法(直接线性变换)&quot; width=&quot;1686&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/e06c9ff24ba54d7119906c30cc67d3e2-1686-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1681&quot; height=&quot;1257&quot; src=&quot;https://image.gcores.com/17e3cc8ba3b999007c2e93657140bda3-1681-1257.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*DLT算法的目的是在已知对应点的情况下,通过建立线性方程组来求解摄像机的投影矩阵。&lt;/p&gt;&lt;p&gt;*这个课件的推导过程缺一点关键过程,下面通过资料介绍另一种推导方式:&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1710&quot; height=&quot;1278&quot; src=&quot;https://image.gcores.com/d68bc217ad88c7ab43f416065650eee0-1710-1278.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*最上方的公式相当于pi&#39;=H pi,展成三维坐标(向量)的形式。&lt;/p&gt;&lt;p&gt;*中间英文部分就不逐句翻译了,大致是在讲将矩阵乘开成方程组的形式,之后通过相除消去系数a的影响。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1600&quot; height=&quot;837&quot; src=&quot;https://image.gcores.com/52e34239694bb2435d9efa4461555c77-1600-837.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1845&quot; height=&quot;1150&quot; src=&quot;https://image.gcores.com/7d34920efcbe4363d92d5b9234451331-1845-1150.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*将项重新排列并写成矩阵的形式,就和课件中一致了。这样能更容易理解Ai的意义。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1687&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/113988041563adbda579ba9eccda7bea-1687-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*如何解这个矩阵方程?这里引入了矩阵&lt;span style=&quot;font-weight: bold&quot;&gt;奇异值分解&lt;/span&gt;(SVD)这一方法,能将目标矩阵以一定规则分解为三个矩阵连乘。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;SVD图示&quot; width=&quot;1920&quot; height=&quot;1738&quot; src=&quot;https://image.gcores.com/6b1f040f60a8afa05bcfbec7ddec9077-1920-1738.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/c59087cfd756a9c6fa9c7d48ed1f919f-1683-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*对于图中公式的情况,SVD分解后的V的最后一列(V&lt;span style=&quot;font-weight: bold&quot;&gt;^&lt;/span&gt;T的最后一行)9个值就对应列向量h——并能直接得到矩阵H。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/dc630c1d1cf75987b1521281d77874c9-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中展示了SVD的两种情况。对于原始矩阵的秩大于1的情况来说SVD的结果一定存在,且可能不唯一。&lt;/p&gt;&lt;p&gt;*其中U和V有着各自与转置矩阵相乘都等于对应阶的单位矩阵的特性。对于U是正交矩阵的情况可由如下计算步骤来推出一个解。&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;奇异值分解的计算步骤&lt;/span&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;计算矩阵A的转置&lt;/span&gt;:首先,计算矩阵A的转置矩阵A^T。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;计算AA^T的特征值和特征向量&lt;/span&gt;:接着,计算矩阵A与其转置矩阵A^T的乘积AA^T,然后求出其特征值和特征向量。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;计算A^TA的特征值和特征向量&lt;/span&gt;:然后,计算A^TA的特征值和特征向量。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;构造U和V矩阵&lt;/span&gt;:将AA^T的特征向量归一化后构成矩阵U,将A^TA的特征向量归一化后构成矩阵V。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;构造Σ矩阵&lt;/span&gt;:将AA^T的特征值的平方根按降序排列,构成对角矩阵Σ。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;*介绍到特征值和特征向量这一步就不继续展开了,可以自行搜索网上的资料。而关于DLT和SVD文末会给出多条参考资料。&lt;/p&gt;&lt;p&gt;*SVD本身也是一种降维压缩方式,在图像分析领域被广泛使用。&lt;/p&gt;&lt;h1&gt;三、主动式立体视觉系统——Active stereo vision system&lt;/h1&gt; &lt;figure&gt;&lt;img alt=&quot;主动式立体视觉(点)&quot; width=&quot;1683&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/37caed42bdade835d7b2f35e16cd8cda-1683-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;通过一个投影器(变换)来替换两个摄像机中的一个:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;单摄像机。&lt;/li&gt;&lt;li&gt;投影几何已校准。&lt;/li&gt;&lt;li&gt;投影器的优势是?解决了对应点问题。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;主动式立体视觉(条纹)&quot; width=&quot;1683&quot; height=&quot;1258&quot; src=&quot;https://image.gcores.com/8dd6f169fae13661ef4cc677d4809d0e-1683-1258.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;投影器和摄像机是平行的。&lt;/li&gt;&lt;li&gt;也解决了对应点问题。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;主动式立体视觉(阴影)&quot; width=&quot;1683&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/3365cc2565231e369aabff9409ae8ff1-1683-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;一个摄像机,一个光源。&lt;/li&gt;&lt;li&gt;非常易于设置。&lt;/li&gt;&lt;li&gt;已校准的光源。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/fb598c1c90213f7a025c5ef8dce9e24e-1684-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*主动立体视觉——阴影的例子。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;主动式立体视觉(颜色编码的条纹)&quot; width=&quot;1686&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/b23a16913939952afec97e002bbfe7b5-1686-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;密度重构&lt;/li&gt;&lt;li&gt;再次遇到对应点问题&lt;/li&gt;&lt;li&gt;通过颜色编码来判明&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/a25fdb09d63201e2b442eff52d3366e0-1684-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;快速形体获取:投影器+立体摄像机。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;主动式立体视觉(条纹)&quot; width=&quot;1681&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/9d75679ffd7ead489bb8bd8c27727d38-1681-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中展示的是斯坦福的“数字米开朗基罗”工程&lt;/p&gt;&lt;p&gt;光学三角测量:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;每一道激光投影一根条纹&lt;/li&gt;&lt;li&gt;扫描整个物体的表面&lt;/li&gt;&lt;li&gt;这是结构光扫描的一个非常精确的版本&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*这里的激光是用来投影条纹并拍照的,核心方法还是基于图像的立体视觉。后面略去了几页只有图片的案例展示。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/7e77612ec9418c144f67b7ac92aba9ec-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中展示了眼部细节的一些情况。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1266&quot; src=&quot;https://image.gcores.com/b097e1d4665e98337f0858cdad47fc10-1684-1266.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中展示了1毫米精度下的三角面数。&lt;/p&gt;&lt;h1&gt;结语&lt;/h1&gt;&lt;p&gt;啃完立体视觉的这篇课件后,在头昏脑胀之余也能深切的感受到这就是科技的发展——放在10多年前可能还是博士生以上才需要研究的领域,现在已经逐步成为了后来技术的基石。就好比图形AI也不是凭空产生的,这篇课件里介绍到的很多内容都构成了后来神经网络中的基础算法、输入端或是数据处理层。&lt;/p&gt;&lt;p&gt;在B站Games系列课之下也有三维重建的专题,在一年时间内我肯定是会伴随着把那个也看完。最终能达成“看懂图形AI每一步在做什么”是我的目标——对于超出能力看不懂的部分则保持敬畏之心。&lt;/p&gt;&lt;p&gt;虽然在上周的文章中夸了DeepSeek R1,但它的“幻觉程度很高”、“没答案的时候乱编”的问题随着大量的使用也比较明显了。当然,让一个AI不乱编的方法肯定有,关键是用AI的人不能迷信它的输出。内容创作方面如果尝试用它生成最终的文稿,很可能发生“生成5秒,查错1小时”的情况——因为和事实交叉比对的还得是创作者自己。&lt;/p&gt;&lt;p&gt;在技术向的问题上,我个人的体验是它帮助不大,因为本身网上技术交流的语料就少,正确的更少(很多实用向的引擎技术也没有论文);而很多热门话题的总结概括,则又容易被网上各种阴阳怪气的语料污染,生成让人啼笑皆非的内容;比较好用的主要还是在“事实”、“常识”、“数据分析”等方面。&lt;/p&gt;&lt;p&gt;虽然现在的很多高科技已经足够“魔法”了,提供给普通人的基本就是一个交互界面,但另一方面网上资料也很多——我还是想尽量打开黑盒看看。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下面是一些资料链接:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcores.com/link?target=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComputer_stereo_vision&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-weight: bold; text-decoration: underline&quot;&gt;立体视觉的WIKI&lt;/span&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.cs.cmu.edu/~ph/869/papers/kanade-okutomi.pdf&quot; target=&quot;_blank&quot;&gt;上世纪关于自适应窗口尺寸立体匹配的论文(纸质扫描)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.cs.cornell.edu/rdz/Papers/BVZ-iccv99.pdf&quot; target=&quot;_blank&quot;&gt;Fast Approximate Energy Minimization via Graph Cuts&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/davechristian/Simple-SSD-Stereo&quot; target=&quot;_blank&quot;&gt;一个基于SSD做图像分析的Git案例&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.pauldebevec.com/Thesis/debevec-phdthesis-1996_ch7_stereo.pdf&quot; target=&quot;_blank&quot;&gt;一篇Model-Based Stereo的介绍&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.cs.cmu.edu/~16385/s17/Slides/10.2_2D_Alignment__DLT.pdf&quot; target=&quot;_blank&quot;&gt;一篇介绍DLT的Carnegie Mellon University的课件&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=vSczTbgc8Rc&quot; target=&quot;_blank&quot;&gt;介绍SVD的一篇很好的youtube讲解&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/10401154795&quot; target=&quot;_blank&quot;&gt;一篇SVD的比较详细的知乎介绍&lt;/a&gt;&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/194874</link>
      <guid isPermaLink="false">gcores-194874</guid>
      <pubDate>Fri, 21 Feb 2025 08:00:00 GMT</pubDate>
      <author>Hakumen</author>
      <enclosure url="https://image.gcores.com/65fe6487736a10aec2acf039c397b5a1-1518-1041.png" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/65fe6487736a10aec2acf039c397b5a1-1518-1041.png"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/2c7ab07f-2ccd-4b08-b9e0-99a8b152d07b.mp3" length="793" type="audio/mp3"></enclosure>
      <itunes:duration>0:13:13</itunes:duration>
      <category>知识挖掘机</category>
    </item>
    <item>
      <title>暴论游戏设计中的迷宫</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;暴论游戏设计中的迷宫&quot; src=&quot;https://image.gcores.com/4874b06e08155b46f2c714d8a9d5694c-1080-506.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/81d0b251-f1b2-4d1c-baed-7d86fa1d5223.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/81d0b251-f1b2-4d1c-baed-7d86fa1d5223.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/81d0b251-f1b2-4d1c-baed-7d86fa1d5223.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;解构游戏体验与迷宫的关系;天国拯救2治好了我的赛博精神病的治疗方法:游戏行业需要自我救赎,与玩家重新建立信任。&lt;/blockquote&gt; &lt;ul&gt;&lt;li&gt;无剧透内容。&lt;/li&gt;&lt;li&gt;阅读时间15分钟。&lt;/li&gt;&lt;li&gt;吹哥式暴论,欢迎指证。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;相比于沸沸扬扬的箱庭设计和开放世界,**迷宫**似乎是进入了落伍的行列,游戏中越来越少见,开发者也没有什么讨论。作为一个玩家的我一直知道什么样的迷宫是错的,但是一直没想明白什么样的迷宫才是对的。直到《天国·拯救2》,我在地下矿井中深陷人物其中的时候,领悟了迷宫原本的样子,什么是好的迷宫设计;以及糟糕的迷宫设计是如何摧毁掉整个行业的。&lt;/p&gt;&lt;h1&gt;1. 我们还需要迷宫吗?&lt;/h1&gt;&lt;p&gt;设计玩家从&lt;span style=&quot;font-weight: bold&quot;&gt;A点&lt;/span&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(路线起点、获得任务…)&lt;/span&gt; 抵达&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(路线终点、交付任务…)&lt;/span&gt;的方法有两种:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;非线性体验&lt;/span&gt;:&lt;span style=&quot;font-weight: bold&quot;&gt;开放世界、箱庭关卡,&lt;/span&gt;玩家可以通过自己意志做出选择,选择不同的道路、用不同的游戏方式从&lt;span style=&quot;font-weight: bold&quot;&gt;A点&lt;/span&gt;抵达&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;线性体验&lt;/span&gt;:玩家无法通过自己意志选择,只能沿着唯一的道路从&lt;span style=&quot;font-weight: bold&quot;&gt;A点&lt;/span&gt;抵达&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;非线性体验是个大的框架,是给了玩家自由的权利&lt;/span&gt;:选择不同的道路、不同的游戏方式。(&lt;span style=&quot;font-style: italic&quot;&gt;比如《艾尔登法环》中可以通过不同的方式从A点(宁姆格福)抵达B点(史东薇尔城)。抵达史东薇尔城后,也有不同的选择从A点(史东薇尔城正门)抵达B点(“接肢”葛瑞克)。)&lt;/span&gt;;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;而选择的结果作为最小游戏单位,则是回到了线性体验,最终玩家有游玩的是一个个或长或短的线性体验&lt;/span&gt;,线性体验的A点是上一个选择的结果,线性体验的B点是抵达下一个选择点。[^从正门闯入or从悬崖绕上,然后上屋顶or进走廊。正门、悬崖、屋顶、走廊分别是四个不同的线性体验。]&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;让我们来解构线性关卡,回归本质,线性关卡的体验是一条像是《超级马里奥》的直线&lt;/span&gt;:起点&lt;span style=&quot;font-weight: bold&quot;&gt;A点&lt;/span&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(线路起点、获得任务)&lt;/span&gt;走到线的终点&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(线路终点、交付任务)&lt;/span&gt;:每5步一个怪,每5个怪一个小boss,每2个小boss玩个复古解谜小游戏(puzzle),然后打个大boss,然后选择新任务。&lt;span style=&quot;font-weight: bold&quot;&gt;将多个线性关卡连续起来就是,走路、打怪、打BOSS、解谜的循环&lt;/span&gt;,在循环中人物得到升级,获得更好的木棍、打更厉害的小龙虾,直到你可以获得终极五色宝石狼牙棒,打永恒紫色巨锷小龙虾。现在怎么样?是不是有些枯燥乏味,玩家在踏上起点就知道了一切的过程和结果,就像你的人生。&lt;/p&gt;&lt;p&gt;那怎么做才好呢?有人在讨论游戏到底是叙事学还是游戏学,而我认为都是,在对目标(读者、玩家)的体验设计上,做出了相同的努力。 &lt;/p&gt;&lt;ul&gt;&lt;li&gt;在叙事学中就是&lt;span style=&quot;font-weight: bold&quot;&gt;任何一个故事都要有曲折;&lt;/span&gt;没有曲折就是:唐僧想要取经,顺利的取到了真经;曹操想要一统江山,顺利的一统江山了。&lt;/li&gt;&lt;li&gt;在文学里&lt;span style=&quot;font-weight: bold&quot;&gt;陌生化语言可以增强读者的感受力&lt;/span&gt;:你肯定还记得&lt;span style=&quot;font-style: italic&quot;&gt;“我家门前有两棵树,一颗是枣树,另一颗也是枣树”&lt;/span&gt;;如果写&lt;span style=&quot;font-style: italic&quot;&gt;“我家门口有两颗枣树”&lt;/span&gt;,这就是一个日常的自动化语言,读者一眼就能扫过而不会去感受他。&lt;/li&gt;&lt;li&gt;同样,在游戏过程中&lt;span style=&quot;font-weight: bold&quot;&gt;陌生化可以模糊过程、放大体验&lt;/span&gt;,让玩家的经历越曲折越复杂越离奇,就能更好的调动玩家心智,增加玩家的感受力。为了让这个单一的线性在体验上有一些不可预知的陌生化变化&lt;span style=&quot;font-style: italic&quot;&gt;(说到不可预知,我想起来老贼埋伏在各个角落背刺我敌人...)&lt;/span&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这时候,迷宫&lt;span style=&quot;font-style: italic&quot;&gt;(当然也可以是洞穴、城堡,拥有许多看似可选,但是并不能抵达重点死胡同构成。)&lt;/span&gt;是一个最高效的选择:&lt;span style=&quot;font-weight: bold&quot;&gt;为了某个不可避免的目的而深入黑暗的危险之中,在其中迷失方向,遭遇挑战和挫折挫折。最终击败巨龙,得到宝藏;或是看到洞口的光亮,逃出生天。&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;2. 定义迷宫&lt;/h1&gt;&lt;p&gt;现在到了迷宫的环节了,本质上还是&lt;span style=&quot;font-weight: bold&quot;&gt;线性体验&lt;/span&gt;,但是我们可以&lt;span style=&quot;font-weight: bold&quot;&gt;通过迷宫设计来陌生化玩家的体验&lt;/span&gt;,通过弯弯绕绕的地图和令人紧张的情绪(陷入恐怖、黑暗)&lt;span style=&quot;font-weight: bold&quot;&gt;让玩家模糊了单一的线性体验&lt;/span&gt;。并且在过程中看似玩家获得了选择的权利:&lt;span style=&quot;font-weight: bold&quot;&gt;分岔路&lt;/span&gt;,虽说殊途同归怎么样走都是抵达&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(路径终点、交付任务)&lt;/span&gt;,但是玩家误以为自己是在一个真实又庞大的世界里,可以通过自己的意识有了选择道路。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;分岔路口&lt;/span&gt;:如论是怎么分叉,只有一条道路可以&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;,那么路的类型只有两种。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;「错误道路」&lt;/span&gt;:只能回头的&lt;span style=&quot;font-weight: bold&quot;&gt;「死胡同」&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;「正确道路」&lt;/span&gt;:通往B点。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;多岔路口:&lt;/span&gt;买彩票的结果只有中与不中,所以中奖的概率是50%&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;多个死胡同&lt;/span&gt;:让玩家找到唯一「正确的路」,&lt;span style=&quot;font-weight: bold&quot;&gt;做好标记物、引导&lt;/span&gt;一面玩家分不清方向。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;通往B点的路&lt;/span&gt;:又回到了&lt;span style=&quot;font-weight: bold&quot;&gt;非线性体验&lt;/span&gt;上,其实只是只是一个选择,选择完了某一条路以后还是会变成最小体验单位的&lt;span style=&quot;font-weight: bold&quot;&gt;线性游戏&lt;/span&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;3. 叙事 &amp;amp; 玩家体验&lt;/h1&gt;&lt;p&gt;我们现在知道了&lt;span style=&quot;font-weight: bold&quot;&gt;非线性体验&lt;/span&gt;和&lt;span style=&quot;font-weight: bold&quot;&gt;线性体验&lt;/span&gt;,知道了为什么需要迷宫,这些都是有关于玩家的、关于游戏学的。在说下面的问题,让我们聊一些体验的&lt;span style=&quot;font-weight: bold&quot;&gt;前理解&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;游戏人物从出生有自己的父母;自己的朋友;有自己的生活、工作;有自己的孩子,他们一直生活到玩家接手前都活生生的人物。比如:&lt;span style=&quot;font-style: italic&quot;&gt;“和父亲外出打猎的小男孩落入迷宫,周围传来野兽的低吼,小男孩非常害怕想要快点离开迷宫找到父亲;或是孩子走丢在了恐怖的怪物巢穴中,想尽快找到孩子的父亲,既担心又着急。”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;玩家接手了人物,也接手了人物的情绪,在故事中作为孩子、作为父亲。玩家和游戏人物应该是一体的,游戏人物负责对他的生活负责,来驱动玩家;玩家负责角色的具体行动,沉浸于人物的故事当中。当然这是理论上的方法,也不是有&lt;span style=&quot;font-weight: bold&quot;&gt;叙事失调&lt;/span&gt;^1的情况,强行把游戏从故事和体验中拽出来。&lt;/p&gt;&lt;p&gt;^1: 故事人物与游戏玩家之间的割裂。&lt;/p&gt;&lt;h1&gt;4. 赛博精神病的诞生&lt;/h1&gt;&lt;p&gt;古早游戏在迷宫的「&lt;span style=&quot;font-weight: bold&quot;&gt;死胡同」&lt;/span&gt;放置了或多或少奖励,我倒推是想让玩家在走入「&lt;span style=&quot;font-weight: bold&quot;&gt;死胡同」&lt;/span&gt;的&lt;span style=&quot;font-weight: bold&quot;&gt;负反馈&lt;/span&gt;中获得一点找补,或者是粗鄙的对洞穴探险类游戏中奖励的模仿。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;而这正是对迷宫的体验造成毁灭性破坏,并导致玩家集体出现迷宫搜索症候群!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;设想我们正在这样的迷宫中,来到了一条&lt;span style=&quot;font-weight: bold&quot;&gt;岔路口&lt;/span&gt;,即使游戏引导明确标注了「正确的路」和「错误的路」,你该如何选择?如果是我,我知道在「错误的路」:&lt;span style=&quot;font-weight: bold&quot;&gt;死胡同&lt;/span&gt;可以获得一些奖励,且我不可得知奖励的大小,我肯定会选择走那条错的路。&lt;/p&gt;&lt;p&gt;我们来分析一下:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;遵循引导:&lt;/span&gt;选择「正确道路」的奖励是100分,但这是&lt;span style=&quot;font-weight: bold&quot;&gt;线性体验&lt;/span&gt;中必然可以获得,不会损失的。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;避开引导:&lt;/span&gt;而选择「错误道路」的奖励即是只有1分,加上不会失去的100分,玩家选择一次&lt;span style=&quot;font-weight: bold&quot;&gt;错误道路&lt;/span&gt;的奖励也是101分,多过「正确道路」的100分。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;得出:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;「错误道路」锁产生的负反馈被彻底消解,玩家像一个按按钮的小白鼠一样,钻到每一个可以去的死胡同,寻找那一点正反馈。&lt;/li&gt;&lt;li&gt;人总是厌恶损失的,如果某个死路存放了稀有的道具,错过了怎么办。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;结论:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;用游戏体验上「错误道路」才是「正确道路」,而「正确道路」是「错误道路」。&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;我来举个例子&lt;/h1&gt;&lt;p&gt;先不谈论探索时代的机能所限、前辈还在奠基的那些游戏:从一维游戏变成二维游戏的时代,比如一维的横版卷轴如(《超级马里奥》)变成平面的2D游戏(《最终幻想》、《仙剑奇侠传》),但是塞尔达和仙剑其实算洞穴探险、寻宝。&lt;/p&gt;&lt;p&gt;我要举例的是上一个我玩到印象深刻且最烂的关卡设计就是&lt;span style=&quot;font-weight: bold&quot;&gt;《荒野大镖客:救赎2》 &lt;/span&gt; 在TGA2018上的不敌的年度游戏「新《战神》4」:以我8~12小时的浅显体验[^难以下咽的游戏体验和失调的叙事]且模糊记忆带着偏见拿它举例,玩家在开放世界随着进程解锁并选择游玩关卡,然后进行较长时间的大段&lt;span style=&quot;font-weight: bold&quot;&gt;线性关卡&lt;/span&gt;,所以游戏中充满了各式各样的迷宫。&lt;/p&gt;&lt;p&gt;设计师在地图的死胡同里塞了各种各样奇怪的宝箱,装着一堆没有用的垃圾道具。引导着玩家在迷宫里四处奔走,以寻找遗失的宝箱。而融入人物,和人物的完成目标:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;我在怪物巢穴走丢的儿子肯定不会死,但是我的宝箱错过了就真没了;&lt;/li&gt;&lt;li&gt;我也不用着急找我爸,死了能读档,走出迷宫之前每一个宝箱都必须打开。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;暗黑迷宫的危险、恐惧荡然无存,从紧张的气氛变成一个气氛欢乐的大型零元购超市,甚至都没法装作我在恐怖的巢穴里;在你的回忆里肯定有过同样难以忍受的体验,甚至有些设计师甚至会在迷宫中的死胡同里放一些稀有道具、甚至世界唯一道具!当玩家遇到这种游戏时,只能期待自己选择的是「正确的错误的道路」,因为不小心选择了「错误的正确的道路」而懊恼不已,扭头转向跑回「正确的错误道路」,避免错过什么稀有道具。&lt;/p&gt;&lt;p&gt;躲在洞穴角落的怪物看着在迷宫里来回穿梭翻箱倒柜的勇者时,&lt;span style=&quot;font-style: italic&quot;&gt;“俺寻思这不是恐怖的怪物巢穴吗?咋是他家客厅”&lt;/span&gt;。一个个巴普洛夫的战神训练了玩家,如此彻底摧毁了玩家在所有游戏的沉浸体验,你在任何游戏中都喜欢搜索每一个角落,以免错过一点存到游戏结束都没舍得用的垃圾道具,为了这几个屁用没有的小道具,变成了在迷宫里兜兜转转寻找快感按钮的小白鼠,我们还是在玩游戏吗?沉浸感、代入感被打破的时候,玩家就从游戏、故事中抽离了出来,我们还是在游戏里冒险的那个人物吗?&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;只看待结果的话,所有人都会抵达那唯一的终点,“但是,这一切值得吗?”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;或许你想说,过程不重要,也有人喜欢搜集东西挺爽的,最终不是都抵达&lt;span style=&quot;font-weight: bold&quot;&gt;B点&lt;/span&gt;了嘛。&lt;/p&gt;&lt;p&gt;那么我认为:迷宫的的宝箱是在二十年前探索时代的开发者冒险,我能理解。但是在游戏、叙事、体验都非常发达的现代,无数开发者已经尝试了更先进更科学的方式让玩家可以获得更好的体验,还有这种不负责的偷懒的方式让信赖你的玩家患上赛博精神病,我觉得这样不对。&lt;/p&gt;&lt;h1&gt;4. 我治好了赛博精神病&lt;/h1&gt;&lt;p&gt;现在开始拉踩了,点名表扬文章开头提到的《天国:拯救2》。&lt;/p&gt;&lt;p&gt;那时我在捷克的地下矿坑,无数次的察觉了&lt;span style=&quot;font-style: italic&quot;&gt;(关卡引导)&lt;/span&gt;离开的路在前方,但是我一次次毅然决然的选择了错误的道路。经历了一个又一个的地下矿坑和城堡密道,像个小白鼠一样在迷宫里的每个死胡同里四处探索,直到某一刻,我发现并不需要把把神志从亨利身上脱离,变回在现实世界肥头大耳的玩家。&lt;span style=&quot;font-weight: bold&quot;&gt;我就是亨利,亨利也是我,一个不想做一辈子重复工作的一个铁匠,一个不想日复一日做着机械工作的普通人;一个渴望改变、渴望冒险的劳动者,一个想要给一眼望尽的枯燥人生扩宽一些些的普通人,哪怕就这么一会,能够放轻松,享受游戏就好。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;“我,斯卡里茨的亨利,不幸遇到落入矿井深处,深邃地底的压迫感和无尽的黑暗,恐惧充斥着我的全身,此刻我点亮火把只想迅速离开;而我,斯卡里茨的亨利,在漆黑的无人矿井中寻找着一切离开矿井的蛛丝马迹,带着惶恐和紧张好不回头的逃离了矿井。”&lt;/span&gt;我信任了战马工作室,他们也没有辜负。先放下生活里的一切,我就是亨利,一个中世纪捷克侍奉傲娇公主的倒霉蛋,马不停蹄的展开进行着 亨利的奇妙冒险。&lt;/p&gt;&lt;p&gt;所以,治好迷宫搜索症候群的方法找到了:&lt;span style=&quot;font-weight: bold&quot;&gt;「错误的道路不应该有任何奖励,奖励只应该出现在正确的道路上」 &lt;/span&gt;开发者应该重新建立与玩家的信赖关系,让迷宫回到迷宫的本质,让游戏回归到游戏的本质。在如今游戏设计蓬勃发展的今天,游戏的更多的可能性:游戏性、叙事性、体验性都可以作为游戏的重点。让玩家放松的去享受游戏、感受觉得奇妙的故事、人物的情感,拓宽生命的宽度,而不是被远古的爬行脑所控制。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h1&gt;5. 但是&lt;/h1&gt;&lt;p&gt;但是,这份与开发商的信任又能坚持多久,下一个圣莫妮卡&lt;span style=&quot;font-style: italic&quot;&gt;(1.企业不可以拟人化,人员变动会让企业的人格有极大的变化。说不定下一坨就香了呢。2.不是针对他,只是针对TGA)&lt;/span&gt;带着它的年度游戏来摧毁你的心智,让你在再次成为赛博精神病,强迫着自己在迷宫中一个又一个的搜索死胡同时,我们又能如何呢?&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/194810</link>
      <guid isPermaLink="false">gcores-194810</guid>
      <pubDate>Tue, 18 Feb 2025 05:35:35 GMT</pubDate>
      <author>飛鳥Poter</author>
      <enclosure url="https://image.gcores.com/4874b06e08155b46f2c714d8a9d5694c-1080-506.png" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/4874b06e08155b46f2c714d8a9d5694c-1080-506.png"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/81d0b251-f1b2-4d1c-baed-7d86fa1d5223.mp3" length="884" type="audio/mp3"></enclosure>
      <itunes:duration>0:14:44</itunes:duration>
      <category>知识挖掘机</category>
    </item>
    <item>
      <title>图形AI粗读丨三维重建——立体视觉篇(上)</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;图形AI粗读丨三维重建——立体视觉篇(上)&quot; src=&quot;https://image.gcores.com/0b8500a83d5ee2502cc658af193ab43c-1518-1041.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;从零开始读:AI生成3D的脉络及现状&lt;/blockquote&gt; &lt;h1&gt;前言&lt;/h1&gt;&lt;p&gt;如果说2025年春节期间有什么关键词,DeepSeek和AI肯定是其中之一。虽然敲一些关键字就能生成游戏的时代还没有完全到来,但AI确实在快速更新人们使用计算机和互联网的方式。&lt;/p&gt;&lt;p&gt;以我个人体验来说,目前DeepSeek在很多时候都是比百度和google更好的查资料来源(知识类、交通出行、概括总结等);虽然偶尔也有一些细节上的错误,但也可以通过对话指出其问题使其自动纠错。&lt;/p&gt;&lt;p&gt;而在游戏相关的领域,其实之前虚幻官方力推的&lt;span style=&quot;font-weight: bold&quot;&gt;基于照片扫描的三维重建(3D Reconstruction)&lt;/span&gt;就已经得到广泛应用了。这是一项从前AI时代就开始提出的技术线,现在正在被AI深度学习狠狠地加持发展。如果说之前提这个事情还比较抽象的话,相信经历了《黑神话:悟空》以后,大部分玩家应该也清楚了照片扫描能达到的效果。&lt;/p&gt;&lt;p&gt;AI三维重建的另外几个方向,比如视频生成、3D模型生成等也在不断发展。在目前比较新的技术线上,其推算与生成的性能和准确度是由被称为&lt;span style=&quot;font-weight: bold&quot;&gt;高斯点云渲染(Gaussian Splatting)&lt;/span&gt;的算法来保证,而其在AI领域的更早期的技术是&lt;span style=&quot;font-weight: bold&quot;&gt;神经网络辐照度场(NeRF)&lt;/span&gt;。这些可能都是我后面会读到的内容——在这个系列的“上半场”应该都还不会读到AI相关的内容,而是以一些基础算法和理论为主。&lt;/p&gt;&lt;p&gt;至于AI生成图象和动画,以及从视频进行动作捕捉等,目前已经进入了非常成熟足够商用的阶段了。但我个人的读文章系列中可能不会涉及这两部分。&lt;/p&gt;&lt;p&gt;对我个人而言,要基本看懂三维重建相关的内容还是难度不小的。目前这个系列我计划在一年内以写翻译笔记的形式更新我的学习心得,如果有理解得不对的地方也欢迎指正。&lt;/p&gt;&lt;p&gt;为了赶时髦,我让DeepSeek帮我总结了一下三维重建的一些关键点,构成了第一部分。另外还是老样子,PPT部分以翻译为主,打星号的部分是我的个人理解或补充。&lt;/p&gt;&lt;h1&gt;一、三维重建的历史脉络&lt;/h1&gt;&lt;p&gt;*这部分DeepSeek的概括我觉得足够好了,因此就没删改(包括标点符号和样式)——大家可以感受下。基本上我的三维重建粗读计划就是基于这些关键词来进行的。&lt;/p&gt;&lt;h3&gt;1. &lt;span style=&quot;font-weight: bold&quot;&gt;早期探索(1960s-1970s)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;计算机视觉的诞生&lt;/span&gt;:20世纪60年代,计算机视觉领域开始兴起,研究者尝试从二维图像中提取三维信息。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;基础理论&lt;/span&gt;:70年代,研究者提出了许多基础理论,如立体视觉(Stereo Vision)和结构光(Structured Light)技术。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;2. &lt;span style=&quot;font-weight: bold&quot;&gt;算法发展(1980s-1990s)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;立体匹配&lt;/span&gt;:80年代,立体匹配算法得到显著发展,研究者提出了多种匹配方法,如基于区域的匹配和基于特征的匹配。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;多视角几何&lt;/span&gt;:90年代,多视角几何理论逐渐成熟,研究者开始利用多张图像进行三维重建。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;3. &lt;span style=&quot;font-weight: bold&quot;&gt;技术进步(2000s-2010s)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;激光扫描&lt;/span&gt;:2000年代,激光扫描技术(LIDAR)被广泛应用于三维重建,尤其是在建筑和考古领域。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;结构光与深度相机&lt;/span&gt;:2010年代,结构光和深度相机(如Microsoft Kinect)的出现,使得实时三维重建成为可能。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;4. &lt;span style=&quot;font-weight: bold&quot;&gt;深度学习与AI(2010s-至今)&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;深度学习&lt;/span&gt;:2010年代后期,深度学习技术被引入三维重建领域,显著提高了重建的精度和效率。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;自动化与实时重建&lt;/span&gt;:近年来,基于AI的三维重建算法能够实现自动化和实时重建,广泛应用于虚拟现实(VR)、增强现实(AR)和自动驾驶等领域。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;5. &lt;span style=&quot;font-weight: bold&quot;&gt;未来展望&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;高精度与实时性&lt;/span&gt;:未来,三维重建技术将继续向高精度和实时性方向发展。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;多模态融合&lt;/span&gt;:结合多种传感器和数据源(如RGB图像、深度图像、激光扫描等)进行多模态融合,进一步提升重建效果。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;三维重建技术的发展历程反映了计算机视觉、传感器技术和人工智能等多个领域的进步,未来有望在更多应用场景中发挥重要作用。&lt;/p&gt;&lt;p&gt;*这次读立体视觉(Stereo Vision)我选择了斯坦福大学Professor Fei-Fei Li 在2021年的课件。篇幅原因这次会读其中的前半部分。&lt;/p&gt;&lt;h1&gt;二、立体视觉概述——Introduction to stereo vision&lt;/h1&gt;&lt;p&gt;*部分页数显示不连贯,可能是我抽选了一些页,也有些是课件本身就没标。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1243&quot; src=&quot;https://image.gcores.com/b5ea2ea926b03cdf1d5354495e3cbb0e-1683-1243.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里提出了降维机器(3D到2D)的概念,例如相机就是一种降维机器。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;针孔相机(小孔成像)&quot; width=&quot;1686&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/cc2c1f57e59835f4464df17a5a5f8850-1686-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;能对焦点前方的范围成像&lt;/li&gt;&lt;li&gt;移动成像平面能使图像内容缩放 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*图中标出了在前后等距的位置可以视为有一个“虚拟图像”,前后两者是颠倒但是尺寸相同的。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;真实世界的点和摄像机中的点关联&quot; width=&quot;1765&quot; height=&quot;1324&quot; src=&quot;https://image.gcores.com/85bd97c258a27e0f3e908b8db151a21a-1765-1324.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里列出了一个基础的&lt;span style=&quot;font-weight: bold&quot;&gt;齐次坐标&lt;/span&gt;(homogeneous coordinates) 变换,其目的是计算真实世界的一点P是如何对应到成像平面的P&#39;点的。其中XYZ是P的坐标。&lt;/p&gt;&lt;p&gt;*这里假设了变换矩阵M是一个“理想型”,即它符合这些预设:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;内在假设:统一的纵横比;光学中心在(0,0)点;没有偏斜。&lt;/li&gt;&lt;li&gt;外在假设:没有旋转;摄像机在(0,0,0)点。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*齐次坐标我还能联想到的应用就是在游戏引擎计算&lt;span style=&quot;font-weight: bold&quot;&gt;视锥体透视投影&lt;/span&gt;时。这里附一张图但是不展开了,有兴趣的还是可以去看Games101。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1342&quot; height=&quot;646&quot; src=&quot;https://image.gcores.com/c08911d9328488334728f9b7fbd5beac-1342-646.jpeg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1764&quot; height=&quot;1320&quot; src=&quot;https://image.gcores.com/c0e46a87efa9cb5f84e5f9bf09f7f8cb-1764-1320.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里矩阵K提出去,内部变成了单位矩阵I的形式。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;假设f=2,在矩阵计算器中还原了一下。&quot; width=&quot;580&quot; height=&quot;133&quot; src=&quot;https://image.gcores.com/36bf12a9360f829a14b28f0ea06e8035-580-133.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;真实世界的摄像机&quot; width=&quot;1768&quot; height=&quot;1324&quot; src=&quot;https://image.gcores.com/e0371d985aa85a907f7a270f8f7a3b1f-1768-1324.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;内在假设:光学中心在(u0,v0)点;矩形像素点阵;轻微的偏斜。&lt;/p&gt;&lt;p&gt;*这部分内在假设反映在变换矩阵中,u0、v0在矩阵中的位置用于计算平移,而α和β则反映了纵横比的不统一,系数s则用于计算偏斜(扭曲)值。偏斜可以想象矩形扭成平行四边形的情况。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;真实世界的相机+真实世界的变换&quot; width=&quot;1767&quot; height=&quot;1323&quot; src=&quot;https://image.gcores.com/8ff86587bab882ef016584848433b4df-1767-1323.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;外在假设:允许旋转,摄像机在(tx,ty,tz)点。&lt;/p&gt;&lt;p&gt;*对应其中r系列的9个参数用来表示旋转变换,而t系列3个参数表示摄像机的平移变换。&lt;/p&gt;&lt;p&gt;*至此内在假设和外在假设都变成了参数矩阵,并且两者相乘也被赋予了意义。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;从图像中还原3D&quot; width=&quot;1687&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/d0cdcfc2689c4cfac2269ea5e19dc45f-1687-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;我们如何从图像中计算3D几何信息呢?——哪些图像中的线索能提供3D信息?&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;明暗&quot; width=&quot;1687&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/a44702094d17dce045a7c878c97f5a44-1687-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中的这个公司Merle Norman Cosmetics是一个换妆品牌子,和主题无关。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;纹理&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/34358ff7b10e03f7459aaf24f6688758-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里指有一定规律的纹理走向。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;焦点&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/5ba5a1838f92ff7f551fe7cf710bb80a-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;动态&quot; width=&quot;1681&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/d6dfc1dc2a66cacff808653b61c47e18-1681-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/d6ab2bff3ca3452aa74e450b06ab116f-1683-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;其它:高光、阴影、剪影、内反射、对称型、光学偏振等。&lt;/p&gt;&lt;p&gt;课件中会聚焦在motion这一类线索——追踪图像中某些特征点在不同图像空间的位置。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;立体重建&quot; width=&quot;1684&quot; height=&quot;1252&quot; src=&quot;https://image.gcores.com/78c6b0a7410710d3a86ce387bb087824-1684-1252.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;立体课题(指为什么要使用多视角):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;通过两张(或更多)图片生成形体&lt;/li&gt;&lt;li&gt;生物性动机(人眼)&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;1. 二比一更好&quot; width=&quot;1684&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/def949e10b8ebfd18c029492821d0e1c-1684-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;2. 从汇聚点还原深度&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/0cd18de0d224ff8b071fd12a69eb1a42-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*基于人眼可以感受双眼夹角的原理,通过图中的公式就可以计算出距离。&lt;/p&gt;&lt;h1&gt;三、对极几何的简单引入——Epipolar geometry: a gentle intro&lt;/h1&gt; &lt;figure&gt;&lt;img alt=&quot;对极几何&quot; width=&quot;1686&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/e95d3e8003a36e4103ab707c76eda91a-1686-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里引入了几个基本概念:对极平面、基线(黄色)、对极线。&lt;/p&gt;&lt;p&gt;*其中极点e、e&#39;表示:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;基线和图像平面的交点&lt;/li&gt;&lt;li&gt;另一摄像机中心的投影&lt;/li&gt;&lt;li&gt;摄像机动态方向的消失点&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img alt=&quot;例子:汇聚图像平面&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/d12dd87c1ac0d0527736783617afad9d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;对极约束&quot; width=&quot;1686&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/8effbee7f74d3b0e1503b6a4b9b88be6-1686-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;同一个物体的不同视角&lt;/li&gt;&lt;li&gt;假设已知摄像机的位置和矩阵&lt;/li&gt;&lt;li&gt;给定一个左侧图片的点,如何确定右侧图片中该点的位置?&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1683&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/8543cdf90203a2c3a8c8dcc9e2db1f6a-1683-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;p点的潜在匹配点必须在对应的极线l&#39;上。&lt;/li&gt;&lt;li&gt;p&#39;点的潜在匹配点必须在对应的极线l。&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/fb62d7ca0736c85faeb0a592fe91f7cd-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*图中右侧上方应该是p&#39;点,课件应该是写错了。p和p&#39;都是在各自图像平面上投影的点。&lt;/p&gt;&lt;p&gt;*M是左侧摄像机对应的矩阵,写成了之前一节中的形式,K对应之前提到的内部假设,后面的单位阵I是默认旋转矩阵、0则是默认位移矩阵。&lt;/p&gt;&lt;p&gt;*M&#39;则是经过了旋转R和平移T之后的摄像机矩阵。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/747e550034e6abc6ddfb02aaa04c3905-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*两者的K值是由校准相机(calibrated camera)的参数来确保的。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/a48540df4151855f15322a810fda8e50-1684-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*T叉乘(Rp&#39;)得到的向量与对极平面垂直。&lt;/p&gt;&lt;p&gt;*p的转置与之的点乘等于0——代表两者也垂直。矩阵的转置可以理解为将其行列翻转的结果。&lt;/p&gt;&lt;p&gt;*向量点乘得到的是一个标量,而叉乘得到的是一个与两者垂直的法向量。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;向量叉乘转为矩阵乘法&quot; width=&quot;1687&quot; height=&quot;1260&quot; src=&quot;https://image.gcores.com/194f56a9d83b0b73418809d777b5c6cf-1687-1260.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里引入了一个&lt;span style=&quot;font-weight: bold&quot;&gt;斜对称矩阵&lt;/span&gt;的概念,其对角线上值为0,其它位置的值分布如图。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;作为参照这里展示了向量叉乘的计算结果&quot; width=&quot;611&quot; height=&quot;245&quot; src=&quot;https://image.gcores.com/80c576f16562b69243fc453730992596-611-245.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img width=&quot;1687&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/fb1b9b95fd3053e7389a2f3660e86873-1687-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*将之前叉乘的部分转换为矩阵点乘,其中提出的部分被称为&lt;span style=&quot;font-weight: bold&quot;&gt;本质矩阵&lt;/span&gt;。通过它可以快速运算出另一个图像中的极线。&lt;/p&gt;&lt;p&gt;*这一概念于1981年由Higgins提出,这一概念的翻译也在矩阵学中被广泛使用。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/070d78e3ee1a482e89dd834dcd6e2322-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;本质矩阵的一些特质如下:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;E乘p&#39;是与p&#39;相关的极限l。&lt;/li&gt;&lt;li&gt;“E的转置”乘p是与p对应极线p&#39;。&lt;/li&gt;&lt;li&gt;E是一个&lt;span style=&quot;font-weight: bold&quot;&gt;奇异矩阵&lt;/span&gt;。它没有逆矩阵,并有着EX=0有无限多解的特性。&lt;/li&gt;&lt;li&gt;E乘e&#39;等于0,E的转置乘e等于0。(这类计算时e和e&#39;视为向量)&lt;/li&gt;&lt;li&gt;E是一个3X3的矩阵,它有着5的&lt;span style=&quot;font-weight: bold&quot;&gt;自由度&lt;/span&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*DOF是degree of freedom的缩写,以通俗但不算准确的方式来描述,矩阵自由度值有其中最少多少个参数能确定其约束;又由于&lt;span style=&quot;font-weight: bold&quot;&gt;对极约束是等式为零的约束&lt;/span&gt;,所以对E乘以任意非零常数后,对极约束仍然满足——这件事情称为E在不同尺度下是等价的。 基于平移3个参数、旋转3个参数,尺度等价减1(指其它参数可以按一个参数做等比例缩放),得到自由度为5。&lt;/p&gt;&lt;h1&gt;四、平行图片与图像校正——Parallel images &amp;amp; image rectification&lt;/h1&gt; &lt;figure&gt;&lt;img alt=&quot;最简单的例子——平行图片&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/564070432ef9d87b986902288bf2f550-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;ul&gt;&lt;li&gt;摄像机的图像平面彼此平行并与基线平行&lt;/li&gt;&lt;li&gt;摄像机中心在同一高度&lt;/li&gt;&lt;li&gt;焦距相同&lt;/li&gt;&lt;/ul&gt; &lt;figure&gt;&lt;img width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/e8c465e2e8aaefc1c8d8a9d21a53167d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;此时,极线就沿着图片的水平扫描线分布。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;平行图片的本质矩阵&quot; width=&quot;1684&quot; height=&quot;1261&quot; src=&quot;https://image.gcores.com/9bb0f51dfe32d6af1ddb971fe36067e6-1684-1261.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*这里将t按照之前的规则转换成斜对角矩阵[tx],而R是单位矩阵——这样就得到E。&lt;/p&gt; &lt;figure&gt;&lt;img width=&quot;1684&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/1238ee8b0d32198309f41d481d60ae59-1684-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*由于矩阵乘是有&lt;span style=&quot;font-weight: bold&quot;&gt;结合律&lt;/span&gt;的,因此可以得出v=v&#39;的结论,即图中所说的对应两点的y坐标相同。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;三角测量——依据差异计算深度&quot; width=&quot;1684&quot; height=&quot;1263&quot; src=&quot;https://image.gcores.com/dda28ba640828ac8b63b50110c7d088d-1684-1263.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;*差异(disparity)值是&lt;span style=&quot;font-weight: bold&quot;&gt;和深度成反比&lt;/span&gt;的。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;立体图像校正&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/f57ba8aedb73f121d4d7c48272fed27d-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;p&gt;算法:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;重投影图像平面,至两个与视觉光学中心线平行的平面上。&lt;/li&gt;&lt;li&gt;这次变化之后像素的移动是水平的。&lt;/li&gt;&lt;li&gt;两个变换矩阵,对应每个输入图片的投影各一个。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;*直译过来稍微有些别扭,但结合示意图理解,实际上是想用多一个步骤的图像平面变换来达到简化计算以及利用三角测量的意义。&lt;/p&gt; &lt;figure&gt;&lt;img alt=&quot;校准示例&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/21d74202793a0a62de0ee8bd8b7c7086-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;应用:视觉变形&quot; width=&quot;1684&quot; height=&quot;1264&quot; src=&quot;https://image.gcores.com/e5ba0362deb461f105856e259043b238-1684-1264.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;figure&gt;&lt;img alt=&quot;移除透视扭曲(校正)&quot; width=&quot;1080&quot; height=&quot;810&quot; src=&quot;https://image.gcores.com/4012d5f7a0e0c88fde5ed3c9e9f28bf9-1080-810.png&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;h1&gt;结语&lt;/h1&gt;&lt;p&gt;由于课件没有解说稿,因此能感觉到有些部分直接上各种公式计算还是缺一点铺垫。而如此高密度的各种矩阵计算,有些我能掌握,也有很多方面我是纯萌新——有些东西只能概念性的把握一下,没法深入再去了解了。&lt;/p&gt;&lt;p&gt;但尽管如此,相信不管是我还是读到这里的各位,应该能从示意图感受到这些计算机视觉领域的前期研究是在处理哪些方面的问题,并为之设计了哪些数学工具和算法的。&lt;/p&gt;&lt;p&gt;尽管只是开了个头,距离读到最前沿和AI都还挺远,但也算是开启了这个读计算机视觉和三维重建方面文章的系列。下周会继续更新这篇课件的下半部分。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;最后是一些资料链接:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Computer_stereo_vision&quot; target=&quot;_blank&quot;&gt;立体视觉的WIKI&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/645991529&quot; target=&quot;_blank&quot;&gt;一篇介绍本质矩阵的知乎&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://matrixcalc.org/zh-CN/&quot; target=&quot;_blank&quot;&gt;一个实用的矩阵计算器工具&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://ww2.mathworks.cn/help/vision/ug/camera-calibration.html&quot; target=&quot;_blank&quot;&gt;介绍摄像机校准的一篇文章&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://vision.stanford.edu/teaching/cs131_fall1415/lectures/lecture9_10_stereo_cs131.pdf&quot; target=&quot;_blank&quot;&gt;斯坦福大学这篇课件的地址&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; </description>
      <link>https://www.gcores.com/articles/194564</link>
      <guid isPermaLink="false">gcores-194564</guid>
      <pubDate>Thu, 13 Feb 2025 23:11:40 GMT</pubDate>
      <author>Hakumen</author>
      <enclosure url="https://image.gcores.com/0b8500a83d5ee2502cc658af193ab43c-1518-1041.png" type="image/jpeg"></enclosure>
      <itunes:image href="https://image.gcores.com/0b8500a83d5ee2502cc658af193ab43c-1518-1041.png"></itunes:image>
      <enclosure url="https://alioss.gcores.com/uploads/audio/7d453afe-826a-47cc-acaf-ba9770c639ca.mp3" length="811" type="audio/mp3"></enclosure>
      <itunes:duration>0:13:31</itunes:duration>
      <category>知识挖掘机</category>
    </item>
    <item>
      <title>关于游戏叙事设计,我们应该如何武装自己的头脑?</title>
      <description>&lt;figure&gt;&lt;img alt=&quot;关于游戏叙事设计,我们应该如何武装自己的头脑?&quot; src=&quot;https://image.gcores.com/98b4aadab80aa6319c914a0fba8610a8-1275-718.jpg&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/figure&gt; &lt;audio controls=&quot;&quot;&gt;&lt;source src=&quot;https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3&quot; type=&quot;audio/mp3&quot;&gt;&lt;object data=&quot;https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3&quot;&gt;&lt;embed src=&quot;https://alioss.gcores.com/uploads/audio/1b45c7b8-67fb-4d9f-acf3-87b26bd835e8.mp3&quot;&gt;&lt;/object&gt;&lt;/audio&gt; &lt;blockquote&gt;这是一篇一万六千字的长文。Deepseek帮我吹牛:我这是尝试在商业性与艺术性之间,搭建可落地的游戏叙事工程学 。&lt;/blockquote&gt; &lt;h1&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;前言:为什么在设计叙事前我们需要武装头脑?&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;2024年六月底,我在学习了媒介社会学相关的知识后,受视野被开拓的热情与灵感所驱动,开始写作杂谈《从媒介的视角看游戏文案的困境与出口》。我先后发布了涉及“困境”的上、中两篇,但唯独最关键的探讨“出口”的下篇却难产了。在写下下篇的大纲后,我看着大纲,忽然意识到这可能只会是一篇伪学术垃圾。越是从媒介学的视角探讨,我们便越能看到游戏在成为复杂的综合艺术之前,先是一个精密运转的现代文化产业的产品。我当然可以高屋建瓴地大谈特谈行业可能的出口,但最后能落到实际而对阅读文章的大家真正有意义的,恐怕只有“游戏文案该怎么做”这一小部分了。 &lt;/p&gt;&lt;p&gt;而游戏文案该怎么做呢?&lt;/p&gt;&lt;p&gt;从入行开始,我便一直在思考这个问题,但若我真正将这部分作为文章的核心内容,以我的实践经验和理论储备,真的能回答好这个问题吗?在2024年中旬的我还没有这样的信心。而随后的2024年下半年,也算机缘巧合,我为两个项目快速地从0到1搭建了比较完整的虚构层框架。虽然它们的体量都不算大,但最终的效果让我对自己长久以来形成的思维方式和积累的方法论有了一些自信。所以正值2025年的新年,我希望将它们分享出来,作为《从媒介的视角看游戏文案的困境与出口》真正的下篇,为去年的理论探索收尾。也用作抛砖引玉,来和大家一起探讨,在新的一年里为成为更好的游戏文案的奋斗作开篇。&lt;/p&gt;&lt;p&gt;同时在上面两个项目的开发过程中,我再次意识到,只探讨游戏文案怎么做往往还不能真的导向一个叙事优秀的游戏。正如我在《从媒介的视角看游戏文案的困境与出口(中)》里面提到的:&lt;/p&gt;&lt;blockquote&gt;理论上的文案策划的职能在实际开发中被分化出去了,这是游戏这种媒介的经济模式和市场需求所决定的。如果相关岗位的从业者对游戏文案、虚构层包装都有着比较全面、系统的认识,能够在此基础上密切配合,最终一起实现一套优秀的包装,想来也不会有文案策划有怨言。但这却偏偏是现阶段业内的文案策划们比较无奈的事。 &lt;/blockquote&gt;&lt;p&gt;所以,最终这篇文章会不只是面向游戏文案,而是面向所有对游戏叙事设计有兴趣的游戏开发者。我希望尽可能从游戏叙事的底层出发,去帮助大家达成上面提到的“对游戏文案、虚构层包装都有着比较全面、系统的认识”。这篇文章的核心便从“游戏文案该怎么做”,转为了“在设计游戏叙事前,设计者应该做好哪些认知上的准备”。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;在开始之前我们先再次确认一下进行认知准备的必要性:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;玩家审美迭代加速&lt;/span&gt;&lt;/li&gt;&lt;li&gt;回顾游戏叙事的发展史,如今游戏设计者的总体叙事水平无疑是高于两千年初的。但在我们心中,当今称得上叙事经典的作品涌现的频率似乎并没有提高。这侧面反映了我们作为玩家的审美水平也在提升。且玩家对游戏叙事的要求只会越来越高,直到游戏不再能满足玩家对故事的需求,他们便转向别的媒介来满足这种需求。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;工业化生产需求&lt;/span&gt;&lt;/li&gt;&lt;li&gt;游戏规模的扩张带来游戏开发团队的膨胀,工种越分越细,而知识区隔使沟通成本膨胀。而对游戏叙事较统一的整体认知能极大减少策划、美术、音频团队在产出叙事方面内容时的沟通成本,也能保证大家在团队合作中能在充分理解需求的前提下发挥自己的创造力,从而提升产出质量。&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;叙事媒介特殊性&lt;/span&gt;&lt;/li&gt;&lt;li&gt;游戏叙事有着它独有的特点,在实践中不能将其他艺术门类的叙事理论简单套用过来。先跳出文学、影视的叙事理论,从交互性的根本来理解游戏叙事非常有必要。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;而在建立正确的认知之前,我们还需要澄清几个常见的认知误区:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-style: italic&quot;&gt;(以下案例皆由我真

@TonyRL TonyRL merged commit cfd8de9 into DIYgod:master Feb 21, 2025
31 checks passed
@nczitzk nczitzk deleted the fix/gcores-collections branch February 21, 2025 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Auto: Route Test Complete Auto route test has finished on given PR Route
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants