把Kinect扫描的点云数据导入Maya | Import Kinect point cloud to Maya

I used Skanect to scan my room down. The .ply file generated is like this:

0.614557 -0.0194625 -0.305274 -0.127814 -0.551592 0.824263 100 113 96
0.614418 -0.019946 -0.305417 -0.127814 -0.551592 0.824263 98 111 96
0.61429 0.00103368 -0.303381 0.0386538 -0.603242 0.796621 104 107 95

扫描用的工具叫Skanect,参见上一篇
导出的.ply文件大概是这样

0.614557 -0.0194625 -0.305274 -0.127814 -0.551592 0.824263 100 113 96
0.614418 -0.019946 -0.305417 -0.127814 -0.551592 0.824263 98 111 96
0.61429 0.00103368 -0.303381 0.0386538 -0.603242 0.796621 104 107 95

9 columns are x, y, z, xn(normal), yn, zn, r, g, b.
Took me a while to make it work because I didn’t know shit about Python itself or Maya Python. So if you’re in fog too I present you Python functions for Maya.

19_16_06
^result.

Notes:

Attributes have types, I forgot because Python fed me honey on this one. Stuck for a day.
emit() is buggy, it crashed the soul out of me when I used at=’rgbPP’ , use setParticleAttr() instead

Important, after importing, do ‘set current state to initial state’ and cache the first frame, otherwise the color will be gone next time you start it, this is some bullshit.

To hide part of the point cloud, select and cmds.setParticleAttr(at=’opacityPP’, fv=0).

[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z ,a ,a a, R, G, B for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=100 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)!=9:
rotted=True
if rotted:
continue

for a in range(6,9): #Just because it’s x y z bla bla bla r g b in my case
xyz[a]/=255

cmds.emit(object=p0,position=xyz[:3])
cmds.select(p0+’.pt[‘+str(pn)+’]’)
cmds.setParticleAttr(at=’rgbPP’, vv=xyz[6:9])
pn+=1

[/py]

Additional Python script to import particles, using only the first 3 numbers everyline as x,y,z and ignoring others.
There surely is way to make this more compatible but that’s too much effort..
[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=1 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)<3:
rotted=True
if rotted:
continue

cmds.emit(object=p0,position=xyz[:3])
pn+=1
[/py]
9行分别是 x, y, z, xn, yn, zn, r, g, b,xn是normal方向。
所以用个脚本从文件读数据-添加粒子就行了。
搜到这里的同学估计和我半斤八两,所以我present你Maya Python函数表
19_16_06
效果图(脚本见文末)

小记:
添加attribute注意类型,Python让我忘了这茬了,卡了我半天。
emit()函数有bug,直接 at=‘rgbPP’ 的话会崩溃,要用setParticleAttr()

5/1/2013 Update:
导入以后要先set current state to initial state 然后存下首帧cache,不然颜色会丢掉。
不要的部分可以选中然后 cmds.setParticleAttr(at=’opacityPP’, fv=0) 隐藏。

[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z ,a ,a a, R, G, B for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=100 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)!=9:
rotted=True
if rotted:
continue

for a in range(6,9): #Just because it’s x y z bla bla bla r g b in my case
xyz[a]/=255

cmds.emit(object=p0,position=xyz[:3])
cmds.select(p0+’.pt[‘+str(pn)+’]’)
cmds.setParticleAttr(at=’rgbPP’, vv=xyz[6:9])
pn+=1
[/py]

另外附加只看每行前3个数字作为xyz,忽略其他的python脚本
当然可以并成一个了但是没那闲情..
[py]
## Maya Point Cloud (.xyz) Importer
## Format: X Y Z for every line
## Page: http://axlarts.com/?p=1923

from maya import cmds

RES=1 # Only draw one particle for every RES lines in the file,
# in case of huge cloud but only need reference in the scene.

path=cmds.fileDialog2(ds=2,fm=1)[0]
f0=open(path)
n=0; pn=0
p0=cmds.nParticle()[1]
cmds.setAttr(p0+’.isDynamic’,0)
cmds.addAttr(p0,ln=’rgbPP’,dt=’vectorArray’)

while 1:
line=f0.readline().split(‘ ‘)
n+=1
if line[0]==”:
break

if n%10000==0:
print "%d lines %d particles\n" % (n, pn)
if n%RES!=0:
continue

rotted=False
xyz=[]
for doll in line:
try:
dollF=float(doll)
except ValueError:
rotted=True
print ‘(Warning) Invalid value %s in line%d: %s’ % (doll,n,line)
break
xyz.append(dollF)
if len(line)<3:
rotted=True
if rotted:
continue

cmds.emit(object=p0,position=xyz[:3])
pn+=1
[/py]

288 thoughts on “把Kinect扫描的点云数据导入Maya | Import Kinect point cloud to Maya

  1. muB

    Осознанный гемблинг — это стратегия к азартным сессиям, базирующийся на контроле и понимании рисков.
    Она включает осознанное лимитирование продолжительности и денег на игру.
    Каждый участник должен заранее устанавливать пределы ставок и строго их соблюдать.
    https://kart1na.ru/entry/338-ida-galich-prevratila-reys-v-kortezh-kak-bloger-shou-meyker-ustroila-svadebnyy-shabash-v-nebe/

    Reply
  2. muB

    Осознанный гемблинг — это принцип к игровым развлечениям, базирующийся на самоограничении и осознании рисков.
    Она включает добровольное лимитирование продолжительности и бюджета на процесс.
    Любой игрок должен предварительно устанавливать лимиты потерь и строго их соблюдать.
    https://nashipesni.ru/pub/2026-07-03-magniy-marketingovyy-khod-ili-zhiznennaya-neobkhodimost/

    Reply
  3. muB

    Осознанный гемблинг — это подход к игровым развлечениям, базирующийся на контроле и понимании рисков.
    Она предполагает добровольное ограничение времени и денег на процесс.
    Любой участник обязан предварительно определять лимиты потерь и неукоснительно их соблюдать.
    https://1-mk.ru/detail/466-litsenzirovanie-i-bezopasnost-kak-randx-zashchishchaet-igrokov/

    Reply
  4. muB

    Разумное отношение к азарту — это принцип к игровым развлечениям, основанный на самоограничении и понимании рисков.
    Она включает осознанное ограничение времени и денег на игру.
    Любой игрок должен предварительно определять пределы потерь и неукоснительно их придерживаться.
    https://mazko.ru/infopost/219-kriptovalyuty-v-onlayn-kazino-preimushchestva-riski-i-regulyativnye-voprosy/

    Reply
  5. muB

    Ответственная игра — это подход к казино, базирующийся на контроле и понимании последствий.
    Эта концепция предполагает осознанное лимитирование времени и расходов на процесс.
    Любой игрок обязан заранее устанавливать лимиты потерь и неукоснительно их соблюдать.
    https://e-transavto.ru/read/kambek-argentiny-i-uverennyy-bilet-shveytsarii-razbor-matchey-483/

    Reply
  6. muB

    Разумное отношение к азарту — это принцип к азартным сессиям, базирующийся на контроле и осознании последствий.
    Она включает добровольное ограничение продолжительности и бюджета на игру.
    Любой игрок обязан предварительно устанавливать пределы ставок и строго их соблюдать.
    https://e-transavto.ru/read/pensii-kotorye-mogut-ischeznut-kak-vosstanovit-vyplaty-474/

    Reply
  7. muB

    Mindful gaming is a set of practices that ensure betting stays a form of entertainment rather than a means of financial strain.
    It involves setting individual boundaries on time and money spent, as well as being aware of the indicators of harmful behaviour.
    In essence, responsible gambling promotes conscious choices and helps users to maintain balance over their gaming habits.
    https://pilot-club.ru/info/2026-06-16-ryazanskuyu-firmu-oshtrafovali-40-000-rubley-za-poddelnyy-insektitsid/

    Reply
  8. muB

    Разумное отношение к азарту — это принцип к азартным сессиям, основанный на контроле и осознании последствий.
    Эта концепция включает добровольное лимитирование времени и денег на процесс.
    Каждый участник должен предварительно устанавливать пределы ставок и строго их соблюдать.
    https://pilot-club.ru/info/2026-07-08-update-or-upgrade-the-evolution-of-cashman-casino-over-the-years/

    Reply
  9. muB

    Разумное отношение к азарту — это подход к казино, основанный на контроле и понимании последствий.
    Она подразумевает добровольное ограничение времени и бюджета на игру.
    Каждый участник должен заранее определять пределы ставок и неукоснительно их соблюдать.
    https://e-transavto.ru/read/pensii-kotorye-mogut-ischeznut-kak-vosstanovit-vyplaty-474/

    Reply
  10. duttymub

    Ответственная игра — это выбор, при котором азарт служат способом отдыха, а не средством поправить финансовое положение.
    Она строится на управлении длительностью и бюджетом, а также на понимании личных границ.
    https://rosotels.ru/detail/2026-07-09-kak-pogasit-kredit-bystro-prakticheskie-rekomendatsii.htm

    Reply
  11. muB

    Разумное отношение к азарту — это стратегия к казино, основанный на самоограничении и понимании рисков.
    Она включает добровольное лимитирование продолжительности и бюджета на игру.
    Любой участник должен заранее устанавливать лимиты потерь и строго их придерживаться.
    https://nanmed.ru/read/4033-rise-to-fame-the-secret-to-cashman-casino-s-success-in-the-virtual-casino-industry/

    Reply
  12. muB

    Responsible gambling is a collection of practices that guarantee gambling stays a recreational activity instead of a means of stress or loss.
    Key aspects include setting individual limits on duration and money spent, as well as being aware of the signs of harmful behaviour.
    Ultimately, responsible gambling encourages conscious choices and helps users to keep control over their gaming habits.
    https://wolgograd.ru/column/2526-rich-casino-vs-competitors-a-comparative-analysis/

    Reply
  13. muB

    Responsible gambling is a collection of principles that guarantee betting stays a recreational activity instead of a source of stress or loss.
    Key aspects include establishing personal boundaries on time and wagers, as well as being aware of the indicators of harmful behaviour.
    Ultimately, this approach encourages informed decisions and helps players to maintain balance over their gaming activities.
    https://omskapteka.ru/info/455-rich-casino-vs-competitors-a-comparative-analysis.htm

    Reply
  14. muB

    Осознанный гемблинг — это принцип к азартным сессиям, основанный на контроле и понимании последствий.
    Она предполагает добровольное ограничение продолжительности и бюджета на игру.
    Любой участник должен заранее устанавливать лимиты потерь и строго их придерживаться.
    https://rosotels.ru/detail/2026-06-27-valentina-matvienko-otsenila-nasledie-sergeya-ivanova.htm

    Reply
  15. muB

    Разумное отношение к азарту — это принцип к азартным сессиям, основанный на самоограничении и понимании рисков.
    Она включает добровольное ограничение продолжительности и бюджета на игру.
    Любой участник обязан предварительно определять пределы ставок и строго их соблюдать.
    https://1-mk.ru/detail/445-pochemu-listya-maliny-zhelteyut-skrytaya-prichina-o-kotoroy-zabyvayut-dachniki/

    Reply
  16. muB

    Осознанный гемблинг — это принцип к игровым развлечениям, основанный на самоограничении и осознании рисков.
    Эта концепция включает добровольное лимитирование продолжительности и расходов на процесс.
    Каждый игрок обязан предварительно устанавливать пределы ставок и неукоснительно их соблюдать.
    https://legicon-pravo.ru/data/3274-v-nenetskom-avtonomnom-okruge-vozbudili-delo-o-popytke-podkupa-mestnykh-vlastey.html

    Reply
  17. muB

    Mindful gaming is a set of principles that ensure gambling remains a form of entertainment instead of a means of stress or loss.
    Key aspects include establishing personal boundaries on time and money spent, as well as being aware of the indicators of problematic behaviour.
    In essence, this approach encourages conscious decisions and helps users to maintain control over their playing activities.
    https://dvery35.ru/article/4219-rich-casino-vs-competitors-a-comparative-analysis.html

    Reply
  18. muB

    Осознанный гемблинг — это принцип к азартным сессиям, базирующийся на самоограничении и осознании рисков.
    Она включает осознанное лимитирование времени и расходов на процесс.
    Каждый игрок обязан заранее определять пределы потерь и неукоснительно их соблюдать.
    https://wolgograd.ru/column/2502-tekhnicheskie-aspekty-krash-igry-aviator-generatsiya-sluchaynykh-chisel/

    Reply
  19. muB

    Осознанный гемблинг — это подход к казино, основанный на самоограничении и понимании рисков.
    Эта концепция предполагает осознанное ограничение продолжительности и расходов на процесс.
    Каждый участник обязан предварительно определять лимиты ставок и строго их соблюдать.
    https://liveforsport.ru/full-text/1463-irina-sheyk-i-mikele-morrone-v-novoy-kampanii-dolce-and-gabbana-your-devotion.html

    Reply
  20. muB

    Responsible gambling is a set of practices that ensure betting remains a recreational activity rather than a means of stress or loss.
    It involves establishing individual boundaries on time and money spent, as well as recognising the signs of harmful behaviour.
    Ultimately, this approach encourages informed choices and helps users to keep control over their gaming habits.
    https://1-mk.ru/detail/434-semeynye-khroniki-goryachie-spory-vokrug-shepeleva-friske-i-volochkovoy/

    Reply
  21. muB

    Prudent betting is a set of principles that ensure betting remains a recreational activity rather than a source of stress or loss.
    Key aspects include setting individual boundaries on time and wagers, as well as being aware of the signs of harmful behaviour.
    In essence, this approach encourages informed decisions and helps users to maintain balance over their gaming habits.
    https://liveforsport.ru/full-text/1503-rich-casino-vs-competitors-a-comparative-analysis.html

    Reply
  22. muB

    Осознанный гемблинг — это подход к азартным сессиям, основанный на контроле и понимании рисков.
    Она предполагает добровольное лимитирование времени и бюджета на игру.
    Каждый участник должен предварительно устанавливать лимиты ставок и неукоснительно их соблюдать.
    https://businessmind.watchco.ru/Tdo7fsh3ETfN/

    Reply
  23. muB

    Responsible gambling is a collection of principles that ensure betting stays a recreational activity rather than a means of financial strain.
    It involves setting individual boundaries on time and money spent, as well as recognising the signs of harmful behaviour.
    In essence, responsible gambling encourages conscious choices and supports players to keep balance over their playing habits.
    https://my-yarn.ru/moda/902-kak-vybrat-onlayn-kazino-kriterii-otsenki-nadezhnosti-i-bezopasnosti/

    Reply
  24. muB

    Разумное отношение к азарту — это принцип к казино, основанный на самоограничении и понимании последствий.
    Она предполагает добровольное лимитирование времени и денег на игру.
    Любой участник обязан заранее устанавливать лимиты потерь и строго их соблюдать.
    https://traveler.hypebeasts.ru/tzmjQlnXbNz8/

    Reply
  25. muB

    Осознанный гемблинг — это подход к игровым развлечениям, базирующийся на самоограничении и понимании последствий.
    Эта концепция включает осознанное ограничение времени и расходов на игру.
    Каждый участник должен предварительно определять лимиты ставок и неукоснительно их соблюдать.
    https://links.hypebeasts.ru/ZpT66loW5s7U/

    Reply
  26. muB

    Prudent betting is a set of principles that ensure betting stays a form of entertainment rather than a source of financial strain.
    Key aspects include establishing personal boundaries on duration and wagers, as well as being aware of the indicators of harmful behaviour.
    In essence, responsible gambling promotes informed decisions and supports players to maintain balance over their gaming activities.
    https://rosotels.ru/detail/2026-06-20-boevoy-raport-za-19-iyunya-ot-shtrafov-za-russkiy-v-odesse-do-roskoshi-pochtovogo-rukovoditelya.htm

    Reply
  27. muB

    Mindful gaming is a collection of principles that ensure gambling stays a recreational activity instead of a means of financial strain.
    Key aspects include setting individual limits on time and wagers, as well as recognising the indicators of harmful behaviour.
    In essence, this approach promotes informed decisions and helps players to maintain control over their gaming activities.
    https://ipcfms.ru/read/362-bibliotekarsha-iz-voronezha-poteryala-bolee-milliona-rubley-pytayas-razmorazhit-schyot.html

    Reply
  28. muB

    Разумное отношение к азарту — это стратегия к азартным сессиям, основанный на самоограничении и понимании последствий.
    Она предполагает добровольное лимитирование времени и бюджета на игру.
    Каждый участник должен предварительно определять лимиты потерь и неукоснительно их соблюдать.
    https://b8.chenews.ru/vN0K1aJTtH4G/

    Reply
  29. muB

    Для учителей профессиональное развитие имеют решающее значение, поскольку эти программы дают возможность изучать новейшие технологии.
    Благодаря подобным программам педагоги могут адаптироваться к новым условиям образовательной среды.
    В итоге существенно возрастает качество педагогической работы, что положительно отражается на учениках и их результаты.
    https://konkurent.ru/article/80974

    Reply
  30. muB

    Осознанный гемблинг — это стратегия к азартным сессиям, основанный на самоограничении и осознании рисков.
    Она включает осознанное ограничение времени и расходов на игру.
    Каждый игрок обязан заранее устанавливать пределы потерь и неукоснительно их соблюдать.
    https://historybuff.myfashionacademy.ru/DDLClztQNmmj/

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *