KK->Gmod转模手记
KK->Gmod转模手记

主要依赖教程up:CCCrino Aquila今天吃至圣斩 最初的轻语

此文章是在进行了第一次转模之后做的随笔笔记,包括了问题记录和不准确的推测描述,很多需要补充和修正的部分,仅作参考。

使用kkbp插件从kk导出模型,注意使用的服装,有上衣的情况下导出的上身肉体(消歧义)是被裁切过的,不然内衣或者头头会穿模。必须从这里开始考虑穿模情况,考虑保存多份后在blender里重合在一起,将四肢裁下只在上身躯干上保持着衣内衣脱衣三份,避免在bodygroup里切换整个身体,所有bodygroup需要存入的模型越多越容易异常。

导出的kk模型先在blender中进行处理材质效果,然后在3dsmax里处理骨骼操作。

主要使用kkbp插件(这个是blender里的)kkbp会自动进行预处理、导入kk材质和渲染上色,然后在shading中编辑材质效果,编辑完成后烘焙输出材质。这些材质中lighting版本将用于模型材质,后期将转成vta。具体参考Aquila视频。

gmod模型编译限制骨骼数量为256个以下,可以在blender尽量融并些骨骼,3dsmax删除有权重的骨骼有点麻烦。

很多人物卡有许多配件的拼装,使得导出模型的材质数量很多,但gmod模型编译要求材质数量不能大于32个,(补充:使用nekomdl可使上限达到64个材质)需要使用MatCombiner合并多的材质,一次不要合太多,可能影响VTFEdit处理。VTFEdit处理上限是4096×4096的图片(png)

MatCombiner要求模型采用的是mmd的shader或另几个特定shader,kk导出的模型是不满足这些要求的不能直接合并。需要先用mmd插件将模型转成mmd的形式再合并,这样会使模型的材质被改变,可以再在shader里面再将shader改回。通过备份原文件复制原文件中使用的shader来实现,这一步好像是在烘焙输出材质图片之前完成(其实我也不确定是否需要这一步,主要应该还是看导出了什么样的材质图片,只要那个还保持一致应该没问题吧)

导出fbx后先在blender里打开导出的fbx,用kkbp插件将烘焙输出的材质导入到模型,然后用cat插件fix模型后再用cat插件导出(若遗漏fix则会出现骨骼巨多巨乱的情况,必须先导入材质,否则fix时会将材质名合并)

Blender将处理好的模型导出为fbx,在3dsmax里导入,进行对骨操作。

3dsmax对材质文件的渲染与blender不同,blender会将材质文件存入工程文件中而3dsmax是引用外部文件,所以不要更改3dsmax的材质文件的文件名。

注意 256骨骼 32(64)材质 注意

(实际上definebones文件里不需要所有模型自带骨骼,可先使用不含除飘骨外的模型自带骨骼的prop.smd编译definebone,然后直接用这个definebone.qci做编译)

在3dsmax中对骨以及输出smd,smd记录的是模型和骨骼信息和需要的材质名字,不记录具体材质图片,所以有时出现导出的fbx在3dsmax里无法正常上材质不要紧,只要在3dsmax的材质编辑器里能看到对应的材质名字还在就行。

很多小饰品在导出时大概率没有骨骼权重,就近找一个跟着一起走的骨骼刷个1,最好是自己运动不明显的那种,避免变形,可以考虑把这些小饰品分成单独的物体对象,后面刷权重方便,也不影响导出smd的时候和其他物体一起导出成同一个smd。

对骨的重点在于四肢和手脚,躯干上的四根官骨尽量与模型躯干上的骨骼在相近的线上就好。常用快捷键shift+G隐藏模型实体 F3使实体网格化 G显示坐标地面

调整模型大小(先调整模型,不要整体缩放官骨)对骨从两大腿根开始,将对应官骨与模型骨对齐,从此处开始对下肢(这一步中不将大腿官骨断开),然后从对齐两上胳膊处开始对上肢,与手部对骨时将四指官骨根部与模型骨指根对齐。欲对齐时将对应官骨先断开连接,与相应位置的模型骨骼对齐后再接回父级。

点掉手上这个官骨的层次-链接信息-继承-缩放的xyz

下肢(可以先对齐这个)

上肢

手部

对骨时脚部的那个骨骼主要对应脚背一线:

手模主要与官方模型相对应,骨骼为辅,以上胳膊骨骼对齐为起始,然后缩放至手长尽量相近。

将手臂单独切出来(3dsmax中单独切下躯体后继续保留手臂权重似乎有些困难,可以之前就先在blender里做好,或者先隐藏模型其他部分导出smd后导入blender删掉多余的),将胳膊上的袖子之类尽量合并到胳膊上,与官模基本对齐后使用蒙皮包裹将官模对官骨的权重加载到模型上,挨得近的手指可能出现一个手指的骨骼影响两边手指的情况,需要手动做下调整。

手模导出前先向其导入模板里的Tarms.SMD,会让模型放到合适的位置。

对于难以在3dsmax里保留权重的同时裁切模型的情况,可以考虑导出smd后将smd导入blender对smd进行裁切。

所有bodygroup’s smd的总面数不要过多,否则容易编译异常(对应前步骤,从前期就尽量使得后面不要让bodygroup牵扯过大部分的模型,多个大号的smd可能导致异常)

/*npc跑动前倾后仰可注释掉definebone第一行单独的骨骼(来自于模型自带骨骼的那个)*/

导出vta时导出的帧数比做了表情变化的帧数多一帧,注意导出vta需要选中做了表情的脸部物体点击导出选定项。

有骨骼变动后若重导重编了pro和ref则所有bodygroup’s smd要么不要重导要么全部重新导一遍,不然可能会拼不上,也可以不重导重编pro和ref直接只重导所有受到骨骼改动影响的bodygroup’s smd。

不要直接整体框选缩放来试图改变模型大小,会导致模型被拉伸,使用$model形式定义的smd的大小也不会改变导致大头娃娃。

编译生成definebone.qci后将其中涉及到原模型骨架的条目删除,虽然多数时候无伤大雅但可能会影响游戏中的部分模型呈现(多半是mod相关,比如high jump)

对于材质的名字要注意文件名的空格问题,好像smd中记录的材质文件名会用下划线替代掉原文件名的空格,注意检查文件和vmt中是否和crowbar中列举的材质文件名称保持一致,你不想当紫黑格子人吧?

待验证:模型的大小未必是被定死的,考虑到对模时经常性地改动官骨的大小也不会导致最后模型有很明显的变形,也许只要每条官骨的数据bout对应的有所改变应该也不会导致hlmv中physics的拉伸?(会导致最终pm/npc呈现拉伸状态,但ragdoll影响不大) 还没有试过飘动骨骼编写,以后再来解决。目前知道的是,要选中要做飘骨的骨骼之后使用“仅影响轴”操作其方向,方向不对的情况下飘动角度会异常。飘骨中最上一级的一圈骨骼通常会用作定位。日后再看具体视频操作

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇