python做3d_3D中文教程

python做3d_3D中文教程用Python写3D游戏,太赞了!(零基础也能学会)_python3d游戏

前言

vizard介绍

Vizard是一款虚拟现实开发平台软件,从开发至今已走过十个年头。它基于C/C++,运用新近OpenGL拓展模块开发出的高性能图形引擎。当运用Python语言执行开发时,Vizard同时自动将编写的程式转换为字节码抽象层(LAXMI),进而运行渲染核心。

图片

vizard入门

1、加载人物、对象、背景


avatar = viz.addAvatar('xxx.cfg', pos=(0,0,0), euler=(0,0,0))
viz.add('xxx.osgb',pos=(0,0,0), euler=(0,0,0))
viz.addChild('xxx.obj',pos=(-4,0,7.5))

2、鸽子随机漫步

①利用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑟𝑎𝑛𝑑𝑓𝑙𝑜𝑎𝑡()生成随机位置,调用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑤𝑎𝑙𝑘𝑇𝑜()实现鸽子漫步

②利用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑐ℎ𝑜𝑖𝑐𝑒()生成随机选择,随机更新鸽子的𝑠𝑡𝑎𝑡𝑒状态

③调用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑤𝑎𝑖𝑡𝑡𝑖𝑚𝑒()实现随机时间的等待

④利用𝑣𝑖𝑧𝑎𝑐𝑡. 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒()实现上述动作序列


pigeon = viz.addAvatar('pigeon.cfg',pos=(2,0,5))
random_walk = vizact.walkTo(pos=[vizact.randfloat(1.5,2.5),0,vizact.randfloat(4.5,5.5)])
random_animation = vizact.method.state(vizact.choice([1,3],vizact.RANDOM))
random_wait = vizact.waittime(vizact.randfloat(2.0,8.0))
pigeon_idle = vizact.sequence( random_walk, random_animation, random_wait, viz.FOREVER)
pigeon.runAction(pigeon_idle)

3、人物谈话动作


def PersonTalk():
  female = viz.addAvatar('vcc_female.cfg', pos=(1,0,8), euler=(-90,0,0))
  male = viz.addAvatar('vcc_male2.cfg', pos=(0,0,8), euler=(90,0,0))
  female.state(14)
  male.state(4)

4、角色移动

①通过𝑣𝑖𝑧. 𝑔𝑒𝑡𝐹𝑟𝑎𝑚𝑒𝐸𝑙𝑎𝑝𝑠𝑒𝑑() ∗ 𝑠𝑝𝑒𝑒𝑑计算移动速度

②初始化欧拉矩阵𝑚1 = 𝑣𝑖𝑧. 𝑀𝑎𝑡𝑟𝑖𝑥. 𝑒𝑢𝑙𝑒𝑟(0,0,0)

③通过𝑣𝑖𝑧. 𝑘𝑒𝑦. 𝑖𝑠𝐷𝑜𝑤𝑛()分析对应鼠标事件,根据人物朝向𝑎𝑣𝑎𝑡𝑎𝑟. 𝑔𝑒𝑡𝐸𝑢𝑙𝑒𝑟()更 新𝑚1平移变换矩阵

④通过𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑒𝑡𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛(𝑚1. 𝑔𝑒𝑡𝑃𝑜𝑠𝑖𝑡𝑖𝑜𝑛())更新人物位置

⑤通过𝑣𝑖𝑧. 𝑘𝑒𝑦. 𝑖𝑠𝐷𝑜𝑤𝑛()分析对应鼠标事件,设置对应人物动画:

前进、后退动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(2)

左跨步动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(12)

右跨步动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(13)

人物静止动画:𝑎𝑣𝑎𝑡𝑎𝑟. 𝑠𝑡𝑎𝑡𝑒(1)


def roleMove():
  m1 = viz.Matrix.euler(0,0,0)
  dm = viz.getFrameElapsed() * speed
  temp=avatar.getEuler()[0]*math.pi/180  
  if viz.key.isDown('w'):
    m1.preTrans([dm*math.sin(temp),0,dm*math.cos(temp)])
    avatar.state(2)
  elif viz.key.isDown('s'):
    m1.preTrans([-dm*math.sin(temp),0,-dm*math.cos(temp)])
    avatar.state(2)
  elif viz.key.isDown('a'):
    m1.preTrans([-dm*0.3*math.cos(temp),0,dm*0.3*math.sin(temp)])
    avatar.state(12)
  elif viz.key.isDown('d'):
    m1.preTrans([dm*0.3*math.cos(temp),0,-dm*0.3*math.sin(temp)])
    avatar.state(13)
  else:
    avatar.state(1)
    
  avatar.setPosition(m1.getPosition(), viz.REL_PARENT)

5、获取鼠标位移

通过回调函数callback获取。


def onMouseMove(e): 
    global mp_x,mp_y
    mp_x=e.dx
    mp_y=e.dy
viz.callback(viz.MOUSE_MOVE_EVENT,onMouseMove)

基于vizard实现的效果:

1.时钟显示当前系统时间

2.两个谈话小人(带动画)

3.第三人称漫游(带动画)

  1. 前进(键盘 W 键)
  2. 后退(键盘 S 键)
  3. 左跨步(键盘 A 键)
  4. 右跨步(键盘 D 键)
  5. 旋转(使用鼠标左右平移)
  6. 上仰(使用鼠标上下平移)

4.其他三维物体/背景

  1. 鸽子做自由漫步
  2. 花瓶摆件
  3. 天空背景
  4. 草地背景

图片

*你还有什**么想要补充的吗?*

作为一名程序员学习Python是必不可少的,下面带来一些Python技术资料的分享

Python入门全套学习资料附带源码:

学习编程前准备

在这里插入图片描述

全套软件安装包

附带完整的安装包的安装视频教程资源(新手大礼包已备好)

img

整套零基础入门视频+课件笔记

img

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。python做3d_3D中文教程

👉面试刷题👈

python做3d_3D中文教程

在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码输入“领取资料” 即可自动领取
或者

【点此链接】领取

python做3d_3D中文教程

2、学习方法

学习python,我觉得一定要快,用最快的时间快速入门,千万不要学困难的东西,先挑简单的来,越快越好,以免打击了你学习的积极性。

找到一个切入点,比如爬虫就是一个十分有趣的切入点,学会了爬虫你就可以从网站上“偷数据”,还可以把这些数据拿来卖钱,你说好不好。

总结

好啦,这就是今天的内容,入门知识点资料免费发送的哈,想要的小伙伴儿不要错过,带你直

接弯道超车,少走一大波弯路,准备好了嘛?!我们要开始学习一项编程技术啦!

img

好文推荐

了解python的前景:用 Python 写 3D 游戏,太赞了!(零基础也能学会)

了解python的兼职:用 Python 写 3D 游戏,太赞了!(零基础也能学会)

今天的文章python做3d_3D中文教程分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89378.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注