查看: 479|回复: 1
打印 上一主题 下一主题

模型,QC、SMD文件介绍

[复制链接]
跳转到指定楼层
楼主
发表于 2011-12-2 20:26:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 [玩家]c-pz 于 2011-12-2 20:28 编辑

作者:C-PZ   QQ:843167229
一直被模仿  从未被超越!
2服Q群:146033056

模型,QC、SMD文件介绍
半死不活采用的是雷神之锤的技术,所以它的模型和雷神之锤的模型一样,由控制文件(扩展名为QC) 和数据文件(扩展名为SMD)再加上贴图(只能是Windows格式的256色BMP位图,而且它的长宽都必须是八的倍数。)编译而成。
其中QC文件保存了模型的附件、接触点和子模型等数据,并指定编译时要读取的SMD文件。SMD文件保存了模型的身体和动画信息。

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文件。


事件代码的第三位数代表附件的ID号,事件将在指定的附件位置上激发。


看到这么多的命令和参数你是不是有些头昏眼花了?不过这些命令并不都是必须的,有很多命令都可以省略。
其实QC文件的学问远不止这些,只不过我自己也是一个初学者,对QC文件也不是十分了解,所以目前只能写出这些东西了。我建议使用MilkShape 3D把半死不活的反编译,然后查看它的QC文件

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

沙发
 楼主| 发表于 2011-12-2 20:35:58 | 只看该作者
第二种方法:      ===================================
                                  一些必要的概念、知识介绍
             ===================================
    首先我们得知道半条命模型的结构。
    半条命模型的格式是mdl。将mdl反编译(可以使用HLMV反编译,MS3D也可以)后可以得到一些文件,有QC、BMP、SMD等文件。
    BMP是贴图文件,而且半条命模型的贴图必须是256色、长宽是8的倍数;SMD文件有两类:一类是保存模型信息的,里面包含骨骼的位置、模型实体的位置等信息,另一类是保存模型动作的。QC文件是编译模型必须的,你要让你的SMD文件、BMP文件等和成一个mdl即可以在游戏中使用的模型,就必须要有QC文件,QC文件中说明了你的模型需要哪些模型主体,需要哪些动作,每个动作的速度,某个动作发出什么声音,枪口火焰应该在哪个位置,等等等等…………
    模型是怎样构成的?模型的实体是有点构成的每三个点构成一个三角形的面,再由这些面构成模型。
    什么是皮肤?模型做好之后,模型表面是一片空白,这时把一些贴图贴到模型上面,就是皮肤。比如说做一个泥人,做好后它全身黑黑的,你给他染上颜色,画上脸、衣服,这就是他的皮肤了。
    什么是骨骼?模型也跟人一样,模型的运动靠着骨骼的指挥,模型的各个部分有各个骨骼控制,也就是说模型个各个部分都绑定到各个骨骼上了。比如说你的手为什么会动?那是应为你手里的骨头在动,你手上的肉也就跟着动了。另外,模型里所有的点都要绑定到骨骼上,不然是无法输出的。比如你身上某一块肉不手骨骼控制,那就得掉下来了。
    模型的动作是怎样实现的?前面说过,是靠动作SMD实现的,怎样实现呢?动作SMD里有一副骨架,这副骨架怎么动,模型也就怎么动了。动作SMD的动作是一桢一桢的,就像一个个慢动作的照片叠在一起,快速翻动起来就是动态的了。
    MS3D中骨骼是不能移动、旋转的,这样会引起模型严重变形,面目全非。(动作SMD中除外,不过也不能选中一大堆骨骼一起移动、旋转,每次只能选一个进行操作)
    什么是UV图?"UV"这里是指u,v纹理贴图坐标的简称(它和空间模型的X, Y, Z轴是类似的). 它定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置. 就好像虚拟的"创可贴", UV就是将图像上每一个点精确对应到模型物体的表面. 在点与点之间的间隙位置由软件进行图像光滑插值处理. 这就是所谓的UV贴图.
那么, 为什么用UV坐标而不是标准的投影坐标呢? 通常给物体纹理贴图最标准的方法就是以planar(平面),cylindrical(圆柱), spherical(球形),cubic(方盒)坐标方式投影贴图.
Planar projection(平面投影方式)是将图像沿x,y或z轴直接投影到物体. 这种方法使用于纸张, 布告, 书的封面等 - 也就是表面平整的物体. 平面投影的缺点是如果表面不平整, 或者物体边缘弯曲, 就会产生如图A的不理想接缝和变形. 避免这种情况需要创建带有alpha通道的图像, 来掩盖临近的平面投影接缝, 而这会是非常烦琐的工作. 所以不要对有较大厚度的物体和不平整的表面运用平面投影方式. 对于立方体可以在x, y方向分别进行平面投影, 但是要注意边缘接缝的融合. 或者采用无缝连续的纹理, 并使用cubic投影方式. 多数软件有图片自动缩放功能, 使图像与表面吻合. 显然, 如果你的图像与表面形状不同, 自动缩放就会改变图像的比例以吻合表面. 这通常会产生不理想的效果, 所以制作贴图前先测量你的物体尺寸
   
   
    另外,附上一些MS3D的快捷键,需要牢牢记住。
============================================================
    在3D立体试图里,要调整视角就可以按

Shift(键盘) + 鼠标左键       这个可以在3D试图或2D试图(3个平面图)里前后移动视角

  

Ctrl (键盘)   + 鼠标左键       这个可以在3D试图或2D试图(3个平面图)里上下左右移动

  

  

基本的功能快捷键:

Ctrl + Z          撤消

Crtl + D          复制物体

Delete            删除

Shift + Delete    删除全部东西



Ctrl + A          选择全部

Ctrl + H          隐藏选择的物体

Ctrl + N          焊接
============================================================
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站业务已经停用,仅作为【维翔主机】提供虚拟主机服务测速参考|小黑屋|手机版|银河网络    

GMT+8, 2025-6-25 12:17 , Processed in 0.209501 second(s), 18 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc. Design Singcere!

快速回复 返回顶部 返回列表