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


Posted in Python onJanuary 07, 2016

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 相关文章推荐
Python基础之函数用法实例详解
Sep 10 Python
Python实现注册登录系统
Aug 08 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
python实现发送form-data数据的方法详解
Sep 27 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
Python经典五人分鱼实例讲解
Jan 04 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 #Python
Python解析最简单的验证码
Jan 07 #Python
Python中http请求方法库汇总
Jan 06 #Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 #Python
分享Python文本生成二维码实例
Jan 06 #Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 #Python
使用Python神器对付12306变态验证码
Jan 05 #Python
You might like
PHP、Java des加密解密实例
2015/04/27 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
python提取内容关键词的方法
2015/03/16 Python
python实现类的静态变量用法实例
2015/05/08 Python
python实现百度语音识别api
2018/04/10 Python
pyqt5实现登录界面的模板
2020/05/30 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
城管大队整治方案
2014/05/06 职场文书
物理教育专业求职信
2014/06/25 职场文书
个人授权委托书样本
2014/09/13 职场文书
丧事答谢词
2015/01/05 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP