ΠΠΎΡΡΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΡΡΡΡ Π² Π°ΡΠΌΠ°ΡΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΠΈΡ Π³ΠΎΠ»ΠΎΠ²Ρ ΠΈ Ρ Π²ΠΎΡΡΠ° (ΡΡΠΏΠΎΠΉ ΠΈ ΠΎΡΡΡΡΠΉ ΠΊΠΎΠ½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π²ΠΎΡΡΠΌΠΈΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°). ΠΠ»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΉ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ Π²ΠΎΡΡΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΡΡΠΈ ΡΠ°Π²Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π³ΠΎΠ»ΠΎΠ²Ρ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΡΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»Π° Π·Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΡΡΠΈ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ ΠΊ Π½Π΅ΠΉ. ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π² Π°ΡΡΠΈΠ±ΡΡ parent ΠΏΠΎΡΠΎΠΌΠΊΠ° ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΊΠΎΡΡΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Ρ Π½Π°Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΡΡΡ Π»Π°Π΄ΠΎΠ½ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΡΡΠΈ ΡΡΠΊΠΈ.
ΠΠΎΡΡΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ Π°ΡΠΌΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡΡΡΡ ΠΈΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π°ΡΠΌΠ°ΡΡΡΡ VGROUPS ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΈΠΌΡ ΠΊΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π³ΡΡΠΏΠΏΡ Π²Π΅ΡΡΠΈΠ½, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½Π° Π²Π»ΠΈΡΠ΅Ρ.
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½Π°; Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π°ΡΠΌΠ°ΡΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΠ΅Ρ-ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΠΌ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , Π³Π΄Π΅ Π°ΡΠΌΠ°ΡΡΡΠ° ΠΈ ΠΌΠ΅Ρ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅, ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΡΡΠΈ Π² Π°ΡΠΌΠ°ΡΡΡΠ΅; Π½ΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠ° ΠΏΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ·Ρ (ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΡΠ΅ΠΊΡ ΠΎΡ ΠΏΠΎΠ·Ρ Π½Π° Π°ΡΠΌΠ°ΡΡΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π΅ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ). Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΡΠ½Π°ΡΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° ΡΡΠΎ (ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°ΡΠΌΠ°ΡΡΡΡ Π² x-ray, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Ρ):
ΠΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΡΡΠ΅ΠΉ Π΄ΠΎ ΡΠΎΡΠ½ΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠΉ Π²ΠΎΠΊΡΡΠ³ ΠΎΡΠΈ z, ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ (constraints). ΠΡ ΡΡΠΎΠ»ΠΊΠ½Π΅ΠΌΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΡΡ, ΡΡΠΎ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ ΡΠΆΠ΅ ΠΎΠ± ΠΎΡΡΠ½Π°ΡΡΠΊΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊ creepycrawlies.py. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π°ΡΠΌΠ°ΡΡΡΡ ΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠ΅ΠΌ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π°ΡΠΌΠ°ΡΡΡΡ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΊΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΆΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΡΠΆΠ΅ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π»ΠΈ Π²Π΅ΡΡΠΈΠ½Ρ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅Π»Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ mymesh, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΡΡΡΡ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ. ΠΠ΅ ΡΠ°ΠΊΠΈΠΌ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΈΡ ΠΊΠΎΡΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π±ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π² creepycrawlies.py). Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΠΌΠ°ΡΡΡΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΉ:
ar = Blender.Armature.New('BugBones')
ar.autoIK = True
obbones = scn.objects.new(ar)
ar.makeEditable()
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°ΡΠΌΠ°ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ autoIK, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π²ΠΎΡΡΠΎΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ Π΄Π»Ρ Π°Π½ΠΈΠΌΠ°ΡΠΎΡΠ°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ - ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π²Π΅ΡΡΠΈΠ½. Π‘ΠΏΠΈΡΠΎΠΊ vgroup Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ (vg,vlist,parent,connected), Π³Π΄Π΅ vg - ΠΈΠΌΡ Π³ΡΡΠΏΠΏΡ Π²Π΅ΡΡΠΈΠ½ Π° vlist - ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π²Π΅ΡΡΠΈΠ½, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅. ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. ΠΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ°ΡΡΡΠΌΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ° parent (ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ) ΠΈ connected (ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ½):
for vg,vlist,parent,connected in vgroup:
bone = Blender.Armature.Editbone()
bb = bounding_box([verts[i] for i in vlist])
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ, ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ Π³Π°Π±Π°ΡΠΈΡΠ½ΡΠΉ ΡΡΠΈΠΊ (bounding box) Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΠ½ Π² Π³ΡΡΠΏΠΏΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ° ΠΊΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π²Π»ΠΈΡΡΡ. ΠΠ°Π»ΡΡΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΡΡΡ. ΠΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π΅, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»ΠΈ Π½Π°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, Π²ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π΅Π³ΠΎ ΡΠ΅Π»Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π»ΠΈΡΡ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΡΡΠ»ΡΠ΅Π² (wing) ΠΈ Π½ΠΎΠ³ (leg). ΠΠ½ΠΈ Π²ΡΡΡΠ³ΠΈΠ²Π°Π»ΠΈΡΡ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ x. ΠΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠ°ΠΊΡ, ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ axis (ΠΎΡΡ):
axis=1
if vg.startswith('wing') or vg.startswith('leg'):
axis = 0
ΠΠΎΡΡΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ Π°ΡΠΌΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡΡΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ² ΠΊΠΎΡΡΠ΅ΠΉ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ Π² ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ°Ρ head (Π³ΠΎΠ»ΠΎΠ²Π°) ΠΈ tail (ΠΊΠΎΠ½Π΅Ρ) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΊΠΎΡΡΡ, ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Ρ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ y, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
if parent != None :
parenty = (ar.bones[parent].head[1] +
ar.bones[parent].tail[1])/2.0
ΠΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠ³ΠΈ ΠΈ ΠΊΡΡΠ»ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠΎΡΡΠΈ (ΡΠΎ Π΅ΡΡΡ, ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΊΠΎΡΡΡΡ), Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ ΠΊ Ρ Π²ΠΎΡΡΡ. ΠΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ ΡΡΠΈ ΠΊΠΎΡΡΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΊΠΎΡΡΠΈ, ΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎ y. ΠΠΎΡΡΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², Π»Π΅ΠΆΠ°ΡΠΈΡ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y, ΡΠ°ΠΌΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΡΡΡΡ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ y, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΠ΅ΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ x ΠΈ z. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ x ΠΈ z Π½ΠΎΠ³ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΡΡΠ»ΡΠ΅Π² Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΠΈΡ Π³Π°Π±Π°ΡΠΈΡΠ½ΡΡ ΡΡΠΈΠΊΠΎΠ². ΠΡΠ»ΠΈ ΠΊΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° (connected), ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π΅Ρ Π³ΠΎΠ»ΠΎΠ²Ρ Π² ΠΊΠΎΠΏΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Ρ Π²ΠΎΡΡΠ° ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ (Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π½ΠΈΠΆΠ΅).
ΠΠ»Π°ΡΡ ΠΠ»Π΅Π½Π΄Π΅ΡΠ° Vector ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ copy(), Π½ΠΎ ΠΊΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ __copy__(), ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ ΠΠΈΡΠΎΠ½Π° copy.
if connected:
bone.head = ar.bones[parent].tail.copy()
else:
if axis==1:
bone.head=Blender.Mathutils.Vector(0,
bb[1][0],0)
else:
bone.head=Blender.Mathutils.Vector(bb[0][1],
parenty,bb[2][1])
ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π²ΠΎΡΡΠ° ΠΊΠΎΡΡΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
if axis==1:
bone.tail=Blender.Mathutils.Vector(0,bb[1][1],0)
else:
bone.tail=Blender.Mathutils.Vector(bb[0][0],
parenty, bb[2][0])
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ°Π³ΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΡΡΠΈ - ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Ρ ΠΊ Π°ΡΠΌΠ°ΡΡΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΉ ΠΈ Π²ΡΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ.
ar.bones[vg] = bone
if parent != None :
bone.parent=ar.bones[parent]
else:
bone.clearParent()
if connected:
bone.options=Blender.Armature.CONNECTED
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Π²Π°ΠΆΠ΅Π½ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ: Π°ΡΡΠΈΠ±ΡΡ parent ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΠΈΠ»ΠΈ ΠΎΡΠΈΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊ Π°ΡΠΌΠ°ΡΡΡΠ΅, Π° ΠΎΠΏΡΠΈΡ CONNECTED ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΡΡΠΈ, ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ΅ΡΠ΅Π³Π°ΡΡΡΡ Π·Π΄Π΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΡΡΠΈ ΠΠ»Π΅Π½Π΄Π΅ΡΠ°. Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Ρ ΠΊΠΎΡΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΅Ρ Π°ΡΡΠΈΠ±ΡΡ parent. ΠΡΠ»ΠΈ Ρ Π½Π΅Π³ΠΎ Π½Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΡΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ None. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π½Π°ΡΠΈΡΡ None Π² ΡΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ clearParent(), ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅. Π ΠΠ»Π΅Π½Π΄Π΅ΡΠ΅, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ°Π·Π½ΠΎΡΡΠΎΡΠΎΠ½Π½ΠΈ, ΠΈ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Ρ. ΠΠΎΡΡΠΈ Π»ΡΠ±ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ Π»ΡΡ ΡΠ²Π΅ΡΠ° ΠΏΡΠΈ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ, ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΡΡΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½ΠΎΠ΄ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ.
ΠΠΏΠ»ΠΎΡΡ Π΄ΠΎ 16 ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈ, Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ 16 ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ². ΠΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Text3d, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΈ Π΄Π»Ρ ΠΊΡΠΈΠ²ΡΡ ΡΡΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ.
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ - ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°Π³ΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π°, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈΠ»ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ.
ΠΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌΡ ΠΌΠ΅ΡΡ, ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π³ΡΠ°Π½ΠΈ, ΡΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΠ°Π½ΠΈ. ΠΠ½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π³ΡΠ°Π½ΠΈ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π΅ΡΠ»ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π·Π°Π΄Π°Π½.
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ Π½Π° ΠΠ΅Ρ-ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ΄Π΅ΡΡ ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Ρ Π±Π΅Π»ΡΠΌ ΡΠ°ΡΡΠ΅ΡΠ½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ Π³ΡΠ°Π½Π΅ΠΉ Ρ ΡΡΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ, ΠΈ Ρ ΡΠ΅ΡΠ½ΡΠΌ ΡΠ°ΡΡΠ΅ΡΠ½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ Π³ΡΠ°Π½Π΅ΠΉ Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π½Π° ΠΠ΅Ρ-ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ob.
me=ob.getData(mesh=1)
mats=[ Blender.Material.New(), Blender.Material.New()]
mats[0].rgbCol=[1.0,1.0,1.0]
mats[1].rgbCol=[0.0,0.0,0.0]
ob.setMaterials(mats)
ob.colbits=3