呃...15年开篇~

去年想写一个有关默认相机转VR相机的脚本,当时没写完,今天不小心翻到并写完了,而且思路也和原来完全不一样了,增加了是否删除原相机与是否转换所选相机的选项.

由于国内VR版本比较混乱,中间加了个中英文版本的适配.

fn cam_to_vrcam sel:#off del:#on =
(
local sel_cam = #()
local del_cam = #()
case sel of
(
#off : cams = cameras
#on : cams = sel_cam + selection
)
case of
(
(VRayPhysicalCamera != undefined) : YY_vrcam = VRayPhysicalCamera isSelected:on
(VR物理摄影机 != undefined) : YY_vrcam = VR物理摄影机 isSelected:on
(VR_物理摄影机 != undefined) : YY_vrcam = VR_物理摄影机 isSelected:on
-- default:
)
for c= to cams.count do
(
if (classof cams[c] == Freecamera) or (classof cams[c] == Targetcamera) do
(
YY_new_cam = copy YY_vrcam
try cams[c].type = #free catch()
YY_new_cam.rotation = cams[c].rotation
YY_new_cam.pos = cams[c].pos
append del_cam cams[c]
)
)
delete YY_vrcam
case del of
(
#on : for d in del_cam do delete d
#off : ()
)
)--将默认相机转化为VR物理相机
cam_to_vrcam sel:#on del:#on

找到更简单的方法再继续修改~

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

在测试中发现一些问题:try cams[c].type = #free catch()

当将目标相机转换为自由相机时,目标点就不存在了,原来 selection 的物体会发生变化.

后来发现更简单的方法 baseobject 可以获得节点的原始对象的类别.而不像 classOf() 函数返回的是对象类的最终状态(堆栈的顶部).

fn cam_to_vrcam sel:#off =
(
case sel of
(
#off : cams = cameras
#on : cams = selection
)
case of
(
(VRayPhysicalCamera != undefined) : YY_vrcam = VRayPhysicalCamera()
(VR物理摄影机 != undefined) : YY_vrcam = VR物理摄影机()
(VR_物理摄影机 != undefined) : YY_vrcam = VR_物理摄影机()
default : messagebox "V-Ray版本不支持!"
)
for c= to cams.count do
(
if (classof cams[c] == Freecamera) or (classof cams[c] == Targetcamera) do
(
try cams[c].baseobject = YY_vrcam catch()
)
)
delete YY_vrcam
)--将默认相机转化为VR物理相机
cam_to_vrcam sel:#on

不过这个方法转换的相机都是关联的,以后在修改.

2015-01-30  今天找到了解除物体关联的方法了:连接地址

最新文章

  1. TNS-12518 & Linux Error:32:Broken pipe
  2. IE8的兼容性问题
  3. Android 高仿微信支付密码输入控件
  4. NOI2018准备Day3
  5. VC中GBK与UTF8转化
  6. TFS2013 安装出现TF400102错误解决
  7. Demo02_对结构体进行文件读写_张仕传_作业_
  8. c++ 依据输入动态声明数组(一维,二维)
  9. 程序启动读取和关闭时保存应用程序设置(QSettings)
  10. SQL_substr功能测试
  11. InnoDB的约束机制
  12. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250
  13. C++面试笔记(1)
  14. vscode "没有活动的源代码控制提供程序" 解决办法
  15. Android打开相机进行人脸识别,使用虹软人脸识别引擎
  16. rbac 权限分配, 基于formset实现,批量编辑
  17. 精巧好用的DelayQueue
  18. 利用python统计代码行
  19. DNS记录类型名单
  20. linq to sql 怎么查询前 11 条数据

热门文章

  1. 开发板远程操作SQL SERVER解决方案
  2. 'java'不是内部或外部命令,另一个解决办法
  3. WebDriver 常见Exception处理
  4. SQL查询语句执行速度快,存储过程执行慢
  5. webdynpro
  6. C++关于Condition Variable
  7. PAT题库-1064. Complete Binary Search Tree (30)
  8. Tomcat8 localhost+端口可以访问Manager APP,而IP+端口不可以访问 解决办法
  9. js去空格
  10. [驱动开发] windbg符号表