Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «НаписаниС скриптов для Blender 2.49Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 32

Автор Michel Anders

    if (retval):

        idprop['VertexGroup']= vgroup.val

        idprop['NormalAlign']= align.val

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° для Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Π΅Ρ€ΡˆΠΈΠ½:



Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ скриптовоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° строки VG, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡƒ Π²Π΅Ρ€ΡˆΠΈΠ½, Π½ΠΎ это отличаСтся ΠΎΡ‚ поля Π²Π²ΠΎΠ΄Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Π΅Ρ€ΡˆΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠžΠΏΡ†ΠΈΡΡ…. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ VG Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ способ рассматривания ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π»ΠΈ. Если здСсь задаётся коррСктная Π³Ρ€ΡƒΠΏΠΏΠ° Π²Π΅Ρ€ΡˆΠΈΠ½, цСлСвая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° пСрСдаваСмая Π² doConstraint(), Π±ΡƒΠ΄Π΅Ρ‚ усрСднённой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ Π² Π²Π΅Ρ€ΡˆΠΈΠ½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅.


Π˜Ρ‚ΠΎΠ³

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ свойства Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ вмСстС, ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ пространствСнныС свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² слоТными ограничСниями. ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΊΠ°ΠΊ:

β€’ Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ IPO ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ посрСдством выраТСния Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅

β€’ ΠžΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния, присущиС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ костСй, добавляя ограничСния (constraints)

β€’ ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ привязываСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊ блиТайшСй Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ взглянСм Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСйствиС всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пСрСдвигаСмся ΠΏΠΎ ΠΊΠ°Π΄Ρ€Π°ΠΌ Π² нашСй Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ.


5

ДСйствия ΠΏΡ€ΠΈ измСнСниях ΠΊΠ°Π΄Ρ€ΠΎΠ²

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ… ΠΌΠ½ΠΎΠ³ΠΈΡ… мСст, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ, Π³Π΄Π΅ ΠŸΠΈΡ‚ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² Π‘Π»Π΅Π½Π΄Π΅Ρ€Π΅, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для дСйствия ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… событиях. Π’ этот Ρ‚ΠΈΠΏ скриптов входят Π΄Π²Π΅ изюминки - скриптсвязи ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ пространства.

Бкриптсвязи (Script links) ΡΠ²Π»ΡΡŽΡ‚ΡΡ скриптами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ассоциированы с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π‘Π»Π΅Π½Π΄Π΅Ρ€Π° (МСши, ΠšΠ°ΠΌΠ΅Ρ€Ρ‹, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π‘Ρ†Π΅Π½Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠœΠΈΡ€Π°), ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ автоматичСски срабатывали Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

β€’ Π‘Ρ€Π°Π·Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π°

β€’ Π‘Ρ€Π°Π·Ρƒ послС Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΊΠ°Π΄Ρ€Π°

β€’ Когда ΠΊΠ°Π΄Ρ€ смСняСтся

β€’ Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ скоррСктирован

β€’ Когда Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° скоррСктированы

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π‘Ρ†Π΅Π½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с ассоциированными с Π½ΠΈΠΌΠΈ скриптами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Π²ΡƒΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях:

β€’ ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ .blend Ρ„Π°ΠΉΠ»Π°

β€’ ΠŸΡ€ΠΈ сохранСнии .blend Ρ„Π°ΠΉΠ»Π°

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ пространства (Space handlers) ΡΠ²Π»ΡΡŽΡ‚ΡΡ скриптами Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠ½ΠΎ 3D-Π²ΠΈΠ΄Π° пСрСрисовываСтся ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ дСйствиС ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ ΠΌΡ‹ΡˆΠΈ. Π˜Ρ… основным ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ возмоТностСй интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π‘Π»Π΅Π½Π΄Π΅Ρ€Π°.

Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:

β€’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скриптсвязи ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ пространства

β€’ Как ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ

β€’ Как Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

β€’ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ появлялся ΠΈΠ»ΠΈ исчСзал, измСняя Π΅Π³ΠΎ слой ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ

β€’ Как ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ схСму, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ связываСтся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ мСши

β€’ Как ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 3D-Π²ΠΈΠ΄Ρƒ


Анимация видимости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Часто Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π² создании Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ являСтся ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΡ‡Π΅Π·Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ‚ΡƒΡΠΊΠ½Π΅Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅, Π»ΠΈΠ±ΠΎ Ρ€Π°Π΄ΠΈ самого эффСкта, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ для достиТСния Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ драматичСского воздСйствия (ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π·Ρ€Ρ‹Π² ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° Π² мяч).

БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ способов ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эти эффСкты, ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π΅ связаны со скриптсвязями, Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π½Π° измСнСния ΠΊΠ°Π΄Ρ€Π° (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ просто Π±Ρ‹Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ‹ посмотрим Π½Π° Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒ ΠΊΠΎ всСм ситуациям Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ ΠΊ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π»Π΅Π³ΠΊΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. НапримСр, Π½Π°ΠΌ трСбуСтся нСсколько спСцифичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π»ΠΎΠ²ΠΈΡ‚ΡŒ Π² IPO.


ΠŸΠΎΡ‚ΡƒΡΠΊΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°

Нашим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ простому измСнСнию прозрачности (transparency), Π½ΠΎ Π½Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΡ… Ρ‚Π°ΠΊΠΈΠ΅ измСнСния Π»Π΅Π³Ρ‡Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ с Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

НашСй Ρ†Π΅Π»ΡŒΡŽ являСтся Π²Ρ‹Ρ†Π²Π΅Ρ‚Π°Π½ΠΈΠ΅ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΎΡ‚ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΊ Π±Π΅Π»ΠΎΠΌΡƒ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ двухсСкундного ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. ΠœΡ‹, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setcolor(), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΈ измСняСт Π΅Π³ΠΎ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ rgbColor). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ частота 25 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, пСрвая строка ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Π΄Ρ€Π° ΠΈ выполняСт Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, какая Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ†Π΅Π»ΠΎΠΉ сСкунды ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π°.

ВыдСлСнная строка Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ кускС ΠΊΠΎΠ΄Π° опрСдСляСт, Π² Ρ‡Π΅Ρ‚Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠΉ сСкундС ΠΌΡ‹ находимся. Если ΠΌΡ‹ Π² Ρ‡Π΅Ρ‚Π½ΠΎΠΉ сСкундС, ΠΌΡ‹ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π΅ΠΌ Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π΄ΠΎ Π±Π΅Π»ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ просто сохраняСм Π½Π°ΡˆΡƒ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ долю. Если ΠΌΡ‹ Π² Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠΉ сСкундС, ΠΌΡ‹ затСмняСм Π΄ΠΈΡ„Ρ„ΡƒΠ·Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π΄ΠΎ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌ долю ΠΈΠ· максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ значСния (25). НаконСц, ΠΌΡ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π°ΡˆΡƒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 1 ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Π΅Ρ‘ Π²ΠΎ всС Ρ‚Ρ€ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° для получСния ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ° сСрого:

import Blender

def setcolor(mat):

   s = Blender.Get('curframe')%25

   if int(Blender.Get('curframe')/25.0)%2 == 0:

      c = s

   else:

      c = 25-s

   c /= 25.0

   mat.rgbCol = [c,c,c]


if Blender.bylink and Blender.event == 'FrameChanged':

   setcolor(Blender.link)

Π‘ΠΊΡ€ΠΈΠΏΡ‚ заканчиваСтся Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ: Blender.bylink Π±ΡƒΠ΄Π΅Ρ‚ Π˜ΡΡ‚ΠΈΠ½ΠΎΠΉ (True), Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли этот скрипт Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ ΠΊΠ°ΠΊ script handler, ΠΈ Π² этом случаС Blender.event содСрТит Ρ‚ΠΈΠΏ события. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ°Π΄Ρ€Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ провСряСм здСсь Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этого события. Если эти условия ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ‹, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Blender.link Π² Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setcolor(), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ содСрТится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ наш связанный скрипт ассоциирован - Π² нашСм случаС это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Material (ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»). (Π­Ρ‚ΠΎΡ‚ скрипт доступСн ΠΊΠ°ΠΊ  MaterialScriptLink.py Π² Ρ„Π°ΠΉΠ»Π΅ scriptlinks.blend.)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ Π² нашСм спискС Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ скрипт с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‡Π΅ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ Π² ОкнС Кнопок Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ панСль Script. Π’ ΠΏΠ°Π½Π΅Π»ΠΈ Scriptlinks (Бкриптсвязи), ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ скриптсвязи (ΠΊΠ½ΠΎΠΏΠΊΠ° Enable Script Links) ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ MaterialScriptLinks. (Если Π½Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ MaterialScriptLinks, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π½Π΅ Π±Ρ‹Π» Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π». Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΅ΡΡ‚ΡŒ.) Π’Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ надпись Select Script link с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ New (Новый). Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° New, появится Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список с доступными скриптами (Ρ„Π°ΠΉΠ»Ρ‹ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅). Π’ нашСм случаС ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ MaterialScriptLink.py, ΠΈ Π½Π° этом всё. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΡΠΊΡ€ΠΈΠΏΡ‚ΡΠ²ΡΠ·ΡŒ, измСняя ΠΊΠ°Π΄Ρ€ Π² 3D-Π²ΠΈΠ΄Π΅ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш стрСлок). Π¦Π²Π΅Ρ‚ нашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠ°Π΄Ρ€Π°. (Если Ρƒ Ρ†Π²Π΅Ρ‚Π° Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏ отобраТСния Π² 3D-Π²ΠΈΠ΄Π΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ solid ΠΈΠ»ΠΈ shaded.)



ИзмСнСниС слоСв

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ слоя (слоёв) - Π±ΠΎΠ»Π΅Π΅ распространённая ΠΈ мощная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, Ρ‡Π΅ΠΌ измСнСния свойств ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. ИзмСнСниС Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ слоя ΠΈΠΌΠ΅Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, прСимущСство Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ для Π»Π°ΠΌΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сконфигурированы Π½Π° освСщСниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… слоёв, ΠΈ мноТСство аспСктов Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ частиц воздСйствиСм ΠΏΠΎΠ»Π΅ΠΉ) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ слоями. Π’Π°ΠΊΠΆΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ слоСв Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ со связанными с Π½ΠΈΠΌΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слой для Π›Π°ΠΌΠΏΡ‹ ΠΈΠ»ΠΈ ΠšΠ°ΠΌΠ΅Ρ€Ρ‹.

Π’ нашСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ слой 1, Ссли количСство ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… сСкунд - Ρ‡Π΅Ρ‚Π½ΠΎΠ΅, ΠΈ слой 2, Ссли врСмя Π² сСкундах Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅. Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉ это, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°ΡˆΠ΅ΠΌΡƒ скрипту, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΌΡƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π». РСальная Ρ€Π°Π±ΠΎΡ‚Π° производится посрСдством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setlayer(). ΠŸΠ΅Ρ€Π²Π°Ρ строка вычисляСт слой, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Π΄Ρ€Π΅, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка (выдСлСнная) Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ список индСксов слоя (состоящий ΠΈΠ· СдинствСнного слоя Π² Π΄Π°Π½Π½ΠΎΠΌ случаС) Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ layers ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ПослСдниС Π΄Π²Π΅ строки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setlayer() Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ слоя Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ станСт Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π² Π‘Π»Π΅Π½Π΄Π΅Ρ€Π΅.

import Blender