创建一个动态模型实体,也就是 prop_dynamic 选中 World Model 属性 点击浏览 就会打开模型浏览窗口 在左下角输入过滤字符 arm 就会出现很多 arm 相关的模型 在右上角这个视图中 按住鼠标左键并拖动可以旋转模型 按住鼠标右键并上下拖动可以缩放模型 我们找到 arm64x64_interior 模型并选中它 它是比较常用的 64 面板的支撑臂 在右下角的第二个选项卡中 列出了该模型的全部动画 点击它们就可以预览动画 选好模型后就可以直接点 OK 了 点击应用就可以看到相应的模型了 接下来编译地图看看效果 它是没有碰撞体积的 接下来更改它的默认动画 在属性面板中选择 Model 选项卡 可以在这个输入框中找出我们需要的动画 比如这个 64_out_straight 把它复制一下 然后到 Class Info 选项卡中 找到 Default Animation 属性(默认动画) 粘贴 应用 再来看看效果 可以看到默认动画是一直循环播放的 我们再选一个其他动画 BindPose 是固定姿势 可以看到这个动画是不动的,即静态动画 也就是说模型动画大致分两种:动态动画和静态动画 一般情况下默认动画都会设置成静态动画 接下来我们增加一个地板按钮 prop_floor_button 给按钮增加输出 触发条件选被按下时 然后选目标名称 我们还需要给支撑臂模型设置一个名称 随便设置一个名称,例如 arm01 再回到按钮的输出这 设置目标名称为 arm01 目标输入选 SetAnimation 然后参数填具体的动画名称 切换到支撑臂模型的 Model 选项卡 选择 64_out_straight 这个动画并复制它 回到按钮的输出,粘贴到参数中 再进游戏看看效果 踩下按钮后,模型开始播放动画,接着又回到了默认动画 所以我们还需要一并修改它的默认动画 再添加一个输出,用来改变默认动画 目标输入选择 SetDefaultAnimation 然后复制一下 64_idle 这个动画 以 idle 结尾的动画都是静态动画 把它粘贴到按钮的第二个输出的参数中 然后给这个输出加个 0.1 的延时 编译运行一下 现在按钮被按下时的效果是正常了 但是按钮弹起时没有效果 接下来给按钮添加弹起时的输出 同样的,播放的动画是 64_in_straight 默认动画设置为 BindPose 别忘了给默认动画设置 0.1 秒的延时 现在模型的动画效果总算正常了 添加一个方块 现在给支撑臂添加面板 更换一下贴图 拉出一块长宽都为 64 单位的笔刷 高度需要调整为 2 个单位 先缩小网格,然后就可以调整出 2 个单位的高度了 面板并没有跟随支撑臂一起运动 先选中笔刷,然后把它转为实体 更改其类别为 func_brush 然后设置它的 Parent 属性 选为 arm01 也就是支撑臂模型 然后在后面接着输入一个英文逗号 特别注意,逗号只能是英文的逗号不能是中文的逗号 这两者是有区别的,根本不是同一个字符 再输入 panel_attach 这是固定写法,它会报红,不用管 面板能够跟随支撑臂一起运动就说明成功了 我们需要先在地板上挖一个坑 单击选中地板 在左侧工具栏中选择裁剪工具 定位到顶视图中合适的地方 坑的大小为 192x192 单位 调整一下适合的网格 然后在要切割的地方拉出一条线 此时地板会被这条线分为白色和红色两部分 白色代表被保留下的部分,红色代表被删除的部分 此时再次点击左侧的裁剪工具可以进行切换 我们把它切换为两边都是白色,即切割后的两部分都保留下 按下回车键,此次切割就生效了 再次在 192 单位处拉出一条横线 按下回车键,再按 Esc 键退出裁剪模式 此时地板被切割成 4 部分 如果你的地板被切成 4 部分后却不能单独选中 请右键它,选择 Ungroup 取消组合即可,快捷键是 Ctrl+U 接下来把切割出的 192 单位正方形往下移动 64 个单位 但是产生了缝隙,我们需要把缝隙补上 更换一个贴图 选择笔刷创建工具 创建一块笔刷堵住缝隙 还有另一个 再选择纹理贴图工具 右键单击笔刷表面即可更换贴图 这个坑就做好了 长宽为 192 个单位,深度 64 个单位 接下来创建动态模型 prop_dynamic 设置它的模型 这次我们只能使用 armliving64x64 这个模型 看一下它的动画 我们需要用到的是 9arms_destroyed 开头的动画 一共有 9 种类型的动画 先选 01 的,以 idle 结尾的动画 复制它 在默认动画里填上 调整一下位置 给它设置一个名称,如 arm01 把它复制一份,复制操作是按住 Shift 键,再用鼠标拖动 把名字改为 arm02,默认动画也改成 02 的 接下来是一样的,继续复制,修改名字和默认动画 一直到 09 要注意调整它们的摆放位置 在这个过程中,你会发现之前创建的模型消失不见了 其实并没有,它们只是看起来重合到一起了 这应该是个 Bug,不过不要紧,并不影响我们的操作 我们只要把文件保存一下 再关闭它 再重新打开 就会看到它恢复正常了 这 9 个模型的摆放顺序是这样的 它与小键盘上的数字按键顺序是一样的 接下来给支撑臂创建面板 更换一个贴图 选择笔刷创建工具 面板的长宽都是 192 单位 调整高度为 2 个单位 接下来创建触发器 更换贴图为 Trigger 贴图 拉出一块较大的区域 高度也要超过 192 单位 将其绑定到实体 更改类别为 trigger_multiple 给它添加输出,让其触发模型动画 双击这个输出可以跳转到对应的目标属性面板 在这里选择动画,复制 9arms_destroyed_01 再双击这个输入跳转回触发器的属性面板 填入动画参数 然后选择这条输出 点击复制 然后粘贴 8 份 改成 02 03 04 09 再增加设置默认动画的输出 选择 9arms_destroyed_01_idleend 并复制 粘贴 将延时设置为 0.1 同样再复制 8 份 依次更改序号 输出就添加完毕了 对了,还需要将面板跟随支撑臂一起运动 将面板绑定到实体,再改为 func_brush 设置 Parent 属性 这 9 个随便哪个都可以 然后输入一个英文逗号 panel_attach 本期就到这里了,最后来看一下对比效果