星球大战与Python之间的那些事

作者:lijiao 时间:2023-05-25 13:49:35 

Python与星球大战背后的工业光魔

提起Python语言,很多人会想起系统运维、Web开发等工作。很少有人会知道Python也能够用于电影视觉特效的制作,其中就包括了《星球大战》某些电影特效的制作。

星战之父乔治·卢卡斯于1975年创建了工业光魔(全称:Industrial Light and Magic),从第一部《星球大战》起便参与了电影的特效制作。据Python官网介绍,工业光魔从1996年起开始使用Python语言,取代了此前的Unix shell脚本。工业光魔做出这个决定的原因,在于Python的学习难度低,开发速度快。当时,Python还只是1.4版本。

星球大战与Python之间的那些事

电影特效行业竞争十分激烈,制作公司会不断地寻找更加优秀的编程语言,提高工作效率。工业光魔也是一直在评估Python语言的使用,但是近20年以来,还没有找到一个更好的替代品。

工业光魔的资深技术总监Tommy Burnette曾经这样评价道:

  • Python在我们的生产流程中扮演了至关重要的作用。如果没有它,像《星球大战》第二部这样的大项目就很难完成。从集体渲染到批量处理再到影片合成,Python将所有步骤都紧密的粘合在了一起。

由此可见Python的强大。

Star Wars API

你知道《星球大战》系列大战中出现了多少个种族,多少种飞船吗?这些答案都可以在Star Wars API中找到。

星球大战与Python之间的那些事

据开发者介绍,Star Wars API是全球首个量化的、可供编程使用的星战数据集。开发者经过漫长的搜集和整理,汇总了星战系列电影中的人物、种族、星球、飞船等详细数据。目前,这个API中已经收录了《原力觉醒》中的新数据。API的作者还用Python开发了一个helper库。

我们来看看可以用这个库做些什么。

将所有星球按大小排列:


import swapi
for planet in swapi.get_all("planets").order_by("diameter"):
 print(planet.name)

查看哪些人开过1艘以上的飞船:


import swapi
for people in swapi.get_all("people").iter():
 if len(people.starships) > 1:
   print(people.name)

检索Jar Jar Binks是否在电影中出现:


import swapi
pm = swapi.get_film(4)
jj = swapi.get_person(36)
for c in pm.get_characters().iter():
 if c.name == jj.name:
   print("Why George, why.")

Python编写的Star Wars小游戏

最后,再与大家分享一个国外开发者用Python开发的星战相关游戏,希望大家喜欢。

星球大战与Python之间的那些事

这个游戏类似现在的跑酷,通过上下左右方向键控制。

是不是很酷!很赞!很期待!

标签:Python,星球大战
0
投稿

猜你喜欢

  • vue-cli npm如何解决vue项目中缺失core-js的问题

    2024-04-28 09:30:26
  • 前后端常见的几种鉴权方式(小结)

    2024-05-02 17:05:54
  • python如何利用traceback获取详细的异常信息

    2023-06-14 00:53:18
  • php中json 序列化为 [] 的弊端

    2023-05-25 00:14:30
  • pytorch中tensor张量数据类型的转化方式

    2022-03-19 20:07:24
  • python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例

    2021-08-14 20:28:28
  • 超详细注释之OpenCV操作图像平移转换

    2022-08-14 19:29:38
  • python学习入门细节知识点

    2022-09-07 06:40:53
  • SQL Server 2008 安装SQLDMO.dll的方法

    2024-01-12 18:13:15
  • python 装饰器的基本使用

    2021-04-01 07:12:50
  • Python语言描述KNN算法与Kd树

    2021-07-24 05:10:35
  • 使用Pytorch+PyG实现MLP的详细过程

    2023-05-03 17:48:14
  • Python下载商品数据并连接数据库且保存数据

    2024-01-16 00:26:05
  • python 双循环遍历list 变量判断代码

    2021-02-10 12:38:12
  • Scrapy爬虫文件批量运行的实现

    2022-04-25 18:29:57
  • Python通过命令开启http.server服务器的方法

    2022-10-08 01:42:41
  • 段正淳的css笔记(1)分类之间的横竖线

    2007-11-01 21:47:00
  • python使用requests.session模拟登录

    2022-09-12 19:17:24
  • Python线程之同步机制实际应用场景举例说明

    2023-06-10 13:57:40
  • PHP正则表达式替换<pre>标签外的内容

    2023-05-22 10:47:12
  • asp之家 网络编程 m.aspxhome.com