标题：CS模型
摘要
CS模型，是一种以团队合作为主的射击类游戏。1998年，由Valve Software公司制作推出，是一款第一人称射击游戏，属于《半条命》（Half-Life）的其中一个游戏模组（MOD）衍生而成的游戏，来源是《雷神之锤II》（Quake 2）的MOD，多数原Action Quake 2贡献者加入了CS开发。
简介
要了解什么是CS模型，就必须先知道CS。（英文名称 Counter-Strike，中文名称 反恐精英）
它是一种以团队合作为主的射击类游戏。1998年，由Valve Software公司制作推出，是一款第一人称射击游戏，属于《半条命》（Half-Life）的其中一个游戏模组（MOD）衍生而成的游戏，来源是《雷神之锤II》（Quake 2）的MOD，多数原Action Quake 2贡献者加入了CS开发。CS最新版本为使用《半条命2》（Half-life 2）的“Source”引擎制作的《反恐精英：起源》。WCG、CPL、ESWC等电子竞技都以CS为比赛项目。
CS模型就是玩家在CS中所使用的模型，可以按CS模型设计者自己的想法来设计与替换，MDL文件就是模型文件。其编辑工具有HLMV，MS3D，MAYA等。
游戏起源
在1998年之前，相信几乎没有人知道世界上存在着一个名叫Valve 的游戏开发小组，然后在经历了1998年那个令人难忘的E3之夏后，相信几乎没有玩家会不知道它的名字：《半条命》所带来的震撼感觉使一些挑剔者也不得不承认它是一款具有强烈感染力的游戏，同时《半条命》获得了超过40家媒体一致公认的“年度最佳游戏”称号，更被誉为“史诗般杰出的作品”——Half-life 更是在当今日趋竞争激烈的动作类游戏市场中与Quake系列、Unreal系列形成三足鼎立之势。 
在Quake系列声势浩大地在全球推出了《雷神之棰III：竞技场》，Unreal系列的《虚幻：锦标赛》形成了强势出击之后，Valve 的那些天才们又再忙些什么呢？《半条命：军团要塞》虽然以极为出色团队合作模式赢得了广大玩家的“芳心”，但它只能算作上一代“经典名作”；而《半条命：针锋相对》只不过让玩家在游戏中完成了一个角色的转换，游戏本身并无多少创新之处；《军团要塞II》仍然被笼罩在一层神秘的面纱后，揭开面纱仍需时日……不过Half-life 忠实的拥趸们可千万不要着急，因为如同当初推出TFC一样，其实Valve已经与一些天才玩家们早已经利用《半条命》的游戏引擎共同开发了一款融合了团队合作模式、小队战术模拟、近屋作战等各类出色游戏细节的动作类游戏《反击》。 　Valve 在开发《反击》时采用一个时下非常流行的“开放式”开发模式：每隔一段时间他们就公布一个游戏的测试版供玩家自由下载测试（有些公司在游戏开发达到90 %的完成度时，连发布个beta测试版都显得那么吝啬！）。游戏已从原先的1.0 版升级到了目前的6.0版（文件大小约为43兆），但Valve似乎对于游戏设计开发仍然“意犹未尽”，并没有对其开发设计过程做任何宣传。虽然如此，但游戏本身已经在CS（《半条命：反击》的简称，下同）的义务测试员（当然包括作者本人）圈子中获得了极高的评价。
路径
人物模型 
路径 cstrike\models\player 
匪1 terror\terror.mdl 
匪2 leet\leet.mdl 
匪3 arctic\arctic.mdl 
匪4 guerilla\guerilla.mdl 
警1 urban\urban.mdl 
警2 gsg9\gsg9.mdl 
警3 sas\sas.mdl 
警4 gign\gign.mdl 
[1]人质 vip\vip.mdl 
将下载的MOD文件名改为上述文件夹里的文件一样的名字（比如你想改4号警察，那么就把MOD改为gign.mdl，然后替换gign文件夹里面的文件即可）
武器模型 
路径 cstrike\models 
自己手上模型 v.*.mdl 
掉落地上模型 w.*.mdl 
别人手上模型 p.*.mdl 
武器声音 
路径 cstrike\sound\weapons 
*.wav
P模型过大会导致进不去游戏
需在控制台输入 mp_consistency "0" 
或在 cstrike_schinese\userconfig.cfg 里添加 mp_consistency "0"
模型
CS中默认的武器模型有 knife glock18 usp elite fiveseven p228 deagle m3 xm1014 mac10 tmp ump45 mp5 p90 galil famas sg552 aug ak47 m4a1 g3sg1 sg550 scout awp m249
默认的装备模型有 hegrenade（高爆手雷） flashbang（闪光弹） smokegrenade（烟雾弹） backpack（C4） thighpack（拆弹器） kevlar（避弹衣）shield（防暴盾）
默认的人物模型有 terror（匪1） leet（匪2） arctic（匪3） guerilla（匪4） urban（警1） gsg9（警2） sas（警3） gign（警4）
在默认模型中 v.*.mdl 是自己手上模型， w.*.mdl 是掉落地上模型， p.*.mdl 是别人手上模型
另外在CS中还有VIP模型，人质模型，地图调用的模型，插件调用的模型等等
工具
gflip：武器模型转换左右手
HLMV：模型查看和一些简单的模型参数修改
MS3D：简单的模型和动作的创建修改
3dsMax：模型和动作的创建修改
Maya：模型和动作的创建修改
游戏制作
一般制作CS模型的工具有MS3D，3DSMAX，HLMV，gflip 
MS3D比较适合模型修改
3DSMAX比较适合模型和动作的制作
HLMV用来查看模型和做一些简单的模型修改
gflip可以给武器模型转换左右手
QC
每一个模型文件拆开后都会有一个QC文件，在这里我们可以做一些简单的模型修改，下面以武器模型为例
QC文件可以用任意的文本编辑器编辑或创建，以下是它的命令介绍
$attachment <关节名 X Y Z> 
作用：
指定一个附件的位置。
ID#：
指定附件的ID号，这个数必须在0-3之间，也就是说一个模型只能有四个附件。
关节名：
指定附件要贴附的关节名称，要想知道关节的名称，可以查看SMD文件。XYZ为该附件和关节之间的距离。
$body studio [reverse] 
作用：
指定模型的身体。
SMD文件：
指定一个保存着身体信息的SMD文件，但是不能包含扩展名。
reverse：
如果加上这个参数，模型的身体将是颠倒的。
$bodygroup <名称>
{
studio 
blank
.....
} 
作用：
指定一个身体组，取代$body命令的作用。一个组内可以定义若干个身体，一个模型可以定义数个身体组。像反恐怖Beta版里那些背着C4的匪徒就是用这个方法做的。
sudio：
指定一个用作子模型的SMD文件。
blank：
指定一个空的身体。
$cd <路径> 
作用：
指定一个读取SMD文件的路径。
$cdtexture <路径> [<路径>......] 
作用：
指定读取贴图的路径，可以制定若干个。
$cliptotextures 
作用：
将材质和模型合为一个文件。
$controller <关节名> <轴> <角度1> <角度2> 
作用：
为一个关节设定骨骼控制器以限制关节的转动。
ID#：
控制器的ID号，和附件一样只能有四个。
关节名：
要控制的关节。
轴：
要控制的轴，XR为X轴，YR为Y轴，ZR为Z轴，只能让控制器控制一个轴。
角度1和角度2：
控制转动的范围。比如要控制关节只在90度之内转动，这两个值要设为-45和45。
$externaltextures 
作用：
编译后将材质另外保存为一个文件，并在模型的文件名后加“T”作为它的文件名。
$gamma <数值> 
作用：
调整材质的加码值。
$hbox <关节名> 
作用：
指定一个接触点。一个模型可以定义若干个接触点，游戏可以根据这些接触点来判断遭到打击的部位。
ID#：
接触点的ID号，一个模型允许数个接触点使用同一个ID号。
关节名：
指定的关节将作为接触点的中心。
X Y Z X2 Y2 Z2：
接触点的尺寸。
$include 
作用：
包含另一个QC文件。
$modelname <模型文件名> 
作用：
指定编译后保存的文件名。
$origin 
作用：
在游戏中模型产生时的偏移量。
$rotate <角度> 
作用：
在游戏中模型产生时旋转的角度。
$scale <倍数> 
作用：
在游戏中模型产生时的大小。
$sequence <名称> 
{
[SMD文件2.....]
[fps 数值]
[loop]
[frame 开始 结束]
[origin ]
[rotate <角度>] 
[scale <倍数>]
[blend <轴> <角度1> <角度2>]
[LX]
[LY]
[LZ]
[{event <代码> <帧数> <参数>}]
} 
作用：
设定一个动作，每个模型都至少要有一个动作才能被游戏识别。这个命令是QC文件里最值得研究的，也是最重要的。
名称：
动作的名称。
SMD文件：
保存动画信息的SMD文件。
SMD文件2：
与第一个SMD文件混合的SMD文件，可以指定若干个。
fps：
播放的速度，数值越大速度越快，默认值为30。
loop：
循环播放。
frame：
只播放开始值和结束值之间的帧数。
origin：
开始播放动作时模型移动的单位。
rotate：
开始播放动作时模型旋转的角度。
scale：
开始播放动作时模型缩放的尺寸。
blend：
如果动作由一个以上的SMD文件混合而成，这个参数将控制这个动作的转动范围，它的设置方法和骨骼控制器相同。
LX LY LZ：
从一个轴抽出该动作和其它动作合并，半死不活的人物跑步动作就是用方法做的，其实人物的模型并没有拿着枪跑的动作，只不过是游戏把拿枪的动作和跑步的动作合并起来了。
event：
播放动作到指定的帧数时激发事件。以下是经常用到的事件代码列表：
代码 作用 参数 
5001 产生一个枪口的火焰。 指定火焰的大小和形状，它的值为0-100之间的整数。 
5002 产生火星。 没有参数。 
5004 播放一个声音。 声音文件名，必须是WAV文件。
C/S结构
软件开发可以分为C/S和B/S构架，具体为： 
C/S结构，即Client/Server(客户机/服务器) 结构，是大家熟知的软件系统体系结构，通过将任务合理分配到Client端和Server端，降低了系统的通讯开销，需要安装客户端才可进行管理操作。 　B/S结构，即Browser/Server (浏览器/服务器) 结构，是随着Internet技术的兴起，对C/S结构的一种变化或者改进的结构。在这种结构下，用户界面完全通过WWW浏览器实现。 
在网络连接模式中，除对等网外，还有另一种形式的网络，即服务器/客户机网，Client/Server。在客户机/服务器网络中，服务器是网络的核心，而客户机是网络的基础，客户机依靠服务器获得所需要的网络资源，而服务器为客户机提供网络必须的资源。 
它是软件系统体系结构，通过它可以充分利用两端硬件环境的优势，将任务合理分配到Client端和Server端来实现，降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构，由于现在的软件应用系统正在向分布式的Web应用发展，Web和Client/Server应用都可以进行同样的业务处理，应用不同的模块共享逻辑组件；因此，内部的和外部的用户都可以访问新的和现有的应用系统，通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 
什么是C/S结构。C/S(Client/Server)结构，即大家熟知的客户机和服务器结构。它是软件系统体系结构，通过它可以充分利用两端硬件环境的优势，将任务合理分配到Client端和Server端来实现，降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构，由于现在的软件应用系统正在向分布式的Web应用发展，Web和Client/Server应用都可以进行同样的业务处理，应用不同的模块共享逻辑组件;因此，内部的和外部的用户都可以访问新的和现有的应用系统，通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。