• 导入3ds的一些操作, 里面有修改器中没有的东西,


    --utility threedeeesimporter "Import 3ds Sequence"

    rollout rol_UVRandomRotate "UV Rotate" ---借用一下头
    (
     ---导入3ds 格式。
     
     ---导入权证的办法
     
     bitmap logo filename:"mondolabs.bmp" --图片显示 觉得没有什么。只是一个解释。
     local objbasename = "3dsobj" --名字的显示。
     button doit "Import"
     on doit pressed do
     (
      objlist = for o in objects collect o --现在的收集为了以后的删除处理。
       
      if objlist != #() then
      (
       queryresult = querybox "This process will clear your current scene. \nDo you want to continue?" title:"Are you sure?"
      )
      if queryresult then
      (
       delete objlist
       loadfilename = getopenfilename caption:"Import 3DS Sequence" types:"3DS(*.3ds)|*.3ds"
       ---返回一个拾取的路径, 主要的ui结构 下来就是在这个之上做文章了。
       
       
       if (loadfilename != undefined) then
       (
        --如果不错的话就是导入一些信息。
        
        local morphlist = #()
        mypath = (getfilenamepath loadfilename) ----收取路径
        basename = (getfilenamefile loadfilename)--收取名字
        basename = substring basename 1 (basename.count - 5) --? 截取的字符有些无理??
        filelist = getfiles (mypath + basename + "*.*")---- 就是为了这里的全局性 通过一个找到所有路径
        ---其实我之前因为好似这样的,但是有
        
        importfile filelist[1] #noprompt  ---d就是导入这一个文件。
        local objectcount = 1
        local nongeometrylist = #()
        
        ----在导入的文件中做事情。
        for o in objects do
        (
         if (iskindof o geometryclass) then --(iskindof o geometryclass) 判断某个节点是某个类 这个
         --很重要。
         (
          o.name = objbasename + (objectcount as string) -- 批量该名字。
          morphlist = append morphlist (createmorphobject o)
          ---这里包裹上自己不知道是为什么。
          ---也不是//?? 在研究
          
          --循环加入数组 ,但是不哟娜循环 到下面 到一下就好 要不这里总是倒 我觉得不好morphlist
          objectcount += 1
         ) else
         (
          nongeometrylist = append nongeometrylist o ---不是几何体 就就是直接加入。
         )
        )
        delete nongeometrylist  ---删除不是几何体的东西。--这个是要干什么/
        for i = 2 to filelist.count do
        (
         nongeometrylist = #()
         local newobjects = #()
         importfile filelist[i] #noprompt
         for o in objects do
         (
          if (findstring o.name objbasename) == undefined then
          (
           if (iskindof o geometryclass) then
           (
            newobjects = append newobjects o
           ) else
           (
            nongeometrylist = append nongeometrylist o
           )
          )
         )
         delete nongeometrylist
         objectcount = 1
         for o in newobjects do
         (
          if (morphlist.count > 0) then
          (
           at time i
           (
            animate on (morphlist[objectcount].transform = o.transform)
           )
           addmorphtarget morphlist[objectcount].morph o 3
           objectcount += 1
          )
         )
        )--只有一个的话这个根本就不执行。
        
        
        
        
        for i = 1 to filelist.count do ---这三套循环是干什么。----这里面好像是自动的给了材质。
        (
         for o in objects do
         (
          if (iskindof o geometryclass) then
          (
           addnewkey o.morph i
           for j = 1 to i do
           (
            if j == i then
             setmkweight (o.morph.keys[i]) j 100 true  ---这个效果是设定显示的% 比 效果很好。
            else
             setmkweight (o.morph.keys[i]) j 0 true
           )
          )
         )
        )
       )
      )
     )
    )

    ---对于导入的3ds 格式 不是集合体类的就删掉。对于有些显示有些不显示。


    createDialog rol_UVRandomRotate

  • 相关阅读:
    JS中声明变量的细节问题
    你不知道的var! 细节
    读书笔记:对象的属性
    手写new操作符
    slice
    全相等函数 isEqual
    几个面试题
    全相等函数
    剑指 Offer 29. 顺时针打印矩阵
    剑指 Offer 28. 对称的二叉树
  • 原文地址:https://www.cnblogs.com/gaitian00/p/2173576.html
Copyright © 2020-2023  润新知