BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1583|回复: 1

Blender Python 脚本 对Json 数据 的读取与逐一设置

[复制链接]
发表于 2012-11-23 14:21:28 | 显示全部楼层 |阅读模式
本帖最后由 nirenyang 于 2012-11-23 14:22 编辑

题目写的很纠结,思考这个大家可能会从哪些关键字找到文章,硬塞了一些词。

周六的blender cn北京聚会上,某导演想让blender读取数星空数据,
此类需求因该是普遍存在的,如果是人工设置每个星星的参数,会死人了。
在此臆想一个简洁方案。

资源:
1,只有三颗星星的天空,存成json.txt,放在d盘
{
"abc":
{
"location": (0,1,2),
"rotation": (1,2,3),
"size":1.0
},
"def":
{
"location": (4,5,6),
"rotation": (7,8,9),
"size":2.0
},
"xyz":
{
"location": (9,8,7),
"rotation": (3,4,5),
"size":3.0
}
}
_什么是Json? http://www.json.org/json-zh.html

2,blender用python脚本,存成readAndSet.py,先放d盘吧,打开bl后切换到Text Editor,将此文件扔进去,点run script。
import bpy
#读取文件
tmp = bpy.data.texts.load('d:/json.txt')
#转为哈希
tmp = eval(tmp.as_string())
#迭代设置
for obj in tmp:
  tmpMesh = bpy.ops.mesh.primitive_uv_sphere_add(segments=16, ring_count=8, size=tmp[obj]['size'], location=tmp[obj]['location'], rotation=tmp[obj]['rotation'])
  ob = bpy.context.object
  ob.name = obj

如果有报错,可能是  tmpMesh(前面是四个空格),将4个空格替换成1个tab.
数毫秒后,你能看到场景里多了3个球体,位置、大小如json.txt里描叙的一样,方向么,
圆形看不出来,在命令行里输入bpy.ops.mesh,再按两次ctrl + space(或点两次auto complete),就能查看其它其他默认物体了。前提是你的输入法没出来捣乱。

百度的博客似乎非常不方便编辑py脚本
 楼主| 发表于 2013-6-4 16:19:13 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-11-18 20:31 , Processed in 0.015693 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表