godot游戏教程

您所在的位置:网站首页 mmd模型不能移动 godot游戏教程

godot游戏教程

2023-07-15 23:29| 来源: 网络整理| 查看: 265

首先,打开godot游戏引擎——开源3d,2d游戏引擎。

新建一个工程

渲染器可以稍后修改,不要紧。

第一步导入模型,支持dae,obj和其他一些模型格式,具体支持哪些格式可以上godot官网查

双击后出现提示框

选择创建后,godot会自动新建一个场景,用来存放这个模型

等等,模型上怎么会有些不需要的表面,那是因为我在导出dae文件的时候,可能把blender的骨架形状也一起导出了吧。解决这个问题只需要把哪些节点隐藏掉就行了。见图1-hide

1-hide

看,模型正常了↓。

接下来,我们需要保存这个场景,为了方便在主场景中使用。(实例化场景)

第二步新建一个主场景,在里面添加spatial节点作为根节点,然后加入一个kinematicbody节点(动力学身体节点),然后再在这个节点里面添加一个collisionShape 选择AABB立方体碰撞箱类型就行了,或者胶囊碰撞箱也行,同时也要添加一个摄像机,添加在模型节点里面,这样这个摄像机会跟着模型移动了。添加完成后需要手动调整摄像机位置。(我用的第三人称视角)

这里节点比较多的原因是我是拿的我正在做的游戏工程做的示范,注意miku节点的右边有一个cut的图标,这表示这个节点是来自其他场景的实例。点击即可进入miku的场景进行编辑。

然后右键kinebody节点,选择添加脚本。

第二步,添加键盘事件。

进入项目设置

在动作一栏输入你定义的输入事件的名称

然后点击添加按钮即可添加自定义输入事件。我用的WASD移动,你们可以自己设置。

在添加完输入事件后,还需要定义对应的键盘或者鼠标或者其他手柄输入

定义方法简单易懂

接着就是上代码了,关键方法translate(),rotate_y()

translate(Vector3(x,y,z))这个方法是用来移动模型的,内部参数是一个Vector3类型的参数,x,y,z对应的是移动的偏移量

如translate(Vector3(0,0,10))这行代码表示向z轴正方向移动十个偏移量

rotate_y(degrees)         degrees代表旋转的角度,rotate_y()表示绕Y轴旋转

写代码思路:在主循环添加输入事件的检测,如果是W,就向前移动,如果是S就向后移动,如果是A就向左旋转,如果是D就向右旋转。下图是个参考,具体数值大小可以自己写。

这里我把A和D设置成了移动是有原因的

我把A和D设置成了移动是因为后来我把旋转的事情交给鼠标控制了

图中的walk变量其实是一个Vector3类型的变量

var walk=Vector3(0,0,1) ←源码

第三步,运行我们的场景,按下键盘wasd就能移动角色了。

模型拿的是mmd自带的模型。用blender做的动画,插件导出的dae。

我是3d动画新手,不太会k桢,所以看起来走路动画会有点僵硬。(因为不知道走路时的双腿运动规律),树的模型是外国网站上找的。

以上就是本节所有内容,我一开始看的官网文档自学的,然后加了qq群才发现move_and_slide()方法并不是用来移动模型的,而是向指定的方向滑动,而且是按照世界坐标来的,这样就会有一个问题,如果想要实现角色自由移动,然后又调用的那个方法,就会导致模型离原点越来越远,这个方法一般用在碰撞的时候,它会返回一个值,具体看godot的API。

本节内容不适合一点都不了解编程的人看,只要是知道一点编程知识,应该都看的懂上面那些东西。喜欢的话,欢迎收藏哦。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3