nyuuzyou/wikis huggingface dataset:
Zh/$ikchain

Source引擎的系统允许角色的脚准确地连接到不平整的地面表面。
IK通过固定的距离计算中间关节的位置，该距离是从顶部关节和末端关节的位置得出的。一个典型的例子是脚踝-膝盖-髋部的IK链，其中脚踝（末端关节）相对于地面定位，髋部（顶部关节）保持固定，膝盖（中间关节）移动到一个位置，使小腿和大腿骨保持原来的长度。根据使用的具体ikrule，当末端关节移动到需要的位置时，假定顶部关节的位置是固定的，IK系统将中间关节放置在一个位置，使得关节之间的距离（即骨骼长度）保持恒定。
*ikchains仅用于将ikrule和iklock选项应用于动画中的$sequence。
* 另请参见$ikautoplaylock。
: 
==语法==
 $ikchain (name) (end_bone) [(axis) (value)] [height (units)] [pad (units)] [floor (units)] [knee (X) (Y) (Z)] [center (X) (Y) (Z)]
* name：为此IK链定义"ikchainname"。
* end_bone：通过指定链中最远的骨骼来定义受此IK链影响的三个骨骼。通过骨骼层次结构自动找到接下来的两个骨骼。IK链只能有三个骨骼。
* axis可以是X、Y、Z、XR、YR、ZR、LX、LY、LZ、LXR、LYR、LZR、LM或LQ之一，value是一个浮点数。
* height：
* pad：
* floor：
* knee：实际上不一定是膝盖，可能是髋部、脚踝、脚趾等。
* center：
* QC示例：
 $ikchain rhand ValveBiped.Bip01_R_Hand knee 0.707 0.707 0.000
 $ikchain lhand ValveBiped.Bip01_L_Hand Z 0
 $ikchain rfoot ValveBiped.Bip01_R_Foot height 10 floor 5
 $ikchain lfoot ValveBiped.Bip01_L_Foot pad 5 center 0 1 0
==$ikchain规则==
===iklock===
 iklock (ikchainname) (lock_position) (maintain local rotation)
iklock跟踪序列应用之前特定链的位置/方向，然后在应用之后进行局部IK规则将其移动回原来的位置/方向。这用于在应用骨盆或身体运动到模型时保持指定IK链的位置不变，例如保持手或脚的位置。
* ikchainname：该规则将应用的$ikchain名称。
* lock_position：锁定权重是从0.0到1.0的浮点值。
* maintain local rotation：旋转锁的权重是从0.0到1.0的浮点值。
===ikrule===
 ikrule (ikchainname) [type] [options...]
* ikchainname：该规则将应用的$ikchain名称。
* type：有效类型请参见“ikrule类型”。
* options：有效选项请参见“ikrule选项”。
====ikrule类型====
; footstep <slot #>
: 添加一个IK规则，其中一个后续身体部位（例如脚）需要相对于地面移动。
; touch <bone name>
: 添加一个IK规则，其中某个骨骼需要相对于身体的另一部分移动。这在手需要接触模型的某些部分（例如脸、髋部、另一只手等）时很有用，而该身体部位可能由于额外的动画层、骨骼控制器或其他IK规则而不在原始动画位置。
; release
: 释放低于增量的动画的IK规则。这对重新加载使用自身IK规则的动画很有用。
; unlatch
: 
; attachment <attachment name>
: 将IK目标设置为指定的外部附件。客户端代码会在链的位置附近搜索带有此附件的实体并粘附于其上。
====ikrule选项====
; range <start> <peak> <tail> <end>
: 设置ikrule的淡入、保持和淡出帧编号。在任何参数中可以使用一个"."以保留默认值。
; height <units>
: 用于脚步规则，指定从所需地面高度开始搜索的高度。默认值为ikchain的高度。
; floor <units>
: 用于脚步规则，指定地面的实际高度。默认值为ikchain的地面高度。
; radius <units>
: 用于脚步规则，指定地面接触检查的大小。默认值为ikchain的半径。
; pad <units>
: 等同于radius，但单位除以2。radius = pad / 2;
; contact <frame>
: 用于脚步规则，指定用于检查地面位置的帧。
; usesource
: 使用原始动画源确定IK目标。如果当前序列是与源动画不同的复合动画，并希望恢复其原始形式，则很有用。
; usesequence
: 运行所有序列规则，包括blendlayer和addlayer规则以确定IK目标。
; fakeorigin <x> <y> <z>
: 为IK规则设置与任何先前指定骨骼分离的虚拟原点。
; fakerotation <pitch> <yaw> <roll>
: 为IK规则设置与任何先前指定骨骼分离的虚拟旋转。
===示例===
 $sequence foo {
 ikrule lfoot footstep 0 range 4 10 19 25
 ikrule rfoot footstep 1 range 18 26 3 10
 iklock rfoot 1 0 iklock lfoot 1 0
 }
==在你的mod中启用IK==
除非你的mod使用HL2_CLIENT_DLL和HL2_DLL编译，否则IK代码将被排除在外：
* CPlayerMove::StartCommand（服务器端）
* CInput::CreateMove（客户端）
你可以移除周围的#ifdef语句来启用它（或者作为HL2编译，但可能会有不可预见的后果）。
===多人游戏中的IK===
Ken Birdwell（IK系统的作者）曾说：
Zh/$lightwarptexture

它根据texel的亮度对其进行着色。可以将其视为局部化的颜色校正。
== 注意事项 ==
== 光照扭曲纹理 ==
光照扭曲纹理是一维像素条。暗色像素将使用左侧的颜色着色，亮色像素将使用右侧的颜色着色。50%灰色表示无着色。
=== VTF参数 ===
光照扭曲纹理应使用未压缩的BGR888格式，以避免光照梯度上的颜色带，并且应进行UV钳制。
如果使用，请使用以下编译参数：
nocompress 1 // 禁用纹理压缩，以防止颜色带
nomip 1 // 禁用mipmaps，在此情况下不需要
nolod 1 // 始终使用此纹理的全分辨率版本（由于本身分辨率较低）
clamps 1 // 防止光照极端的色调混合在一起
clampt 1 // 可选？
stripalphachannel 1 // 移除不必要的alpha通道（如果存在）
=== 示例 ===
; ():
: 这是上面屏幕中使用光照扭曲纹理。它旨在为较暗的雪地添加微妙的蓝色色调，而不影响较亮的区域。
; ():
: 这应用于所有角色，而不仅仅是Pyro。它创建了高对比度的阴影和红色调的终止线，这是游戏模仿的插画艺术的典型特征。
; 海报化（自定义）：
: 此自定义扭曲纹理创建了海报化的“线稿”风格。然而，仅启用光照扭曲是不够的：环境光照必须为0以使未照亮区域变黑，并且世界光照必须依赖于观察者以确保阴影始终投射。
; 卡通着色（自定义）：
: 卡通着色可以通过用锐利的步骤替换平滑的光照梯度，使物体看起来更卡通化。
的其他可能用途包括对比度增强、调整顶点光照阴影过渡、高光软化等。
::
== 参考 ==
Lightwarp Fixes [Team Fortress 2] [Mods] on GameBanana
Zh/$phong

此参数同样适用于 和 shaders，并在所有 及以后的游戏中可用。它通过一个纹理控制每个 texel 的强度，提供了 的低强度反射以及 的峰值高光。详细说明请参见 Phong materials。
 $phong <bool>
:
VertexLitGeneric
{
	$phong 1
	$bumpmap				[texture] // 表面的法线贴图
	$phongexponent			5 // Phong指数值（任选其一）
	$phongexponenttexture	[texture] // 控制Phong指数的纹理（任选其一）
	$phongboost				1.0 // 高光强度的倍增系数
	$phongfresnelranges		"[0 0.5 1]" // 控制反射强度的菲涅耳范围设置
}
=== 遮罩 === 
 
* 使用$selfillumfresnel而不使用时，将使用的alpha通道作为遮罩。 
* 使用$selfillumfresnel并启用时，将乘以0.0f，实际上禁用了该效果！ 
* 当不使用$selfillumfresnel时，所用的遮罩将是的alpha通道，除非也使用了。 
* 如果使用了，则将使用的alpha通道作为Phong遮罩，但使用$basemapalphaphongmask或$basemapluminancephongmask将会覆盖此行为。 
 
 
 
 
 
 
 
 
 
 
 
 
===亮度===
 
 
 
=== 颜色 === 
 
 
 
 
 
 
 
 
=== 刷子着色器参数 === 
: 
 
 
 
== 控制命令 == 
 
== 另请参阅 == 
* Phong materials 
* （环境贴图） 
* 
* 
== 外部链接 == 
* $Phong on brushes*: The Hacky Way - TF2maps.net上的指南，解释了如何在CS:GO之前的游戏中伪造$Phong对刷子进行渲染。也可用于伪造在Vertex光照下进行点光源处理的静态模型 
* SubstancePainter Source Engine Complex Phong Shader - 提供Substance Painter对Source引擎的复杂Phong着色器 
pCategory:VMT Lighting 
Category:Material System
Zh/$poseparameter

它用于配置一个混合序列，通过提前指定值的范围实现。
== 语法 ==
 $poseparameter <$sequence name> <int min> <int max> [loop <int>] [wrap]
 $poseparameter yaw -90 90 loop 360
 $poseparameter vehicle_wheel_fl_spin -180 180 360
; loop <int>
: 定义一个自定义的循环值？ 
; wrap
: 小于min的值会循环到max，以此类推。
== 相关条目 ==
* $sequence
* 混合序列
poseparameter__NOTOC__
Zh/$rimlight

它为模型添加了一种恒定的边缘光，看起来像是间接来自环境的光照。边缘光的颜色直接受到的影响，并且行为更接近于$phongfresnelranges的。
: 
: 
== VMT语法 ==
 $rimlight <bool>
 VertexLitGeneric
 {
 	$phong			1
 
 	$bumpmap		<texture>
 	$phongexponent		5		
 	$phongexponenttexture	<texture>	
 	$phongboost		1.0
 	$phongfresnelranges	"[0 0.5 1]"
 
 	$rimlight 1
 	$rimlightexponent 2
 	$rimlightboost .2			
 }
== 附加参数 ==
== 另请参阅 ==
* 
* 
*
Zh/$translucent

指定材质应该是部分透明的。被用来根据的每个像素决定透明度。
任何使用$translucent材质的对象不会影响，并且NPC可以从任何角度透过它看到。然而，Visleaves 确实会影响透明材质的Alpha排序。
== VMT语法示例 ==
 $translucent <>
 
 {
 	$basetexture glass\window001a
 	$translucent 1
 }
== 额外参数 ==
== 注意事项 ==
=== 闪烁和反向深度 ===
透明材质有时会导致材质闪烁，或者与附近表面产生排序问题。在这些情况下，考虑使用$alphatest代替$translucent。虽然这会显著降低质量，但通常可以解决问题，并且绘制速度更快。与透明材质不同，Alpha测试还会投射手电筒阴影。
与允许不同透明度的$translucent不同，Alpha测试不允许——纹理的部分要么完全显示，要么完全隐藏。$alphatestreference是一个常规参数，控制透明度遮罩的过滤（使用较低的值如.01会产生更模糊的边缘，而值为.99会非常锐利）。由于Alpha测试比$translucent成本更低，可以用来实现类似于$translucent参数材质的效果，同时降低开销。使用$allowalphatocoverage将启用Alpha测试纹理的抗锯齿，使其边缘更加柔和。当启用$allowAlphaToCoverage时，$alphatestreference将被忽略，并不会影响纹理外观，但仍会影响投影纹理的模板（例如手电筒）。
=== 与其他效果的兼容性 ===
某些着色器参数会禁用透明性。如果无法正常工作，可以逐一注释掉材质的其他部分，找出冲突的原因。
已知的冲突包括：
* $selfillum，因为它需要Alpha遮罩来决定发光效果，并“占用”了透明度。同样，即使用$selfillummask作为单独的纹理也无法解决问题。
* $blendtintbybasealpha，在模型上使用时。它使用Alpha遮罩来决定着色的程度，也会“占用”透明度。
=== 滤镜边界 ===
会将邻近像素混合在一起，即使其中一些像素是完全透明的。如果Alpha值突然下降与颜色值的下降重叠，可能会产生不需要的轮廓效果。当降到零时，您可能会遇到此问题，并停止看到像素。
为了解决这个问题，可以简单地将图像的颜色稍微延伸到Alpha通道下降的区域之外。这可以通过复制透明层并将其涂抹到相关区域来轻松实现。
(对于旧版本的用户，当图层合并时，程序会自动移除Alpha值为零的像素的颜色信息。作为一种解决方法，可以将这些像素的Alpha值设置为1。
从GIMP 2.8.14开始，Alpha值为0的像素在保存为TGA格式时保留其颜色信息。
== 参见 ==
* ，用于全纹理透明度
* ，用于矢量样式的Alpha边缘
* 
* ，用于二元透明度。
Zh/$unlockdefinebones

通常情况下，$definebone 定义始终用于骨骼的默认位置和旋转。设置 $unlockdefinebones 后，将使用QC文件中最后定义的smd/dmx文件第一帧的骨骼位置作为definebone的基准值。
与studiomdl命令-definebones不同，$unlockdefinebones不会打乱$definebone行的顺序。
== 语法 ==
 $unlockdefinebones
__NOTOC__
Zh/Adapting PBR Textures to Source

近年来，（PBR）的纹理及其相关工作流程已经成为最新的行业标准。引擎由于年代久远而无法利用之，结果无缘于最新、最优秀的纹理技艺。虽然已经有了的尝试，但真正对地图制作者有用的是修改PBR以适应起源引擎。本教程就是这样一个尝试。
目前，网上很难找到正式的研究，但依然可以凭经验推出一套转换公式。
本教程针对的是材质，所以略过了比较复杂的。确保你有一个图像处理程序来做这些转换。
== 分析 ==
首先，了解起源引擎和PBR的做法及其区别是很有帮助的。本质上讲，包括起源引擎在内的传统方法针对的是渲染结果；而PBR纹理针对的则是材质的物理性质，然后通过人类的理解去推测渲染结果。
具体而言，起源引擎的材质通常包含以下层次：
* 
* 
* 
有时会通过作为AO（环境光遮蔽）贴图。为了简单起见，本文将忽略之，只考虑基本的三种贴图。
这种三层次的逻辑很简单。一个表面的总反射率被分解为两个类别：漫反射和镜面反射，分别由漫反射贴图和镜面反射贴图来表示，而局部的凹凸由法线贴图来表示。
PBR纹理技艺因提供者而异。显然每位纹理家都有各自的做法，但非金属纹理的设定通常包括：
* 漫反射贴图（又称基本颜色）
* AO
* 位移贴图（又称）
* 粗糙度贴图（或者光滑度贴图）
* 法线贴图
有金属性的纹理会使用一种附加的贴图，要么是镜面反射贴图，要么是金属度贴图。关键在于理解每个贴图对漫反射率和镜面反射率的影响，然后才能在Source中把它模仿出来。
== 非金属 ==
对于非金属材料，我们只需要建立一系列函数，把PBR的五张贴图转换成起源引擎的三张贴图。
=== 法线贴图 ===
法线贴图的技术这些年来毫无改变，所以可以直接拿到起源引擎去。绿色通道是否需要反转依然要看具体情况；虽然这跟PBR没有关系。
:; 法线起源 = 法线PBR 
=== 位移贴图 ===
这张贴图表示的是表面的位移或者说高度。法线贴图应该已经反映了这些信息，所以这张贴图可以直接无视。但当没有AO的时候，也可以把位移贴图嵌入漫反射贴图或者法线贴图的蓝色通道里面。把它的不透明度调到不超过25%，然后滤色、相乘或叠加原始图层。
如果你对上述建议感觉过于笼统，那么尝试：
:; 漫反射起源 = 相乘 ((12.5%) 位移PBR, 漫反射PBR)
=== AO ===
这张贴图决定了来自环境光的反射率。由于起源引擎并不支持对固体的环境光遮蔽，它必须被嵌入漫反射贴图。理论上它应该与漫反射贴图相乘，但较高的不透明度会使结果看起来很阴森。可以从25%的不透明度开始。
:; 漫反射起源 = 相乘 ((25%) AOPBR, 漫反射起源)
另一种方法是在混合之前用色阶增加其亮度，如图所示。
尝试把它以50%的不透明度与漫反射贴图相乘。
=== 粗糙度贴图 ===
粗糙度贴图比较棘手，因为它跟漫反射率和镜面反射率都有关系。一个粗糙的表面反射较少的镜面光和更多的漫反射光，反之亦然。这里适用能量守恒定律，意味着
:; 漫反射 + 镜面反射 = 常数
但以人类的方式平衡这个方程是不切实际的，所以一些创造力就很有用了。对粗糙度贴图反转之后应用一个曲线可以得到一个令人满意的镜面反射贴图的结果：
:; 镜面反射起源 = 曲线 (1 - 粗糙度PBR, 108 > 0, 208 > 112)) 在sRGB中
曲线看起来如下：
该函数的一个有趣的结果就是高于64% sRGB的粗糙度会得到零的镜面反射。这种纹理大多是粗糙的土地、纺织品、混凝土等。在起源引擎的习惯中，这些材料确实一般没有镜面反射贴图。
取而代之，可能更好的做法是给这种粗糙的表面增加漫反射率。一个可能的方案是：
:; 漫反射起源 = 变亮 ((25%) 曲线 (粗糙度PBR, 127 > 0, 191 > 16, 255 > 64), 漫反射起源) 在sRGB中
曲线看起来如下：
== 金属 ==
按照定义，金属材料是很少见的，因为现实中见到的大部分金属都是氧化的或者上了漆的，这些属于非金属范畴。它们并没有裸露的金属表面。然而，从一些纹理样本中可以看到，某些陶瓷也可以有一定程度的金属性。
下面的例子展示了一张瓷砖纹理，整体粗糙度比较一致，但镜面反射率不同。镜面反射贴图中较亮的地方代表附加的金属性。
这种附加的金属性按理应该带来较高的镜面反射率。因此，除了以上步骤以外，还可以再应用一个函数。
:; 镜面反射起源 = 滤色 (镜面反射PBR, 镜面反射起源)
至于那种少见的，裸露的金属，现实中它的漫反射率几乎为零。人所感知到的颜色几乎全是由镜面反射带来的。然而，在起源引擎中，只有漫反射可以被其他表面以漫反射和镜面反射的形式接收。镜面反射则只能被其他表面以相同方式接收，即使如此，也要求多次运行。如果你不打算纠结于buildcubemaps和满地图到处放辅助光源，把感知颜色作为漫反射贴图依然值得推荐，跟非金属一样。金属和非金属不应该有任何区别。
所以如果纹理的漫反射贴图几乎是黑的，考虑用镜面反射贴图把它照亮。其他过程应该跟非金属大同小异。
== 结论 ==
至此，你应该已经有办法为起源引擎制备漫反射贴图、镜面反射贴图和法线贴图了。之后，你可能想要。
本教程的公式是要给出比较中庸的风格，所以在一些特殊情况下不好用并不奇怪。笔者鼓励你自行尝试。实际上，更常见的是调整纹理以适应你的地图，而非试图重现原貌。
== 参见 ==
* 
* 
* 
*
Zh/Adding Light

现在我们将给房间添加光源。如果没有布置灯光，那么地图载入后会变成「全亮」，效果完全不理想。设置光源的话会让地图看起来更加真实。
# 光源也是实体。从对象工具栏的实体下拉列表中选中实体。这是最基础的光源实体，它是一个不可见的点，产生射向所有方向的光线。在三维视图中点击，将灯光实体放在天花板的中央。
# 现在我们将编辑此灯光的颜色和亮度。换回选择工具，然后在三维视图中双击light实体打开对象属性对话框，其中包含了它的属性。点击对话框中的亮度可以调出灯光的亮度属性设置。
# 要调出拾取色彩的对话框，只需点击属性值下方的拾取色彩按钮。
# 色彩对话框应该已经显示出来了，下面我们试着改变目前灯光的颜色：
## 在右面巨大的光谱区中点选你想要的色彩可以改变色调。
## 因为亮度被设置为最高的原因，色彩仍是白色，因此我们必须降低亮度以达到你所期望的效果。你可以在对话框下方的预览窗格中看到它是如何从纯白变成更鲜艳的色彩。
## 然后点击确认按钮使你的选择生效。
# 现在我们已经设好了灯光的色彩，在亮度设置项中表示为前三个数字，剩下的这个值则用来表示它所放出的光线的强度。此处须手动修改选项中第四个值，用鼠标将这个数选中（当前是200），改为800，让灯光比之前亮四倍。
# 现在我们已经修改了参数，所以我们需要把它们应用至灯光实体。点击应用按钮提交更改。灯泡的颜色会改为你为它选择的颜色。点击属性对话框右下角的关闭按钮将其关闭。
== 结果 ==
编译完毕后，你会看到光线照射到墙上，离实体越近的地方越亮，离实体越远的地方越暗。必要的话记得关闭mat_fullbright。
然而你的光线并不会有可见的来源——看起来空穴来风。这一问题将在下一篇教程中解决。
== 参见 ==
* 
* 
=== 光源实体 ===
* ——基础光源。
* ——方向性的光源。
* ——控制来自的全局照明。
* ——可变化、可移动的动态光源。
* ——类似light_dynamic的动态光源，也可以投射动态阴影。
Zh/Adding Point Entities

下面，我们要把插入到地图中。
用来放置实体。在左侧的图标栏中选择此工具。
thumb|right|400px|从下拉列表中选择恰当的实体。
接下来我们将挑选并插入实体。在对象工具栏中有(默认情况下是在hammer窗口的右下角)。
首先，我们将选择代表玩家进入地图后出生地点的实体。选取何种实体取决于你要为哪个游戏制作地图。
* 如果你要为制作地图，那么游戏将会让玩家在实体处出生。如果没有出现在列表里，那么请执行以下步骤：
:* 关闭 Hammer
:* 在界面，设置当前游戏为半条命2：死亡竞赛
:* 再次启动Hammer
* 如果你是为制作单人游戏地图，游戏将会让玩家在实体的位置出生。
从下拉列表里选出合适的实体。
: 提示：为了节约时间，你可以直接在下拉列表里键入实体的名称，而不用在实体列表中寻找它。
接着我们要把这样实体放置到地图中。当你要放置紧贴某一表面的实体时，你只需在三维视图里在那个表面上点击就可以了。那么如图所示，随意的在房间地板上点击一下，然后实体就会被放置在你所点击的位置。
下面我们将要放置武器。
在对象工具栏里从实体列表中选中（如左图所示）。
会在它的位置上生成。
点击三维视图来放置实体，就像放置玩家起始位置时一样（如右图所示）。
再接着我们要放点弹药。
从实体列表里选择实体。
此实体是一盒麦格林转轮手枪专用的。
把实体放到的旁边，就像图上那样。
Zh/Adding Prop Models

道具模型是一种由与类似的模型制作工具创建的几何文件。你可以想给电影添加道具一样把这些道具模型添加到地图中。
有三种最基本的道具类型：
* 静态 此类道具将永远在地图中不会产生变化。
* 动态 此类道具可以播放动画或者与其他对象一起移动。
* 物理 此类道具可以被随意摆弄（遵循物理规则，如重力）。
在此教程中你将学习如何放置其中两种类型并了解它们的作用范围。
我们将先从添加静态道具开始。
所有道具都是实体，操作也相同，因此再切换回实体工具。
接着在对象工具栏的实体列表中选择。
在三维视图中点击鼠标将prop_static放到地板固体之上。
会出现一只红色小盒子。这是因为我们现在还没决定这个道具将会是什么样子的。
为此我们要给这样道具选择一只模型。
切换至选取工具并双击prop_static打开属性页。
# 在对象属性对话框中点击外部模型项。
# 点击浏览...按钮并耐心等待模型浏览器中的列表准备完。(你只需等待一次；因为列表已经为未来的搜索创建了缓存。)
虽然模型浏览器的预览窗口中有大大的红色“ERROR”字样，但请不要担心。那只是因为我们现在还没选定要预览的模型。
点击模型浏览器里的props_c17文件夹，列出其下的模型。
此文件夹下的模型非常多，但是我们不必滚动整个列表寻找目标，只需在列表下面的文本框中键入"fence"过滤出我们需要的内容，就像之前在纹理浏览器中做的那样。
点选模型文件 fence01a.mdl 。
预览窗口中将显示此模型的预览。如果你愿意，可以在窗口中拖拽鼠标随意地旋转模型。
等你查看完预览模型后，点击确认确定你的选择。
模型浏览器将关闭，而fence01a将成为你为prop_static实体所选定的模型。
点击应用按钮完成修改。
原先三维视图中的prop_static将转为显示你所选的防护围栏模型。
你也可以修改倾斜/偏转/滚动设置或者使用角度罗盘来改变防护围栏的方向。
我们现在添加有物理性的道具模型。
切换到实体工具。
选择什么类型的prop_physics实体取决与你要为什么游戏制作地图。
* 如果你要为:单人游戏制作地图，请选实体。
* 如果你要为制作地图，请选实体。
从对象工具栏的实体列表中选择一种合适的实体。
将物理道具实体放到房间地面上。
为了显示物理道具的属性，如果你关闭了对象属性对话框那么请再次打开。 否则对话框将自动转为显示它的属性。
再次点击对象属性对话框中外界模型项目里的浏览...按钮，打开模型浏览器。
# 搜索"oildrum"而不是"fence"。
# 选中oildrum001.mdl。
# 点击确认关闭浏览器。
点击应用按钮使更改生效后物理道具将变成你所选的油桶的样子。
关闭对象属性对话框。
== 移动对象 ==
你应该注意到防护围栏的模型有一半是陷在了地板里。我们现在就把它升上来。
实体的移动与固体相同：
切换到选取工具。
然后在三维视图中点选防护围栏模型。
此模型会在所有视图中一个方框框中，代表其已被选中。
要使某样东西在Z轴(上下)上移动，你必须在一种下级视图(称为前视图(y/z)或侧视图(x/z))中移动它。
在任意二位试图中的红色边框内点击，然后向上拖拽防护围栏直到它紧贴地板。
你应该会发现，模型底部很难与地板对齐，这是因为目前的网格大小使你无法做到这点。防护围栏有点陷在地里其实也没多大问题，但是你要是想让它更加整齐那就必须减小网格大小：
# 点击Hammer窗口左上角网格工具栏里的缩小网格按钮。
# 放大防护围栏与地面相交的地方，这样才能看得更清楚。
# 调节防护围栏的高度。
# 重复步骤1-3直到你觉得满意为止。(如果想天衣无缝，你要把网格大小减到2才行。)
你终于完成这张地图的设计草图了。
Zh/Adding Water

水是起源引擎中一个非常复杂的着色器：它是动态、反射、有雾、折射且有凹凸贴图的，还可以流动。这种复杂带来了关于如何放置它以及什么样的水应该用于什么场合的一些规则和限制。
==「昂贵的」水 ==
这种水看起来最好，但消耗的资源最多。这个着色器会反射它周围的世界，折射和雾化水下的世界（根据水体的线积分），以及在水表面播放一个凹凸贴图的动画。虽然结果是照片级地逼真，但成本有时候会因为复杂的场景而变得非常高。
== 「廉价的」水 ==
有一些情况需要一个更简单的解决方案（通常由于性能原因），可以使用「廉价的」水。这种水并不能反射它周围的世界，使得它不太真实，不过也「便宜」得多。如果「昂贵的」水运行在那些不拥有让渲染器正确工作所必需的功能的显卡上的话，水会回退到「廉价的」水。而且如果用户设置了游戏里的视频设置里的水的可视化质量的话，水也会回退到这种材质。
== 要求 ==
为了使其有效地执行，有一套关于水的使用和地图中放置的规则。
* 如果水是「昂贵的」,那么水在一个里只能有一种水位高度。
* 「昂贵的」和「廉价的」水不可以同时使用相同的。
* 水的表面永远都不应该在Z轴上倾斜；它应始终和地图上的水平线平行。
* 水是通过在一个固体上表面应用水的材质来创建的，而其他的面则是应用tools\toolsnodraw材质。
* 实体控制「昂贵的」水转换成「廉价的」水的距离。
* 要让低于DX9的硬件能正确渲染水面，必须存在一个实体。
== 创建 ==
要给你的地图添加一个水体，步骤如下：
# 用固体工具（Block Tool）创建一个跟水体一样大小的固体。
# 点击贴图工具栏上的浏览（Browse）按钮来打开贴图浏览器（Texture Browser）。
# 双击贴图浏览器里的tools\toolsnodraw材质。
# 选中你的水固体，点击应用当前贴图（Apply Current Texture）按钮来指派tool textures|tools\toolsnodraw材质给水固体。 
# 选择贴图应用工具（Texture Application tool），打开面编辑（Face Edit）模式。
# 在3D视图里左击水固体最顶层的面来选中它。
# 点击浏览（Browse）来再次弹出贴图浏览器（Texture Browser）。
# 在过滤器（filter）部分键入water。这将会显示所有名字中包含关键词water的所有材质。
# 双击一个水材质来应用它。这里有一个可以尝试的水材质：nature/water_canals_water2。
# 点击面编辑（Face Edit）面板上的应用（Apply）按钮
# 固体现在应该正确应用了水材质了。编译并运行你的地图（启用VVIS和VRAD）来测试它。
为了让水面正确渲染，你的地图需要有一个天空盒，水体本身应该是矩形。为了隐藏不想要的区域，这个固体可以跟其他固体相交。
如果水没有被正确渲染（你看不到它），这意味着你地图上哪里有着泄露。
=== 游戏的具体注意事项 ===
* L4D2地图还需要一个。
* Alien Swarm（异型丛生）里所有的水固体都必须被附着在一个名为「structure_seal」的 。
* 在Portal（传送门）里，要创建有毒的水，你必须使用nature/hazard_liquid材质。
== 反射球与水 ==
反射球对于水的表面是很重要的。在低于DX9级别的显卡上，要渲染实时反射水着色器是不可能的。对于这些显卡，一个实体将提供预先计算的的水环境贴图。
给水面添加一个env_cubemap：
# 使用实体工具（Entity Tool）添加一个env_cubemap实体。
# 在水的顶层的面上方，接近中心的地方放置env_cubemap。
# 在3D视图下双击env_cubemap来弹出物体属性对话框（Object Properties dialog）。
# 在物体属性（Object Properties）里点击固体面（Brush faces）。
# 点击拾取...(Pick...)按钮。鼠标光标将变为滴管图标。
# 点击顶层水面来用滴管选择。水面会以红色高亮显示，来表示它已经和实体关联。
# 关闭物体属性（Object properties）对话框。
# 编译并运行你的地图。载入地图后，打开开发者控制台，键入buildcubemaps。引擎会为每一个env_cubemap实体计算一个环境贴图，然后保存到文件里。
== 参见 ==
* 
*
Zh/Ai speechfilter

这个实体允许调整设置 与玩家的闲聊。这非常有帮助，尤其是您进行脚本设置时，那些闲聊不合时宜的位置。或者阻挡面部表情的位置， NPC的语音定义在 。
==键值==
==输入==
==Outputs==
Zh/Ambient generic

==实体描述==
此实体用于播放声音，可以设置单次或循环。同样可以设置从某坐标点或者全局可听见。
其可以播放和控制声音脚本的声音，一段.wav实例或者（实体）。不像贴图或者模型那样，你必须重启 Hammer 才能看到变化，声音不需要，只需要点 browser 即可。
== 键值 ==
==Flags/标签==
== Inputs/输入 ==
== 参见 ==
* 超越实体极限，将声音调整至10以上。（通用地图教程）
* - 用单个实体播放多个声音通过脚本
* Looping a Sound - which requires modifying the actual WAV file
* 用logic_auto在css设置此实体。 - 创建env_soundscape的替代方案。
Zh/Ammunition

弹药，是大多数武器的必需品。大多数使用弹药的武器，它们的弹药储存在弹匣中；“装填弹药”是将当前弹夹替换为完整弹夹。
==弹药实体==
* - 的弹药。
* 
* - 的弹药。
* 
* - AR2 的能量球。
* - 拥有无限特定种类弹药的弹药箱。
* - 的弹药。
* - 的弹药。
* 
 
* - 的弹药。
* 
* - SMG 的榴弹。
* - 的弹药。
* - 的火箭弹。
right|100px|A full ammo box.
* - Fully replenishes ammo to current class.
* - Replenishes 50% of ammo.
* - Replenishes 25% of ammo.
* - Static object (usually used in spawn areas), replenishes all ammo.
* - Reusable ammo pile that fully replenishes ammo.
* - Bullets for the .
* - Bullets for the .
* - Bullets for the , and .
* - Bullets for the .
* - Bullets for the , , , and .
* - Bullets for the .
* - Bullets for the and .
* - Bullets for the , and .
* - Bullets for the , , and .
* - Bullets for the and .
==Ammunition coding==
* 
* - defines types of ammunition
* - How to change the amount of ammo per magazine
* - How to change the maximum ammo the player can carry
* - How to implement a tactical-shooter style reload system where the player loses any ammo left in the magazine when reloading
Zh/Animated Particles

粒子使用的纹理会被编译为纹理。这些精灵卡纹理本质上是多个纹理的集合。
精灵卡上的单个纹理可以是组成动画粒子的一帧帧图像，也可以是彼此无关的独立纹理。
精灵卡通过位于bin文件夹中的mksheet.exe工具创建，同时需要一个MKS文本文件来定义使用的纹理，并指定该精灵卡是动画序列还是独立帧集合。
== MKS文件 ==
.mks文件定义了粒子渲染时如何解析精灵卡。您可以将材质组织为可播放的序列，定义帧数和播放速率，以及是否循环播放序列。
以下是一个示例mks文件，展示了多种可能的配置：
// 第一个序列：简单的两帧循环动画
sequence 0 
loop		
frame mymaterial1.tga 1
frame mymaterial2.tga 1
// 第二个序列：单张静态纹理
sequence 1
frame mymaterial3.tga 1
// 第三个序列：每帧使用两张纹理进行多重贴图
sequence 2
frame fire_base0.tga fire_additive0.tga 1
frame fire_base1.tga fire_additive1.tga 1
// 第四个序列：将两帧的alpha通道分别存入输出帧的alpha和绿色通道，用于特殊着色器
sequence 3
frame frame0.tga{g=a},frame1.tga{a=a} 1
frame frame2.tga{g=a},frame3.tga{a=a} 1
;sequence
: 告知Mksheet.exe后续的frame条目属于同一个动画粒子序列，直到遇到下一个sequence指令
;frame
: 指定使用的.tga纹理文件名，后跟播放速率。1表示正常时长播放，0.5表示播放时间减半，2表示双倍时长
;loop
: 设置序列循环播放。若未设置，粒子播放完所有帧后将停留在最后一帧
此外，帧的RGB和Alpha通道可以分别打包。此功能将输入帧的Alpha存入输出精灵卡的Alpha通道，RGB存入RGB通道。值得注意的是，RGB和Alpha可以拥有独立的序列和帧尺寸。例如RGB可以是200x200，而Alpha是150x150。示例如下：
// 该序列将RGB帧数据与Alpha帧数据分离
// 实现RGB序列与Alpha序列的组合播放
// packmode设置mksheet分离RGB和Alpha帧
packmode rgb+a
// 第一个序列 - 循环Alpha帧
sequence-a 0
LOOP
frame reframedSmokeSprites170_0033.tga 1
frame reframedSmokeSprites170_0035.tga 1
// 第二个序列 - 循环RGB帧
sequence-rgb 1
LOOP
frame smokeTex0001_341.tga 1
frame smokeTex0002_341.tga 1
该.mks文件的输出效果如下。注意RGB和Alpha帧的尺寸均为非2的幂且互不相同。
 
 
== 注意事项 ==
* 同一图像文件可以在多个序列（或同一序列多次）重复使用，而不会在输出精灵卡中重复存储。典型应用场景包括：不同播放速度的序列、粒子序列、循环与非循环版本等
* 应尽可能将多个精灵纹理合并到一张精灵卡中，通过不同序列服务于不同的粒子系统
== 逐步教程 ==
本教程已验证适用于。据用户反馈，此方法在中不可用，但在中有效
# 在MaterialSrc目录下创建文件夹（例如"MaterialSrc/Particles/Particle_name/"），存放要编译的.tga纹理
# 在此文件夹内创建以.mks为扩展名的文本文件（非.txt）。该文件名称将作为输出.sht和.tga的文件名
# 按前文说明配置.mks文件。以下是不带动画的静态精灵示例：
sequence 0
frame 9mm_0001.tga 1
sequence 1
frame 9mm_0002.tga 1
sequence 2
frame 9mm_0003.tga 1
sequence 3
frame 9mm_0004.tga 1
# 将.mks文件拖放到mksheet.exe上，生成同名.sht和.tga文件
# 将.sht或处理后的.tga拖放到vtex.exe（或其快捷方式）上，生成最多两个.vtf文件可删除带"pwl"扩展名的辅助文件，或在vtex日志出现"SUCCESS: Vtf file created"后提前终止进程Vtex会根据Materialsrc中的路径结构，在materials目录下创建相同路径存放.vtf文件
# 创建粒子材质文件.vmt，基本结构如下：spritecard
{
$basetexture ".../.../..."
$depthblend 0
$blendframes 0
}
== 粒子TGA膨胀处理 ==
若未进行膨胀处理，黑色背景会渗入半透明粒子（如火、烟）。使用packmode rgb+a时可能无需此步骤
# 在图像软件中打开mksheet生成的.tga
# 复制Alpha通道作为图层蒙版，去除黑色背景
# 复制粒子图层并添加高斯模糊，可多次复制以增强边缘膨胀效果
# 将模糊层置于原始纹理下方，添加纯色背景
通过上述步骤可获得无背景渗色的优质膨胀纹理
== 精灵卡编译（旧方法） ==
将.tga和.mks文件放入"Steamapps/common/SourceSDK/bin/orangebox/bin"。创建包含以下内容的.bat文件：
 mksheet <sheetname>.mks <sheetname>.sht <sheetname>.tga
参数说明：第一个为必填的.mks文件，后两个分别为可选的.sht和.tga输出文件。例如编译smoke1.vmt：
 mksheet smoke1.mks smoke1.sht smoke1.tga
生成的.file文件可安全删除
== 3ds Max自动化 ==
通过Wall Worm插件可直接导出渲染序列到Source引擎。该系统支持导出基于TGA的IFL（图像文件列表）位图，根据位图参数自动生成MKS文件并调用mksheet生成.SHT和.TGA。完整文档参见：http://dev.wallworm.com/document/187/exporting_animated_particle_textures.html
Zh/Applying Textures

在这部分里我们要为墙面、地板和天花板挑选纹理。
要打开，点击Hammer界面右边纹理群组中的 浏览...按钮。
====
使用查看并选择你想应用在固体上的纹理。
 要浏览纹理时更轻松，你可能需要调整纹理的预览大小。
在纹理浏览器窗口的左下角，从大小:下拉列表中选择128x128。
这样可以减小纹理的采样大小，因此我们能同时看到更多内容。
过滤纹理
包含了数以千计的纹理，如果没有过滤器功能，想要精确的定位你所需要的纹理可是件麻烦事。 这项工鞥允许你指定文件的部分名称，像是"水泥墙"，"石灰天花板"或者"金属门"。 稍后会过滤出那些只包含此文本的纹理。
开发用纹理
当要制作一幅地图时，开始时先使用能辅助创建适当大小物体的纹理是一种良好习惯。Hammer包含了一些专门辅助你创建和玩家相同比例的地图的纹理，叫做"开发用纹理"。
# 在过滤器中键入 dev wall 。
# 双击纹理 dev/dev_measurewall01a。
选中的纹理显示在Hammer界面右边的当前纹理下。
== 应用纹理 ==
# 激活 。
# 在相机视图中点击你想应用纹理的墙面。
# 在左边的面板上点击应用当前纹理图标在选定的固体上应用已选择的纹理。
纹理调节器
因为纹理与面的关系，你的纹理可能不会正好与墙面吻合。利用纹理调节器能让你将纹理调整为适合墙面。为所选面在纹理调节器上打开。
因为我们使用的开发纹理是128单位的而要使用它的墙面是1024 x 512 的（都是128的倍数），纹理应该已经是吻合的了，不过我们还是能通过调整表面编辑选项卡中的设置看到改变。
*纹理比例 用于调整纹理的大小。数字小于1会让纹理更小。数字大于1会让纹理更大。负数则反转纹理*纹理位移 沿着X或Y轴移动纹理。整数让纹理朝左（X轴）和下（Y轴）移动。负数让纹理朝右（X轴）和上（Y轴）移动。
*当前纹理可改变应用在表面的纹理。
*亮度映射比例影响着光源在物体表面的作用程度。数字越小分辨率越高兵提供更精细的照明效果。数字越大分辨率则越低，提供的照明效果越差。
*旋转 旋转固体上的纹理。
*排版 指定了纹理如何与边缘对齐。 L 至左边， R 至右边， T 至顶端， B 至底端， C 至中央， and Fit 会调整X与Y的值让纹理充满整个物体表面。
*校直 指定了纹理在空间中的处理方法。World 校直线强制纹理不动以适应物体的移动。Face 校直线则使用了与物体表面相同的基线。
*模式 让你可以选择在左键点击固体表面时执行的动作。
给剩下的三面墙应用相同的纹理。
用相同的方法给地板和天花板也应用一种开发纹理。
Zh/Areaportal tutorial

__TOC__
== 介绍 ==
Areaportal 是一种将地图的一部分划分为单独区域的方法。如果您没有 Areaportal，则整个地图只有一个区域。Areaportal 的主要优点是，当您在一个区域内时，起源引擎甚至不会考虑在任何其他区域绘制任何东西，除非有一个入口在眼前——然后它只绘制通过 Portal 可见性叶子块中的东西。
== 例子 ==
=== 街道示例 ===
例如，考虑一条满是房屋的街道。为简单起见，我们假设每栋房子都有一扇通向街道的门，没有窗户。此外，每栋房子都在（直的）街道的同一侧。如果你站在一所房子里，那么你可以看到房子的一部分，也可能是街道的一部分，但看不到任何其他房子的一部分。起源引擎甚至不应该考虑绘制任何其他房屋的任何部分，因为您不可能看到它。如果门是关着的，你就看不到街道，所以也没有理由考虑任何这些。
通过在门口放置一个 Areaportal，您可以实现这一理想。这就是会发生的事情。当门口（实际上是 Areaportal）从玩家的角度来看根本不可见时，游戏引擎不会考虑任何事情，除了当前区域：房子。如果门口在视野内，引擎会查看它另一侧（街道）的区域，并找出通过门口可以看到哪些叶子块。然后它只绘制那些叶子块中的东西。在启用 的情况下查看时，效果可以被生动地说明。
此外，Areaportal 可以直接与门相关联（、 或 ，但不是物理门），这样当门关闭时，引擎就不会费心去想它的背后是什么。总之，地图的这一部分变得几乎和地图中没有其他任何东西一样快。
=== 小木屋示例 - 定义区域 ===
以定义区域为例：假设我们要制作一个带有两扇门、四扇窗户和一个烟囱的小木屋，人们可以像圣诞老人一样进入它。假设我们已经确定这座建筑是我们想要变成它自己的区域的东西。要做到这一点，墙壁、地板和屋顶必须是世界笔刷（不是 detail 笔刷！），以便除上述开口外完全密封，防止泄漏。然后所有这些开口都必须被 Areaportal 覆盖：两扇门，所有窗户，以及烟囱中的某个地方。 Areaportal 在烟囱中的哪个位置并不重要，只要苍蝇不接触 Areaportal 就无法进入。(It doesn't matter where in the chimney the portal is, as long as a fly couldn't get inside without touching the portal.) Areaportal 是否与世界几何体的某些部分重叠并不重要 - 如果两个窗口并排，则可以拉伸一个 Areaportal 以覆盖它们（然后您可以对中间的部分使用 detail 笔刷，因为 Areaportal 正在密封这部分）。但是，如果门框与其 Areaportal 之间存在单个单元的间隙，则该区域不再密封，并且 BSP 程序会变得很慢，并且 Areaportal 将拒绝工作，直到您解决问题并重新编译。
一旦小屋开始工作（不是之前），在每个门口放一扇门并将它们连接到各自的 Areaportal。由于这是一个小木屋，我们将在窗户（用 实体做的）中放置大（非透明）百叶窗并将它们连接到它们的各自的 Areaportal 。烟囱入口没有门，但这没关系，尤其是通过该入口的视野无论如何都非常有限。
== 另请参见 ==
* - 关于这个主题的更深入的文章。
Zh/Autoexec

Autoexec是一个文件,它是由命令组成,该文件的意义在于可以让一些命令随着游戏的启动而自动执行
创建一个Autoexec文件需,要使用一个文本编辑文件把指令输入后,保存.重名名为Autoexec.cfg.然后把该文件放入/ mod's cfg文件夹中.要执行多个命令时,每输入一个指令就换一行.例如:
 cl_showfps 1
 maxplayers 1
 sv_cheats 1
Zh/BTS Light Sources

==介绍==
本页将展示并教您如何创建幕后区域中的光源。幕后区域与测试室形成鲜明对比的很大一部分原因是照明的不同。
一个常见的误解是，幕后部分的大部分照明都是红橙色的，这是错误的，因为大多数区域都是暖白色。在 中，红橙色通常用作重点照明，但也可以作为狭窄和狭窄区域的主要光源。
==聚光灯==
聚光灯附在墙壁、天花板上，有时也附在地板上。
===大灯===
创建一个实体并将其模型设定为models/props_wasteland/light_spotlight01_lamp.mdl，这个模型就是灯本身。基本模型是models/props_wasteland/light_spotlight01_base.mdl
创建一个并输入以下属性:
Property Name 	Value
Color 	250 240 205
HDR color scale 	.7
Spotlight Width 	80
Spotlight Length	Is how long the spotlight will go.
创建一个并输入以下属性:
Property Name	Value
Brightness 	250 240 205 900
Constant 	500000
===小灯===
创建一个实体并将其模型设定为models/props_wasteland/light_spotlight02_lamp.mdl，它是灯本身。基本模型是models/props_wasteland/light_spotlight02_base.mdl disable shadows for both props.
创建一个并输入以下属性:
Property Name 	Value
Color 	250 240 205
HDR color scale 	.7
Spotlight Width 	32
Spotlight Length	Is how long the spotlight will go.
创建一个输入以下属性:
Property Name 	Value
Brightness 	250 240 205 900
Constant 	500000
Inner (bright) Angle 	1
Outside (fading) Angle	25
Focus 	0.5
===吊灯===
创建一个实体并将其模型设定为models/props_bts/cage_light.mdl.
放一个到模型内部,然后依旧是输入以下属性:
Property Name 	Value
Render Mode 	World Space Glow
FX Color (R G B) 	250 240 205
Sprite Name 	materials/Sprites/light_glow03.vmt
Scale 	.5
Size of Glow Proxy Geometry	4.0
接下来，在模型下方创建一个。还是输入以下属性:
Property Name 	Value
Brightness 	250 240 205 400
Inner (Bright) Angle	15
Outer (Fading) Angle	30
你可能需要根据该区域的照明需求调整强度和角度。
然后，在你的房间里创建一个电缆系统，如果还没有的话。把吊灯挂在上面，你可以尝试对齐顶部的小钩子，使其看起来像悬挂在电缆上，也可以将其连接到绳索相交的天花板上。
===挂壁式===
创个然后模型用models/props_c17/light_cagelight02_on.mdl。
放个在模型里,输入下列:
Property Name 	Value
Render Mode 	World Space Glow
FX Color (R G B)	254 216 146
Sprite Name 	materials/Sprites/light_glow03.vmt
Scale 	.75
HDR color scale 	.5
然后创建输入属性:
Property Name 	Value
Brightness 	250 240 205 200
Inner (Bright) Angle	30
Bightness Scale HDR 	.5
Outer (Fading) Angle	70
同样，你可以以最适合该区域的方式修改强度和角度；确保将放置在靠近的地方，以便它看起来像模型正在发光。不要忘记将固定装置与墙壁齐平。
==其他光源列表==
* 
* 
* 墙面管道
Zh/Basic Construction

== 固体 ==
是在起源引擎的所有地图中创建结构的基本单位。地板、墙面、天花板，等等这些非模型的几何体都由是固体构成的。
== 创建固体 ==
#选择 。
#创造一只盒子，先在二维顶视图（默认情况下是右上角的窗口）中点击并拖拽鼠标设置固体大小，如图二。
#按下回车键创建这个物体。另外也可以在固体内点击右键然后选择Create Object。
注：如果在你的东西没有任何纹理时，要显示纹理的话，到相机视图中查看 > 3D Textured Polygons 。
== 固体选取 ==
点击 。它用于提取对象群体中的某个对象或一组对象。激活选择工具后，在任意窗口点击固体可以将其标记为高亮。(二维窗口里请点击固体边缘或中心。在相机视图只要点击选取对象即可。)
你应该发现了，被选的固体变成红色高亮状态，同时在二维视图中会出现八个白色控制点。这些控制点允许你对被选物进行旋转与形变操作。（见之后的缩放、旋转与倾斜）
记住，固体就像是三维线条构成的盒子。把盒子压扁使其看上去像是一块薄板，再把它移动到相机的下方。把这个固体想象成一块立体的天花板、地板或是墙壁，光有它不能算完整的房间。需要6块固体才能制作一个房间。
== 网格 ==
所有二维视图中都会显示网格。默认情况下所有对象都会对齐到网格。你也可以关闭此功能，不过如果保留此功能可以更好地防止你的地图出现漏洞或其他错误。
网格的默认大小是64单位，这表示每格都以64单位分割。你可以按 [ 和 ] 键改变网格大小。
* 点击更小网格图标可以把网格减至之前的一半大小以增加调节精度。
* 点击更大网格图标]可以把网格增至之前的两倍大小以进行大比例调节。
要在有效地图中确定合适的刻度，请参考文章
。
== 缩放、旋转与倾斜 ==
缩放
用选取固体并将鼠标放在八个控制点中的某个上。这时指针会变成箭头，只是控制点可以操作的方向。
只要简单的点击并托转这些控制点就可以进行缩放。
旋转
用选取要旋转的对象，然后再被选对象上点击一次。这时你应该会看到被选对象四角出现了圆圈。
鼠标在任意二维视图中的圆圈上点击并拖拽以旋转对象。
倾斜
用选取你要倾斜的对象，然后在被选对象上点击两次。你应该能看到被选对象四边的都出现了白色方块。
把鼠标放在任意二维视图的白点上，然后点击并沿着坐标轴方向拖拽以倾斜对象。
Zh/Beams and Lasers

可以将光束和激光添加到地图中，以与其环境进行交互并添加到风景中。
=== 实体 ===
* — 两点之间的可见光束。
* — 激光，末端带有可选的端部sprite和火花。
* — 用作激光炮塔的画笔实体。 
* — 以特定速度发射激光。
* 在 中的激光.
== Articles ==
* — 一点有意思的 env_beam
== 参见 ==
*