制作中的 Guerilla Render
引言
如果你读过我的书,你可能已经注意到我是 Guerilla Render 的粉丝。我只在一部作品 Playmobil the movie(导演:Lino Di Salvo)中使用过这款出色的软件,但我几乎立刻就爱上了它。
在我们深入探讨 Guerilla 之前,我想声明一下,我并不为 Mercenaries Engineering 工作。 我写这篇文章是因为我一直在用 Playmobil 中使用的酷炫功能烦扰很多很多同事……而且多亏了我的网站,我现在甚至可以烦扰更多人。😉
玩笑归玩笑,我认为这部作品中有一些非常强大的想法值得提及和分享。灯光工作流程目前是行业内的热门话题,所以我觉得写一篇关于它的文章会很有趣。我还想声明,这里介绍的所有功能都已在生产中使用过。 绝无虚言!
生产实例
此外,我完全承认 Playmobil 在商业上并不成功 这一事实。没有必要隐瞒这一点,也无须回避那些 严厉的 YouTube 视频。我也同意这个项目在灯光方面还有改进的空间。
尽管如此,我们尽了最大努力,我为我们的灯光团队所完成的工作感到非常自豪。 我相信 Playmobil 没有获得它应得的成功。有时只是运气不好……我要感谢我在 On Animation 的前同事们允许我写这篇文章以及他们的支持。
我还将展示来自一部名为 Minuscule 2 的精彩电影的一些非常酷的渲染图,以阐述我的一些想法。视觉特效是由一家规模虽小但才华横溢的工作室 The Yard VFX 完成的。我相信 Guerilla 在这部电影中得到了最高效的运用。感谢 Laurens Ehrmann 对本文的支持。让我们开始吧!
什么是 Guerilla?
Guerilla Render 是一款装配软件,也是一个 双向路径追踪渲染引擎。这段出色的代码正是我对现代渲染引擎的期望。它采用了节点化、程序化和非破坏性的工作流程,并运用了尖端技术。
我该如何快速描述 Guerilla?也许最好的开始方式是实际展示一个使用了 Guerilla 部分最佳功能的镜头。让软件自己说话!
单向(Uni)和双向(VCM)有什么区别?双向会从灯光和相机发射光线,然后将它们连接起来。顺便说一下,Arnold 是单向路径追踪,就像 Glimpse(Animal Logic)一样。
镜头示例
我仍然清晰地记得我爱上 Guerilla 的那一刻。下面的镜头让我意识到 Guerilla 有多么强大。 通常 CG 中禁止做的一切,在这个镜头中都实现了:
电影中的最终镜头。
- 3D 运动模糊:已启用!
- 3D 景深:已启用!
- 体积全局光照渲染(超重的 VDB):已启用!
- 双向路径追踪:已启用!
- 俄罗斯轮盘赌和自适应采样:已启用!
- 全局 16 次反弹:已启用!
- 一个 Beauty 通道:已启用!
- 深度 ID:已启用!
- 网格灯光:已启用!
- 置换、次表面散射和程序化毛发:已启用!
- 2048 个 AA 采样:已启用!
- 光路表达式:已启用!
- 透过折射玻璃渲染整个背景:已启用!
就我个人所知,只有两款渲染引擎能够处理如此多的功能:Guerilla 和 Glimpse。奇怪的是,它们的行为方式非常相似。
镜头描述
这个镜头是一个大约两分钟长、包含约 40 个镜头的夜戏的一部分。在 Rémi 的监督下,我们采用了日拍夜的手法来获得这种在动画长片中非常流行的柔和蓝色照明。
在这个特定的镜头中,我们希望火山成为兴趣中心。因此,我们关闭了月亮和天空,以增强火山的戏剧性效果。我们并不害怕打破连续性来服务于故事的目的。 总共有超过四十盏灯。对 Guerilla 来说不是问题!
- 自然光:火山光。
- 实用光:彩灯、车头灯、窗户和挡风玻璃。
- 戏剧性灯光:一些反弹光、带遮光板的顶光和轮廓光……应有尽有!

120_guerillaRender_020_screenshot_411000007_FHD
(第 2/7 段)
Guerilla Render 中的 UI 和 RenderGraphs。
如果你好奇我们在实际制作中使用多少次光线反弹,这里有一些例子:Animal Logic 使用 12 次反弹,Disney 使用 10 次,On Animation 使用 16 次,Cinesite FA 使用 1 次。根据我所见的测试,反弹次数不要低于 6 次!
在我看来,保持漫反射、反射和折射的反弹次数一致也相当重要。
灯光与合成
我们确实输出了一些 AOVs 作为安全网,以防我们想在合成中调整某些渲染。但在这个镜头序列中并没有发生这种情况。 我们对 CG 结果非常满意,正如你所见,Guerilla Render View 和 Nuke 的最终输出之间没有太大差异。它们非常相似。

120_guerillaRender_010_playmo_sht_410000007_cmpren_FHD
这个镜头的最终渲染和 AOVs。
我们本可以添加一些细节吗?窗户和门上的一些划痕会有所帮助。CG 中的细节成本很高,但它确实能让画面更丰富。
我同意,一些精细的合成调整会是一个加分项。
关于 CG 渲染应该多接近最终输出,存在一场辩论。许多灯光师认为我们应该以“原始”状态打光(比如平光),然后在合成中完成最终效果。
我曾经也这么认为。直到我去了 Animal Logic,并且在 Playmobil 上也是如此。在这两个项目中,我们都能够尽可能地将灯光和渲染做到接近最终结果。 这真是太棒了。以下是支持这种方法的一些简要理由:
- 我个人希望打光尽可能接近最终结果,而不是绕弯路。直奔最终画面。
- Guerilla 和 Glimpse 在采样方面处理得很好,在我们的渲染中获得一些对比度不是问题。
- 归根结底,真正重要的是在最终输出中为 DI 保留足够的动态范围。 我仍然记得 Craig 在最终批准前的质量检查中调整曝光和伽马值。
无论如何,回到上面的镜头……你能想象如果没有 3D 景深,需要多少层吗?之后我们又该如何合成它们呢?真是个烧脑的问题!这不仅会非常漫长和痛苦,而且成本更高。 原因如下。
渲染时间
在阅读了关于分层的段落后,许多读者问我关于只渲染一个 beauty pass 时的渲染时间。我真的很想明确声明,在 Playmobil 上,我们的渲染时间不是问题。 实际上,它们与我们在 Lego 项目上的渲染时间相似。
有趣的是,Lego 和 Playmobil 是我仅有的能够将所有内容渲染在一个 beauty pass 中的电影。而且这并非巧合,Glimpse 和 Guerilla 在采样方面有很多共同点。它们是真正的现代路径追踪器。
无论如何,即使拥有所有这些强大的功能,这个镜头序列的平均渲染时间约为每帧 6 小时**(最终质量)**,而这个镜头是最昂贵的,达到每帧 11 小时。
实际上,我在这个序列上犯了一个错误。我应该关掉双向路径追踪。场景中有这么多灯光,双向路径追踪在视觉上带来的提升不大。渲染时间本可以更低。
哎呀……我们在这个序列之后立即更新了渲染设置模板,整个电影都去掉了双向路径追踪,并使用 8 次反弹。这已经绰绰有余了。
人力时间 VS 机器时间
我还想指出一件非常重要的事情:在一个项目中,什么是最昂贵的?是人力成本。 不是电费,也不是渲染农场。所以,如果我们以上面的例子来看,是的,我们可以通过进行许多优化来节省一些渲染时间,例如:
- 按层移除置换和 SSS(针对不可见元素)。
- 移除任何无用的几何体。
- 减少反弹次数甚至灯光数量。
- 分割成多个层以节省内存。
但是,你需要花多少时间来实现这些优化呢?你需要在 Nuke 中花多少时间来正确合成这个镜头呢?优化并不那么划算。 而所有这些都引出了我们在 Playmobil 上的第一个原则:人力时间远比机器时间昂贵。
有几个有趣的视频可以证明这一点:Jean-Marc Jancovici 在参议院发表的一个法语视频,以及一个与奥运自行车手的视频。
感谢 Philippe 提供的链接!
(第 3/7 段)
我并不是说在制作电影时不应该关心渲染时间。完全不是这个意思!但根据最近的研究,渲染农场只占一部电影预算的 3%。那里没有太多节省的空间。至少在现代制作流程中是这样,这也引出了我的下一个观点。
现代制作流程
在我看来,目前动画领域的一个热门话题是关于制作流程以及如何提高质量和效率。可以肯定的是,动画制作流程需要进化。 这实际上是一件非常难以实现的事情,原因有很多:
- 如果工作室正在制作中,你可能需要等待电影之间的空档期。
- 人们的文化观念。为什么要改变一个行之有效且我们已经习惯的东西呢?
- 我甚至听到一些主管告诉我:有时,与其试图修复一个有缺陷的流程,不如把一切都扔掉,从头开始更容易。
那么,大家都在谈论的这个重大进化是什么呢?我们应该朝着哪个方向前进?下面的截图摘自 Pixar 在 Siggraph 2019 上的演示。我认为它们很好地展示了应该遵循的方向。

120_guerillaRender_100_old_pipeline_FHD
我们最终应该努力实现的目标……看起来很有希望!
我从未使用过 USD,但我见过最接近数字实景片场工作流程的是在 Playmobil 项目上。让我给你举几个例子。
Playmobil 上的数字场景
这些图片告诉了我们什么?我们如何具体应用这一点?Pascal Bertrand 和 Rachid Chikh 在 Playmobil 项目上给了我一个相当好的解决方案。我仍然清楚地记得他们与我分享他们愿景的那一刻。
那是在我的面试中,他们漫不经心地告诉我:为什么打光只能在制作的最后阶段进行? 为什么不能在动画之前进行呢?就像在实拍电影中那样?
在你的职业生涯中,有几个时刻可以被定义为改变游戏规则的时刻。当 Pascal 和 Rachid 在面试中与我分享这个想法时,我震惊了:
等等?什么?在动画之前打光? 这不可能!
然后我意识到(大约一个月后),这完全说得通:应该为 Rough Layout 打光。
与上图相同的镜头,但这是其 Rough Layout 版本。当最终资产到位时,我们实际上做了一些调整。
跳出框框的伟大思考!太棒了!这可能不是最终的解决方案,但绝对是朝着正确方向迈出的一大步。在 Rough Layout 阶段打光是数字实景片场的关键。 它带来了哪些优势?
一致性与灵活性
- 在 Rough Layout 阶段就确定灯光意图,能让导演的愿景在流程中更早地呈现出来。
- 3D 运动模糊和景深在此阶段设定,并一直保持到最终渲染,只需根据性能和场景更新进行少量调整。
- 在我们的制作中节省了时间。 在我们的流程中这么早就设定了景深,把钱花在刀刃上就容易多了。
- 动画部门可以使用我们的灯光装置来精确放置角色,并预判任何舞台或融合形状问题。
- 整个流程使用一个渲染引擎。 为了保持各部门之间的一致性,呈现给导演的每一部电影都必须使用 Guerilla Render 渲染。
- 为 Rough Layout 打光也使其他部门的工作方式更清晰:资产不能随意在场景中移动。这有助于保持部门间的一致性和逻辑性。
我不知道我是幸运还是不幸,但 Playmobil 上的这种打光流程帮助我预见到了许多问题,比如命名、约束、几何体分割。玩转 3D 景深也很有趣。
在大多数情况下,转移到最终资产和镜头打光都相当直接。
Playmobil 的工作流程方面
为 Rough Layout 打光并不是 Playmobil 唯一值得一提的方面。我还想描述一下这次制作的一些理念方面。我有幸 100% 分享了 Pascal 在这方面的愿景。Pascal Bertrand 是 On Animation 的首席技术官,也是一位很棒的工作伙伴。
- 我们希望尽可能少地维护代码。 Guerilla 原生工作并集成了大部分所需功能。不需要一支 TD 大军!
- 我们不关心渲染时间,也就是说,人工时间比机器时间昂贵得多。
- 暴力渲染。 我们避免廉价的技巧,主要依靠路径追踪和 PBR 进行渲染。
- 每个流程都必须是可复制的。 没有手动修改,一切都是关于构建和发布我们的工作。尤其是渲染!
- 没有合成。 是的,这有点极端,但它迫使我们推动资产及其在 Guerilla 中的外观。
“构建”和“发布”是任何部门的两个主要流程。“发射后不管”是我们在 Playmobil 上的发布策略。非常高效!
具体解决方案
这些概念对你来说可能很基础,但我相信它们是现代工作流程的核心。它们具体意味着什么?
- 整部电影使用一个分层模板。 是的,你没看错。不再有分层问题!整部电影在一个 Beauty Pass 中渲染,如果需要的话再加一个 Volumetric Pass。
- 整部电影使用一个渲染模板。 同样,我们为整部电影使用了相同的采样值。不再需要测试或猜测。反弹次数也一样:所有地方都是 16 次反弹。是的!
- 每个序列一个灯光场景。 你可能已经习惯了序列灯光工作流程,但这对我来说是一个启示。Guerilla 及其 Render Graph 非常适合这一点。
- 我们不需要在 Guerilla 中打开电影的每一个镜头。 如果你验证了主镜头,所有子镜头都可以直接渲染。
(第 4/7 段)
这背后的整个想法很简单:我们希望灯光艺术家专注于……灯光。而不是采样,也不是调试。这并不意味着我们的灯光艺术家不应该了解技术方面的事情,但我们不希望这成为他们的主要关注点。
这真的全在于适当的培训。
在 Playmobil 项目中,得益于这些强大的功能,我们每个序列会安排一位灯光艺术家,整个灯光团队规模非常小:总共只有十二个人!我相信,采用序列灯光的小型团队是行业的未来。
序列灯光
如果你读过我关于 CG 电影摄影的书,你可能对全局灯光的概念很熟悉。序列灯光是这一理念的一部分,它允许你在一个文件或存档中处理一个序列。
在主灯光阶段,为了确立一个序列的氛围,我们通常希望用一个灯光装置来控制整个序列。 让我稍微回顾一下,向你介绍这项出色技术的不同版本。
The Secret Life of Pets
我第一次接触序列灯光是在 The Secret Life of Pets 项目中。那时候(2015 年)这基本上是手动的。我每天晚上都必须同步我的镜头,以测试不同的摄像机角度,从而建立一个强大的灯光装置。

120_guerillaRender_130_key_shot_pets_FHD
我们仍然需要手动打开并检查每一个镜头。
任何镜头覆盖都必须在镜头本身中完成,并且在重新同步镜头时会丢失。这个过程效果不错,但非常耗时,并且可能导致许多人为错误。
Lego Batman
之后我去了 Animal Logic,那里的序列灯光被提升到了一个新的水平。这对我来说是一次文化冲击! 整个序列灯光流程被合并到一个文件中,如果你愿意,你可以在其中管理任意数量的镜头。
我们甚至可以在不打开镜头的情况下渲染它。我真的花了一些时间才接受我可以大规模、几乎盲目地渲染这个事实。但想想看:如果你的关键镜头已经通过审核,而你的子镜头又非常相似,何必费心呢?

120_guerillaRender_140_key_shot_lego_batman_FHD
一个文件驱动九个镜头。没错,就该这么做!
基本上,你可以将一个灯光装置分配给任意数量的镜头,然后点击渲染,镜头就会即时组装(包含各部门的最新发布版本)并在渲染农场中渲染,甚至无需打开 Maya。Nuke 脚本也是如此。自动合成……真的非常强大!
我真的很想强调这一点:无需打开你的灯光软件就可以在渲染农场渲染一个镜头。 我们当然不想渲染艺术家的场景。如果主镜头已经通过审核,我们何必费心打开子镜头呢?

120_guerillaRender_150_lux_rss_FHD
这些 RSS 脚本真的非常强大。管理序列的好方法!
Craig Welsh 将他的文章命名为工业化电影摄影并非巧合。这个基于 Render Explorer 的整个流程在我们以创纪录的时间交付 Lego Batman 时拯救了我们。
根据我的记忆(那是在 2016 年),这个工作流程唯一的缺点是它是破坏性的。你必须执行 RSS 文件来检查你的场景,之后无法修改它。
在我看来,公司正在向更小的结构发展:更少的人,更好的技术。我们用了不到三十个人完成了 Lego Batman。更低的成本,更好的管理,更快乐的艺术家。
Playmobil the movie
在 Playmobil 项目上的序列灯光,可能是我唯一一次使用完全非破坏性工作流程的经历,这要归功于出色的 Render Graphs。我们会在序列级别有一个 Render Graph,每个镜头也会有一个 Render Graph 用于任何覆盖。

(第 5/7 段)
120_guerillaRender_020_screenshot_411000007_FHD
序列渲染图和镜头渲染图。你可以非常轻松地关闭任何节点。非破坏性工作流。
假设我需要在序列中更改月亮的温度或曝光。我不必逐个打开 40 个镜头。完全不需要!我只需要打开一个文件来管理整个序列。在我看来,这像是一个健康的工作流程。
关于序列打光的辩论
我们在 Playmo 上就序列打光及其对行业的影响进行了一场有趣的辩论。序列打光会摧毁工作岗位吗?我经常将其与 20 世纪 50 年代的打字机池进行比较。

120_guerillaRender_160_typing_pool_xerox_FHD
这个比喻有点牵强,但希望你能明白我的意思。
在《快乐的大脚 2》中,我们有一百名灯光师(他们甚至从法国聘请了一位灯光师,让他飞到悉尼只为打一个镜头的灯光)。而在 Playmobil 中,我们只有 12 名灯光师。那么,我们是否应该担心未来几年找不到工作?我认为不会,原因有三:
- 工作室要完全接受序列打光技术,可能还需要十年左右的时间。
- 大型工作室(如 MPC, Framestore, Illumination…)总是倾向于雇佣过多的艺术家,而不是相反。他们最大的恐惧是无法按时交付。所以他们的招聘政策有点像一张安全网。
- 当你需要在三个月内交付电影时(这种情况越来越常见),你确实需要人力。就像需要一支灯光师大军来完成工作一样。
说得清楚一点,我并不想让任何人失业。但序列打光正在发生,如果工作室组织得当(按时交付序列,并且镜头分配均衡),它将彻底改变这个行业。
它最大的优势(除了为工作室省钱之外)是一名灯光师可以独自管理整个序列。这让他比继承别人的灯光设置更有动力和参与感。因此,他的个人投入会更加重要,从而产生更连贯、希望也更好的结果。就像一个良性循环。谁愿意复制/粘贴/渲染?没人愿意。
其他很酷的功能
实时视口
Playmobil 也是我整个职业生涯中,唯一一个可以在生产资产上使用完美实时 IPR 的项目。这不是 Siggraph 上的另一个演示。 实时渲染在电影的最终镜头中完美运行。我们唯一需要移除的是毛发。仅此而已!我们甚至在视口中还有体积效果。太疯狂了!
在这一点上,我完全同意 Jean-Michel Bihorel(《微观小世界 2》的灯光总监)的观点:我发现 Guerilla 的交互式渲染器比任何 GPU 渲染引擎都更灵敏。
确实如此。
在接下来的视频中,我使用了 Pixar Kitchen 场景,该场景由 Flore Dechorgnat 进行表面处理、纹理绘制和灯光设置。这个复杂场景使用了 15 个着色器,大约 250 张纹理(分辨率从 512x 到 4k),UDIMs,14 个灯光和一些半透明效果,在实时渲染中表现得非常好。
我试图在不到三分钟的时间里介绍我最喜欢的 Guerilla 功能。
我知道有些工作室选择了 GPU/CPU 混合解决方案。根据我的经验,这并不理想。因为不同渲染引擎之间的结果差异如此之大,以至于我无法依赖 GPU。而且这实际上使工作量翻倍:需要开发两个渲染引擎,两套着色器……我还没有尝试过 Renderman XPU,但目前我完全相信 CPU 渲染。

120_guerillaRender_190_gazebo_apes_FHD
(第 6/7 段)
对于特效繁重的资产,GPU 主要用于预演。
一键渲染
我们在 Playmo 上也有一个启动器(与 Animal 的概念相同)。概念非常简单:一键渲染。 如果你的制片人要求在 8 月 15 日看到电影的当前状态怎么办?你会手动打开每个镜头吗?不会。在 Playmo 上,我们只需点击一下或执行一条命令行,就能渲染整个序列。
当然,这个启动器会给我们一些选项,比如抗锯齿和帧步进(首-中-末帧是我们最常用的选择)。其背后的整个想法非常天才:我们不想只渲染电影一次。我们渲染多次迭代,并在重要的地方每次都提高质量。
Playmobil 趣闻
我的面试
我在 On Animation 的面试非常独特。是的,我们确实看了我的作品集,并讨论了工作流程、制作流程和渲染引擎。但我从 Pascal 和 Rachid 那里记得的主要是这句美妙的话:我们不雇佣喷子。
我真心认为关注这一点很明智。大多数工作室并不关心制作的心理层面。 但如果有人,尤其是在开放式办公空间里,经常叹气或批评工作,真的会让整个部门士气低落。所以我觉得他们关注这一点非常不寻常,但也非常令人耳目一新。
你想保持团队的高昂士气,尤其是在赶工期间,有时可能仅仅因为一个人就让整个团队士气低落。
与 Anya 会面
Playmobil 是我唯一一次见到女演员的经历。在十三年的职业生涯中,正是在 Playmo 我有幸见到了 Anya Taylor-Joy。你可能知道,我是 The Witch 的超级粉丝,所以能听她谈论她的角色并问几个问题,我真的非常兴奋。
这对你来说可能微不足道,但我认为能见到剧组的一员真的很酷。我们还有机会参观了 Playmo 的实景拍摄现场。所有这些互动都为工作室注入了活力,确实有助于保持高昂的士气。

120_guerillaRender_220_playmo_mels
在项目中有很多很酷的事情发生,让我们感觉自己是一个团队的一部分。
与 André Turpin 的大师班
Playmobil 也是我唯一一次与摄影指导(DP)一起上大师班。André Turpin 来到工作室,给我们上了一堂精彩的大师班。没有任何笔记,他谈了一个多小时关于镜头、现场拍摄和他的经验。这太有趣了!见到一位真正的摄影指导!
与 Lino 共进早餐
最后,Playmobil 是我唯一一次与导演共进早餐的经历。所有这些对你来说可能毫无用处,但相信我,当导演向你解释他的想法并分享一些素材时,感觉会有天壤之别。
这让你感觉自己是比自身更伟大的事物的一部分,并且每个人都在努力实现同一个目标:制作出最好的电影。我们晚上还有奶酪和葡萄酒。那真是太酷了!
Guerilla,未来已来
降噪
使用路径追踪需要考虑的一点是渲染中的噪点。降噪可以在 Nuke 中完成,或者更好的是作为渲染后的后期处理。Guerilla Render 包含了英特尔最新的 Open Image Denoise。
暴力计算毛发
是的,Guerilla 的 Hair2 着色器基于 Disney 的最新论文。你甚至可以交互式地调整所有设置,甚至无需打开 Guerilla。只需点击这里。
据我所知,Guerilla Render 在 CG 渲染方面使用了最新的技术。我在本文中提到的所有功能都已在生产中使用。 这不是一个只能在特定环境下运行的演示。不。它是 100% 经过生产验证的,并且这些功能都经过了彻底的测试。
体积次表面散射
你能告诉我,有多少部预算为 1300 万欧元(约合 1400 万美元)的电影使用了与 Moana 相同的次表面散射技术吗?我并没有参与这部名为 Minuscule – Mandibles from far away 的优秀电影的制作,但我相信这在 VFX 历史上是一次相当独特的体验。

120_guerillaRender_250_minuscule_yard_FHD
画面精美,故事也很棒。我非常喜欢!
看看这些资产的质量、灯光和着色器的美感。你猜团队有多大?他们只有 25 位艺术家,却交付了超过一千个镜头! 我不记得还有哪部电影能在如此特殊的条件下,达到如此高的质量水平。
祝贺 The Yard VFX 团队取得这一杰出成就。如果你还没看过这部电影,一定要去看看:它没有对白(有点像 Wall-e 的第一部分),所有的幽默都基于肢体语言。一部瑰宝!所有来自瓜德罗普岛的生物都是全新的资产,由 Jean-Michel Bihorel 和他的团队出色地完成。干得漂亮,伙计们!
结论
基于我在 Playmobil 项目上的经验,我试图与你们分享我对 Guerilla 的喜爱。正如你可能已经猜到的,我使用过许多其他渲染引擎(我想总共是七个),如果可能的话,我只想坚持使用 Guerilla。它目前是我最喜欢的渲染软件。
我同意,最重要的是你如何使用软件,而未必是软件本身。但我也想说,Guerilla 的现代架构很可能让你比其他任何软件工作得更快,错误更少。
我在法国南部的 ENSI 任教时也使用 Guerilla,这部美丽的短片 Sous la glace(由 Milan Baulard、Ismaïl Berrahma、Flore Dupont、Laurie Estampes、Quentin Nory 和 Hugo Potin 执导)就是在那里制作的。
哦!我差点忘了!你实际上可以免费拥有 Guerilla!每个人都可以下载一个免费的联网许可证,包括商业用途。是的,我把最好的部分留到了最后。玩得开心!
如果你是老师或负责学校事务,Guerilla 也是免费的,包括许可证和支持。试试看吧!
是的,这太棒了!