1.panda3d学习分享

您所在的位置:网站首页 肉松怎么吃的好吃 1.panda3d学习分享

1.panda3d学习分享

2023-08-20 21:02| 来源: 网络整理| 查看: 265

本人一直想编一个小游戏,奈何才疏学浅,又非计算机专业,更重要的是,本人懒癌晚期,只会python这个脚本语言,又不想学C(总是忘打";",自闭了),于是真的没有什么选择。比较有名的python游戏包应该就是pygame,但我总是感觉pygame官网界面有点丑(这算不算是理由),于是就选择了panda3d。当然,现在还是一个beginner,可能有诸多不懂和错误,写在这里也是为了将来回顾方便。

简单说一下p3d吧(其实我也不太懂)。。这个项目貌似是卡耐基梅隆大学开发和维护的,目前已经更新到了1.10.6。它是一个跨平台的开源渲染和游戏引擎,内核以cpp写成,还有部分python代码作为脚本。官方推荐使用python作为主要的游戏开发语言,当然也可以使用cpp(当然我不会hhhhh)。这是p3d的官网:https://www.panda3d.org/。个人认为p3d的相关支持还是做的可以的。官方一直在维护和升级p3d的版本(基本3个月一个小版本),手册也写的比较详细(显然是没有汉化版的),社区也比较活跃(显然也是英文的)。总之,如果你已经能较为熟练地使用python,想加深对python的理解,又想做一个小游戏的话,我认为p3d是一个很好的选择。

当然,还需要说明的是,到目前我学习的程度为止,我不认为p3d是一个很合适的商业游戏开发引擎。现在广泛使用的游戏引擎,比如Unity3d,UE4,CocosCreator这些,都有更为强大的功能。它们不止提供了一套完整的API,更有完善的图形编辑界面,还有活跃的中文社区支持,并且已经拥有了成功开发商业游戏的诸多经验。并且,python的运行速度也许也会给优化带来较大的困难。关于这些引擎的介绍,直接在b站搜索相关教程就行。

---------------------------------------------------------------------------------------------------------------------

下面就开始安装p3d和相关的库吧。我使用的IDE是pycharm。首先创建一个project,并构建一个虚拟环境。在菜单里选择file--settings--projuct interpreter,就可看见当前使用的虚拟环境中安装了哪些包。然后在右边点击加号,搜索panda3d和Pmw下载即可。如果觉得下载速度太慢,可以在虚拟环境的终端(Terminal)中输入pip install -i [镜像源网址] [模块名称]即可。

安装完毕后,可以输入以下代码来实现第一个p3d小程序。

from direct.showbase.ShowBase import ShowBasefrom direct.actor.Actor import Actorfrom panda3d.core import Vec3

class Application(ShowBase):    def __init__(self):        ShowBase.__init__(self)        self.panda = Actor("panda", {"walk": "panda-walk"})        self.panda.reparentTo(self.render)        self.panda.loop("walk")        self.cam.setPos(Vec3(0, -40, 5))

app = Application()app.run()

然后就可以看见一只呆萌的熊猫走着六亲不认的步伐。。。。

关于ShowBase,目前只要理解它是一个平台就行。它会打开一个窗口并开启一系列进程,并在每一帧刷新图像等等。

Actor()用于初始化可动的模型,前一个参数调取模型的地址(在这里由于”panda”自带于panda3d模块中,因此不用写路径,别的需要输入如“C:\\”这种字符串),后一个参数需要填入一个字典,字典的key是动作名称,value代表动作模型地址。

reparentTo可以将这个节点绑到某个父节点下。在这里是self.render。所有连接在self.render下的节点才会被显示。关于节点(Node和NodePath)的详细定义,建议查阅官方手册(挺重要的)。

self.panda.Loop()可以用来循环播放动作。如果没有这个语句,我们看到的将会是静止的熊猫。

self.cam是指摄像机的引用。setPos()可以设置摄像机位置。

self.panda 也可以setPos(),可以自己试试看。

除此之外,还可以setHpr(),setScale(),这些分别用于改变朝向与模型大小。

------------------------------------------------------------------------------------------------------------------

最后简单说一下blender2.8+和blend2bam的安装

panda3d只能读取.egg或者.bam的模型文件,若使用blender想要将建模过的文件导出为.bam,需要使用blend2bam。这是一个CLI工具,也就是说只能在命令行中调用。

直接在cmd中pip panda3d-blend2bam后,可以输入blend2bam命令检查是否安装成功。此后,将blender的安装目录(是一个文件夹,默认是“C:\Program Files\Blender Foundation\Blender 2.83”)添加至环境变量(PATH)中即可。(添加环境变量查百度)

----------------------------------------------------------------------------------------------------------------

今天就写到这吧。。



【本文地址】


今日新闻


推荐新闻


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