cs:source吧 关注:1,535贴子:16,058
  • 8回复贴,共1

CSGO制图经验分享4 - 模拟R6小车的方法

只看楼主收藏回复

r6指的是一款名叫《彩虹六号:围攻》的游戏。小车是游戏中的一种工具,上面有摄像头。进攻方通过操控小车移动,以探测敌人的位置。
最近沉迷r6,我就想有没有可能在CSGO中模拟出R6的小车呢。抱着试一试的心理做了一下,我就找到了模拟R6小车的方法。当然,不包括扫描敌人的功能。
先上视频。具体方法放楼下。


IP属地:福建1楼2018-04-05 17:11回复
    玩法:玩家对着按钮按E后,画面切换为小车的视角,WASD控制小车运动,鼠标右键控制小车跳跃,跳跃有3秒的冷却时间。小车被攻击后会损坏。这个小车功能如果结合其他具体的地图,可能会变得很有意思。
    在做小车之前,要先大概了解CSGO中如何实现可控载具的制作。可控载具的制作方法有很多,CTX和geri43还有香蕉网上的一些大佬做的载具风格是各具特色的,感兴趣的人可以去反编译看看他们的小车的工作原理。下图是不需要使用VScript即可实现的可控载具的基本结构图。使用这个方法,不仅可以做出车,也可以做出船。这也是CSGO中做载具最简单但是BUG也最多的一种方法。(捂脸)

    上图方式的载具,通过差速来转向,说白了就是在车体左右施加不同大小的力,使得合力方向出现偏移,从而改变车辆的方向。
    那么就先来做R6小车的本体吧。如下图,先做车体,R6小车近似一个圆管,但为了保持平衡,我还是将其做成四轮车,然后将前两轮的部分做成透明,使得其看起来就像R6中的两轮小车一样。
    参数如图设置即可,不妥的话可以自己调整。spawnflags勾选【Generate output on +USE】和【Don't take physics damage】。

    如图,接着做出4个轮子,前两个轮子改用透明贴图。每个轮子起一个名字,并用phys_hinge将其与车体实体连接。注意,轮子和车体连接处的中心要对准,然后铰链的中心要置于轮子和车体的连接点。轮子同样使用func_physbox实体,flags勾选【Generate output on +USE】。

    然后如图,在原本4个铰链的同样的位置再分别放上4个phys_thruster(推进器),左侧的推进器方向往右,右侧的推进器方向往左。左前轮推进器和右后轮推进器起相同的名字,右前轮推进器和左后轮推进器起相同的名字。前轮推进器力度均设为150,后轮推进器力度均设为100。对这里有什么不解的话请看载具结构图。然后在车后方的中央放置2个推进器,方向分别为前后,力量均为300。所有的推进器都要起名字,接触对象都设为车体实体,flags都勾选【Apply Force】、【Apply Torque】、【Orient Locally】、【Ignore Mass】。

    如图,在车头前方正中心放置一个phys_keepupright,方向指向车辆正中心,这个实体用于平衡特定实体的方向,在这里是为了防止翻车。

    如图,以车体中心为中心创建一个trigger_push,命名为pusher,class info如图设置,flags仅勾选【Physics Objects】。

    然后如图,在可见的小车前上方中央放置一个point_viewcontrol实体,命名为cam1,flags勾选【Infinite Hold Time】。这个摄像头用来实现R6小车的摄像头功能。

    然后放置一个logic_script实体用于连接脚本,命名为script。放置一个logic_timer,将[Refire Interval]设为0.1秒,输出如下图。

    然后创建一个func_button作为启动小车的按钮,当然如果你要模拟R6的话,可以将按钮改成trigger_multiple或者logic_auto。命名为t_vehicle_button,Outputs如图,[Delay Before Reset]设为-1,flags勾选【Don't move】,【Toggle】,【Use Activates】。
    然后如图,在任意地方放置一个game_ui实体,Outputs如图设置。flags勾选【Freeze Player】,【Hide Weapon】,【+Use Deactivates】。Outputs如下设置,请将图中各推进器名改成你的具体的推进器的targetname。

    还有一点要补充的,最好能加个logic_auto,在OnMapSpawned时触发时向t_vehicle_base实体输入DisableMotion。
    VScript脚本内容放楼下。


    IP属地:福建2楼2018-04-05 17:16
    回复
      脚本内容如下:

      例子中有很多实体的设置没有给出截图或者具体的targetname,是因为我认为那些并非必要因素,各位看官有足够的能力通过类推来判断具体应该怎么做。因为这些targetname各位可以随喜好自己起,我不想做太多限制。本例子中的实体targetname:
      左前轮: wheel_front_left_1
      左后轮: wheel_rear_left_1
      右前轮: wheel_front_right_1
      右后轮: wheel_rear_right_1
      左向推进器: t_vehicle_left_thrusters
      右向推进器: t_vehicle_right_thrusters
      前向推进器: t_vehicle_thruster_forward
      后向推进器: t_vehicle_thruster_backward
      ===================================
      再插几张截图





      IP属地:福建3楼2018-04-05 17:21
      回复
        interesting


        IP属地:江西4楼2018-04-05 17:59
        回复
          dd


          IP属地:江苏来自Android客户端5楼2018-04-12 14:45
          回复
            小车还可以加标记敌人等功能


            IP属地:广东7楼2018-05-14 16:14
            回复
              大佬能做战斗机不,起源有张战斗机的图


              IP属地:广东8楼2018-05-16 21:38
              收起回复