• 工作台
  • API
  • 定价
  • 积分

本文目录

首页
博客
如何将游戏环境建模应用于游戏:管线、技术与游戏性

如何将游戏环境建模应用于游戏:管线、技术与游戏性

游戏环境建模构建的是可游玩空间(playable space),而不仅仅是背景环境。学习模块化工作流程、碰撞设置以及发布实际关卡的引擎流程。

2026年7月27日

一名玩家走进一条昏暗的走廊,怪物从右侧袭来。玩家向左闪避,却撞上了一个在黑暗中难以看清的死胡同,最终被怪物抓住。这一场景之所以有效,是因为环境建模师将走廊宽度设定为1.5米,而非3米。这个死胡同是建模时的设计决策,而非漏洞。

大多数文章将环境建模描述为构建精美游戏世界的艺术。这并未触及核心。环境建模构建的是可游玩区域本身。每一面墙、每一个门口、每一处地面坡度,在玩家角色接触的瞬间就成为游戏玩法的约束。本文介绍环境建模在游戏中实际承担的作用、支撑现代关卡的模块化工作流程、决定场景帧率能否稳定在 60 fps 的性能测算,以及将几何体从 Blender 传递到玩家屏幕的引擎专属流程。


游戏环境建模在游戏中的具体作用

环境建模旨在构建可交互空间,而非背景

将环境建模视为可玩性的物理基础。建模师决定玩家可以站立的位置、能够看到什么、可以攀爬的物体以及感到安全的区域。这些并非光照或纹理贴图的决策,而是在灰盒搭建阶段通过几何体做出的决定。

视线与战斗场景

战斗设计师基于视野设计遭遇战。如果环境建模师将可视范围设置得过宽,玩家会同时看到所有敌人,导致遭遇战失败。如果可视范围过窄,玩家会在没有反应时间的情况下遭到伏击。这里的建模变量很简单:墙体密度和门道宽度。

视线由阻挡物之间的距离控制。每隔8个单位放置一根柱子可形成可预测的视线,而在4、12和18个单位处放置柱子则会创造不可预测的窥视时机。设计战斗场景意味着构建符合预期玩法的地形,而非建造墙壁后指望玩法能自动契合。

缩放与移动手感

尺度是环境建模中最容易出错的地方。一条4米宽的走廊会让人感觉像停车场,而1.8米宽的走廊则会让人感到局促。这种差异并非技巧所致,而是严格的模型尺度设定。

建模时以角色的视高为基准。如果角色身高为1.7米,则将门的高度设为2.4米。在营造压抑感的区域,将走廊宽度设为1.5米;在开阔战斗区域,则设为3米。人眼会借助熟悉物体来判断尺度。一个2米高的箱子放在1.7米高的角色旁边,会被视为“大”;而同样大小的箱子放在0.5米高的角色旁边,则会被视为“巨大”。调整建模比例以契合预期的情感氛围。

关卡设计如何受环境几何影响

关卡设计规划了遭遇时机,而环境几何结构则确保这一时机得以实现。一段脚本写着“玩家进入竞技场,敌人从三扇门中生成”,就需要三个门洞形状的几何开口。如果建模师用一面墙堵住了第三扇门,这场遭遇战就会中断。

这种依赖关系在 导航网格生成中表现得最为明显。导航网格基于几何体构建,放置错误的墙壁会导致导航网格出现空洞,使 AI 角色无法绕行;角度错误的斜坡则会裁剪 AI 的移动半径。游戏环境建模不仅是为了玩家摄像机,更是为了 AI 导航。

环境建模:无声的讲述者

叙事性空间无需文字便能讲述故事。一侧造型坍塌的残破建筑,在任务标记出现前就向玩家诉说着“这里曾发生过战斗”。装有装饰立柱的洁净走廊则传达出“此区域安全无虞”。而造型破损、散落着碎片的走廊则诉说着“此处曾有灾难发生”。

环境叙事可读性背后的建模技术是环境视觉语言一致性。如需了解专业环境美术师如何构建其工作流程的制作流程详解,请参阅80.lv 环境美术制作指南。如果所有安全区域都采用干净、完整的几何体,玩家便会逐渐将破损的几何体与危险联系起来。在关键时刻打破这一规律,就会让玩家产生警觉。通过环境建模实现的无声叙事,本质上是一种模式识别,并通过几何体加以执行。


游戏环境风格类型:低多边形 vs 高多边形

低面数环境建模对游戏的重要性

低多边形环境建模的目标是控制三角面数量,以适配性能受限的硬件。其目标是在远距离下保持视觉清晰度,而非近距离下的表面细节。一棵低多边形树可能仅需 200 个三角面,一块岩石则只需 50 个。

低多边形风格最适合用于等距视角游戏、移动平台游戏以及开放世界中的远景道具。这种风格独具匠心。低多边形环境强调几何抽象,因此其低面数被视为一种美学选择,而非技术上的妥协。色彩和轮廓承载了主要的视觉重心。

低模环境的面数预算按物体类型划分如下:

对象类型

三角预算模型

远景背景道具

20至100个三角形

中景陈设

100 至 500 个三角面片

前景交互道具

500 至 2,000 个三角形面片

主要环境组件(拱形结构、支柱)

2,000 到 5,000 个三角面片

低多边形并不意味着低工作量。在仅含 200 个三角形的模型上实现干净的布线流,比在由 20,000 个三角形构成的模型上更难。每一个三角形都必须经过精心布局。

高多边形环境建模技术在游戏开发中的应用

高多边形环境建模生成精细网格,用于烘焙法线贴图、曲率贴图和环境光遮蔽。高多边形网格永远不会交付给玩家,其目的是捕捉表面细节,供游戏引擎烘焙到低多边形代理上。

高精度模型环境出现在AAA级主机和PC游戏中,玩家可以近距离观察表面细节。在高精度模型环境中,一面石墙的高精度模型网格可能包含8万个三角面,经过烘焙后,游戏适用低精度模型仅保留500个三角面,并通过4K法线贴图呈现表面细节。

高模流程对于环境建模非常重要,即使在风格化游戏中也是如此。风格化的低模环境仍然受益于用于烘焙手绘贴图的原始高模网格。高模能够捕捉曲率数据,使手绘表面呈现立体感而非扁平感。


如何制作游戏环境美术模型:分步指南

从概念到导入引擎构建游戏环境遵循特定顺序。跳过步骤会造成重复工作。每个阶段在进入下一阶段前都有明确的准出标准。

第一步:使用灰盒模型划定可玩区域

在开始建模之前,请在空白场景中放置一个角色胶囊。将胶囊的高度设置为与预期角色的眼睛高度相匹配。使用简单的图元围绕它构建初步可玩体积:以长方体构建墙壁,以圆柱体构建柱子,以平面构建地面。

验收标准:关卡设计师能够操控玩家角色完整穿越整个空间,不会出现穿模、卡住或撞到隐形墙的情况。只要角色能够正常通行,且视野线与遭遇战设计相符,灰盒即视为通过。在灰盒体验达标之前,其他一切都不重要。

请参阅Blender 建模工具文档,获取修改器和基本体工作流程的相关说明。

步骤 2:标记碰撞和遮蔽面

趁灰模结构尚简时,请标记哪些表面需要碰撞,哪些需要遮挡。碰撞表面后续将生成碰撞代理模型,而遮挡表面则用于放置遮挡面。

如果玩家或 AI 可以站在其上、撞向其表面或与之交互,则该表面需要碰撞。如果该表面从预期的摄像机位置遮挡了玩家观察其他几何体的视线,则需要遮挡。请在灰盒阶段标记这些内容,以免高模制作阶段产生碰撞问题。

步骤 3:创建高模细节网格

在灰盒通过玩法测试后,将每个环境部件重建为高模。添加倒角、斜切、建筑细节和表面风化效果。此阶段生成的网格根据资源不同,每个部件的面数介于 50,000 至 200,000 之间。

高模通常不会导出到游戏引擎。它仅用于法线贴图烘焙。高模上的每个表面细节都会被烘焙为低模上的纹理。

步骤 4:重新拓扑至符合游戏标准的三角面数量

高模会经过重拓扑处理生成低模、游戏用网格。对于模块化墙体部件,重拓扑后的版本通常包含 500 到 2,000 个三角形。而对于像木桶这样的场景道具,游戏用网格可能只需 100 到 300 个三角形。

关键规则是低多边形网格的边缘流向应遵循高多边形表面的方向。平坦表面使用最少的循环边,曲面则需足够的循环边来保持轮廓。对于不变形的环境部件,边缘流向需遵循UV岛排列,防止法线贴图在接缝处产生烘焙瑕疵。如需了解场景资产的干净拓扑网格最佳实践,请参阅我们的指南。

步骤 5:使用拼贴贴图布局进行 UV 映射

模块化环境资产的 UV 映射遵循 Trim Sheet 布局。每个资产占据同一张纹理图集内的特定 UV 区域。所有资产共享相同的 UV 布局、纹理和材质。

UV岛图必须为正方形且高效排列。当UV岛图被拉伸或以非正交旋转排列时,修剪贴图(Trim Sheet)将导致分辨率损失。每个UV岛图在烘焙时应保持贴近其占据的纹理区域。修剪贴图上UV密度不均匀会导致某些模型部件出现明显的烘焙瑕疵,而其他部件则出现细节丢失。

步骤 6:将高模纹理烘焙至低模

将高多边形模型的法线贴图、环境光遮蔽贴图和曲率贴图烘焙到低多边形模型的 UV 空间中。该过程将高多边形模型的表面细节投影到低多边形模型表面。

烘焙需要在两个网格之间保持一致的法线空间。若高模与低模法线朝向相反,烘焙出的法线贴图会呈现反向效果。请在烘焙前检查网格法线。大多数DCC工具都提供一键法线重算的选项。

步骤 7:构建碰撞检测代理

为每个游戏表面构建简化的碰撞网格。碰撞代理应为渲染网格的简化包围壳,使用长方体、球体或凸包图元。一个包含 300 个三角形的桶状渲染网格会对应一个 12 边圆柱形的碰撞形状;一个包含 2,000 个三角形的楼梯则会对应一系列覆盖每个台阶的扁平物理盒。

原则:碰撞网格的三角形数量应大致为渲染网格三角形数量的 10%。若超过该比例,物理引擎将浪费 CPU 资源去计算玩家无法察觉的几何碰撞。

步骤 8:设置光照贴图UV

每个场景网格都需要第二套 UV(UV2)用于光照贴图烘焙。UV2 岛必须互不重叠,并打包至正方形区域内。重叠的 UV2 岛会在烘焙光照中产生黑色阴影伪影。

一个包含 40 个模块的模块化组件包,采用共享的光照贴图 UV2 布局,为整个关卡生成一张光照贴图。每个模块的 UV2 区域都会被烘焙到同一张纹理中。性能提升显著:烘焙光照在运行时零开销。

步骤 9:导入引擎并配置流式处理

将带有烘焙纹理的低多边形网格导入引擎。有关3D 文件格式对比(包括 FBX、GLB 和 OBJ,适用于环境制作流程与引擎集成)的完整对比,请参阅我们的指南。将 Trim Sheet 贴图材质应用到每个部件上。

设置关卡流送(Level Streaming)或世界分区单元,使引擎仅加载玩家附近的几何体。环境网格必须与流送网格对齐。跨越单元格边界的部件在玩家在不同单元格间移动时会导致可见的弹出现象。


影响游戏玩法的游戏环境建模方法

用于可重复使用场景的模块化环境建模

模块化环境建模用一套可重复使用的几何模型套件取代了“从零开始构建每一部分”的方法。标准模块化套件大约包含 40 个部件:墙体段(直墙、转角、T 形连接件、封头)、地板砖、柱段、收边条、门拱和窗框。

您可以通过像搭乐高积木一样将这些组件拼接在一起来构建关卡。一个40个组件的套件就能生成整个城堡关卡,而同样的套件通过不同的材质置换可以生成地牢关卡。关键优势不仅在于速度,更在于编辑灵活性。当关卡设计师移动一个墙体组件时,所有相连的组件都会跟随移动。如果使用独特几何形状,移动一面墙就意味着要重新塑造三个相邻表面。

模块化套件设计规则

每个模块化部件都匹配标准网格。常见的网格尺寸为100厘米(Unreal单位)或1米(Unity单位)。每个墙体部件均与此网格对齐。拐角和T型接头共享相同的连接点。规则是:所有部件都应无需手动调整位置即可与同一模块组中的其他部件连接。

关于环境美术规范的社区维护参考资料,请参阅Polycount环境艺术维基。模块化部件的边缘循环在连接面必须完全一致。若直墙A以0、1、2厘米处的边缘循环结束,转角墙B的对应连接面也需以相同方式结束。不匹配的边缘循环会在光照与纹理烘焙后产生可见接缝。

Trim Sheet贴图与唯一纹理对比分析

模块化套件使用 Trim Sheet 或专用纹理。Trim Sheet 是一种包含多种环境细节的单一纹理,包括石纹、金属面板和木板,被映射至每个模块化部件的特定 UV 区域。Trim Sheet 使项目保持为单一材质(单次绘制调用),同时允许在不同部件间实现视觉多样性。

独立纹理为每个部件分配不同的材质,这会成倍增加绘制调用次数。一个包含40个部件的独立纹理套件,仅环境部分每帧就会产生40次绘制调用。而一个包含40个部件的装饰贴图集仅产生1次绘制调用。在移动设备上,在30帧/秒下,性能差异体现在每秒可减少3900次绘制命令。

碰撞与遮挡几何

游戏的环境建模包括两类不可见的几何体:碰撞体和遮挡物。

碰撞代理网格

一个渲染网格体可以有10,000个三角形。而代表同一物体的碰撞网格体应只有100个三角形。碰撞网格体是简单的代理形状体,包括盒子、球体和凸包体,物理引擎会读取这些代理形状,而不是扫描渲染网格体。

规则:将碰撞代理构建为围绕渲染网格的简化包围盒。拥有 300 个三角面的桶形渲染网格,其碰撞形状为一个十二边形柱体。拥有 2,000 个三角面的楼梯,其碰撞形状为一系列覆盖每个台阶的扁平物理碰撞盒。碰撞网格在运行时隐藏,仅对物理引擎可见。

遮挡器与可见性剔除

遮挡器是一种网格体,它告诉渲染引擎“隐藏我后面的一切”。实心墙是天然的遮挡器。间隙过大的栅栏则不是。环境建模师可以添加专用的遮挡器网格体,这些是放置在视野遮挡点处的平面多边形,以优化遮挡剔除。

遮挡剔除在城市场景中最为有效。街道两旁的建筑布局自然地遮挡了每个建筑后方 70% 的几何体。如果没有遮挡网格,引擎会计算城市中每个建筑的可见性,包括玩家不可见的建筑。遮挡网格会告诉引擎“不必检查那 50 栋建筑,这堵砖墙已经将它们遮挡住了。”


不同平台的游戏环境建模

游戏运行的平台决定了每个环境资产的多边形面数预算、纹理分辨率、Draw Call 上限以及光照方案。对同一场景为移动游戏和 PC 游戏进行建模,会产生两套完全不同的美术资源。

环境建模平台对比

因子

移动端

PC 端

游戏主机(本世代)

每帧三角面数预算

10万至50万

1,000,000 到 5,000,000

2,000,000 到 10,000,000

最大纹理大小

1K 至 2K

2K分辨率到4K分辨率

2K到4K

绘制调用限制

每帧少于100个

每帧画面200到500个

每帧 500 到 1,000 个

照明方式

完全烘焙或未点亮

静态生成 + 部分动态内容

动态光照 + Lumen/光线追踪

LOD(细节层次)策略

进取型(2到3个层级)

中等(3至4级)

Nanite(自动,无需手动设置 LOD)

每个场景的显存

256 MB 至 512 MB

1 GB 到 4 GB

2 GB 至 8 GB

移动环境建模需要最严格的约束。在 PC 上产生 1 次 Draw Call 的模块化套件,在移动端同样只产生 1 次 Draw Call,这就是为什么裁切贴图(trim sheet)工作流程可以直接迁移。区别在于每个部件的三角形数量:一段墙体在移动端可能是 500 个三角形,而在 PC 上则是 2000 个三角形。

PC 和最新一代主机环境可以使用动态光照和实时阴影。移动环境几乎总是使用烘焙光照,因为 GPU 无法在可接受的帧率下处理实时阴影映射。移动端的每一项环境决策都指向同一个核心问题:GPU 可以省略哪些运算?


常见游戏环境建模错误

过度建模非游戏玩法表面

应将时间用于玩家几乎看不到的表面:高柱的顶部、桥梁的底面、线性关卡中墙壁的背面。模型细节应与屏幕空间占比成正比。如果玩家只能看到物体的正面和侧面,则可省略背面细节。

一个简单的测试:如果你在游戏中无法走到某个表面时,就不要将其建模到游戏就绪质量。只需将其建模为碰撞几何体,并让渲染网格体保持不可见或直接省略。

在建模过程中忽略碰撞

碰撞网格往往被忽视,直到玩家穿透墙体时才引起重视。请在重拓扑阶段就构建碰撞代理网格,而不是等到引擎集成阶段。每个环境资产都应配备一个碰撞网格,其三角面数大约为渲染网格的10%。

在渲染模型确定后才构建碰撞网格,几乎总是需要返工。几何体与碰撞形状不符,因此建模师要么降低碰撞体的精度,要么重新导出渲染模型。建议从一开始就并行构建两者。

忽视模块化复用

一套包含40个图块的套件足以构建整个关卡。只需对每个独特的图块进行一次建模,然后使用这些图块组装关卡。为每个房间使用独特的几何结构会使资源数量增加20倍,但视觉提升甚微。

失败模式是单个部件的范围蔓延。建模师花费三天时间制作一根华丽柱子,而不是建造三根30分钟的标准柱子,这对项目而言得不偿失。在完成完整套件后再交付那根华丽柱子,而非以此取代其他部分。

忽略遮挡构建碰撞体

设置为忽略遮挡层(Occluder Layer)的碰撞网格会创建不可见的几何体,这些几何体会阻挡玩家移动,但不会触发遮挡剔除。这导致玩家无法穿过看起来可以通行的间隙,而 GPU 仍然会渲染间隙后方的所有场景元素。

同时构建碰撞几何体和遮挡体几何。门洞会同时拥有一个用于玩家导航的碰撞开口,以及一个置于门框处用于可见性剔除的遮挡平面。

延迟处理光照贴图UV直至引擎导入时

光照贴图 UV(UV2)需要在 UV1 布局阶段提前规划。如果 UV1 布局中存在重叠的 UV 岛,UV2 布局也会出现重叠,而重叠的 UV2 会导致烘焙光照出现黑色阴影伪影。

在从DCC软件导出前设置UV2布局。UV2布局不必与UV1完全一致。可以采用不同的UV岛排列方式,优化为方形且无重叠的排布方式。但必须在导入引擎前完成,不可在导入后处理。


游戏引擎集成:Unreal Engine 与 Unity

虚幻引擎中的环境建模

虚幻引擎5通过Nanite和世界分区技术革新了环境建模方式。Nanite可直接渲染高多边形网格,完全省去了静态环境几何体的拓扑重建步骤。只需导出20万多边形的网格,其余工作交由虚幻引擎处理即可。对于兼容Nanite的网格,可取代传统的LOD系统。

世界分区将关卡划分为网格单元。请参阅虚幻引擎的世界分区文档以了解设置详情。每个单元独立流送。对于开放世界环境,世界分区意味着关卡设计师可以专注于特定区域,而无需加载整个地图。环境网格体必须与世界分区网格对齐,以避免流送瑕疵。

Lumen 提供实时全局光照。环境几何体会影响 Lumen 的光线跟踪。墙体开口或柱子的放置会改变 Lumen 的光线反弹方式,因此 UE5 中的环境建模决策会影响不仅限于静态网格体的视觉质量。

Unity 中的环境建模

Unity 的方法更依赖手动操作。环境优化主要依靠静态批处理、遮挡剔除和 GPU 实例化。

Static Batching(静态批处理)会在构建时将静态网格合并为更大的网格组。所有标记为"静态"的环境部件都会被合并。其权衡在于内存:合并后的网格无法单独释放。对于Unity中的模块化环境套件,当关卡足够小,能作为一个批次载入内存时,静态批处理效果最佳。

Unity 中的遮挡剔除技术需要在摄像机路径周围放置一个遮挡区域组件。请参阅 Unity 遮挡剔除文档 以获取设置说明。环境美术师可以通过在天然视线阻断点(如建筑转角、拱门和高大柱子)放置遮挡平面来加快剔除速度。


Triverse AI 如何融入游戏环境建模

在环境道具(如木箱、桶、柱子和废墟构件)的概念迭代中,例如10个概念草案往往导致5个废弃模型仅换来1个交付资产,极其耗时。Triverse Studio 的 Artist Mesh 工作流有助于在完整的环境建模流程启动之前,先确保剪影正确到位。

将参考图像或草图输入到 Artist Mesh 中。它会返回一个拓扑良好的三角网格,低精度模式下约为 1,193 个面,中等精度模式下约为 4,375 个面,这些面数直接符合模块化套件中辅助道具的面数预算。该网格可导出为 GLB 或 OBJ 格式,以便导入到 Blender 的场景制作流程中。

工作流程:在 Artist Mesh 中生成道具概念,导入 Blender,进行重拓扑以获得干净的模块化布线,合并入您的模块化套件中,展开到关卡的 Trim Sheet UV,然后导出到引擎。Artist Mesh 并非旨在取代模块化环境管线,而是为了加速道具概念的生成,从而将节省的时间投入到那些最终保留在关卡中的资产上。


游戏环境建模常见问题与解答(FAQ)

游戏场景建模在游戏开发中有哪些作用?

游戏环境建模构建了游戏交互发生的三维空间,包括走廊、房间、建筑、景观及其内部道具。它定义了可交互几何体,决定了游戏关卡中的移动、视野、碰撞和导航。

环境建模与角色建模有何不同?

环境建模优先考虑模块化复用、Trim Sheet(修剪表)材质、碰撞几何体以及利于流式加载的网格尺寸。角色建模优先考虑变形所需的边缘流向、绑定、蒙皮权重以及动画兼容性。拓扑重构规则有所不同:环境边缘流向遵循 UV 岛布局,而不是肌肉线条。

什么是模块化环境建模,为何至关重要?

模块化环境建模构建了一套可复用的几何组件(墙壁、地板、柱子、装饰条),这些组件能在网格上对齐拼接。一个包含40个组件的模块化套件,仅需1次绘制调用(draw call)即可生成完整关卡,且完全可编辑。其重要性在于能将资产制作时间缩短至原来的五分之一,并实现关卡的快速迭代。

如何优化游戏环境模型以提升性能?

使用装饰图集实现单次绘制调用的材质共享。构建碰撞代理体时,其三角面数控制在渲染网格体的10%。在视线遮挡位置放置遮挡网格体以实现遮挡剔除。为环境部件设置LOD层级(100%、50%、25%、10%)。通过材质实例来改变表面效果,无需创建新的绘制调用。

游戏环境建模从开始到完成的完整工作流程是怎样的?

灰盒、游戏性测试、高精度模型制作、重拓扑、UV 映射、纹理烘焙、引擎集成。各阶段均存在环境特定的变体:灰盒测试移动机制,重拓扑优先保证 UV 展开的硬边流向,UV 映射采用修剪图集布局,引擎集成则设置光照贴图 UV2 通道。

是否每个环境物体都需要碰撞网格?

玩家可站立、行走碰撞或交互的物体需要碰撞网格。纯装饰性且无法触及的物体(如高天花板装饰、远景天际线几何体)可以省略碰撞代理。对于游戏性关键表面,使用简化碰撞网格,三角面数控制在渲染模型的 10%。

虚幻引擎和Unity引擎哪个在游戏环境建模方面更好?

虚幻引擎提供Nanite用于高多边形环境(跳过重拓扑)、World Partition用于开放世界流式传输,以及Lumen用于实时全局光照。Unity提供静态批处理用于网格合并、手动遮挡剔除和GPU Instancing。选择取决于项目规模:虚幻引擎可扩展至开放世界环境;Unity适用于紧凑型场景的移动端和手持设备项目。


核心要点

游戏环境建模构建的是游戏运行的空间,而非装饰。使用模块化组件来减少渲染调用并最大化编辑灵活性。在细化前先进行灰盒设计。在建模过程中构建碰撞和遮挡剔除几何体,而不是事后补充。设置装饰贴图集以实现单一材质的效率优化。选择与场景规模匹配的引擎渲染管线。

Triverse Artist Mesh 帮助快速创建概念道具,让您的建模时间专注于那些在关卡设计迭代中保留下来的部件。真正重要的环境建模决策是那些促使玩家向左闪避却陷入死路的决策。围绕游戏玩法进行建模,其余一切自会水到渠成。

免费试用 Triverse AI

立即注册,即可获得免费积分!一键生成精美3D模型,还支持限时免费下载模型文件!

分享此文章