Jump to content


Как работать с примитивами собранными в один объект?


  • Please log in to reply
15 replies to this topic

#1 empirik

empirik

    Новичок на форуме

  • Пользователи
  • PipPip
  • 2 posts
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 26.04.09 - 12:13

Есть три сферы, они собранны в один объект (выделил и при помощи ctr+l) собрал их в один объект. Можно ли как то работать с каждой сферой в отдельности? Например 2 сферы заставить вращаться вокруг третьей?

#2 SOb Zemlja

SOb Zemlja

    Активный участник

  • Главные администраторы
  • PipPipPipPip
  • 801 posts
  • Пол:М
  • Откуда:Россия, Москва
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 26.04.09 - 14:02

View Postempirik, on 26.4.2009, 13:13, said:

Есть три сферы, они собранны в один объект (выделил и при помощи ctr+l) собрал их в один объект. Можно ли как то работать с каждой сферой в отдельности? Например 2 сферы заставить вращаться вокруг третьей?
Если требуется синхронное вращение, то нужно центральную сферу сделать «корневым объектом» (рутом, выделить последней до нажатия Ctrl-L) и вращать её.

Если сферы требуется вращать асинхронно (с разной скоростью и по разным орбитам), то придётся делать 2 разных центра вращения (добавлять ещё объект).

Если нужно поэкспериментировать с каждой сферой в отдельности (например, кроме общего вращения, попробовать заставить вращаться вокруг собственной оси), то эту сферу нужно выделить при установленной галочке "Edit Linked Parts", после чего работать со скриптом в ней.

Программно обращаться к частям объекта и настраивать их вращение единым центральным скриптом нельзя (насколько мне известно). Из скрипта в руте можно только выставить форму, размер, цвет и текстуру (подробнее).

#3 empirik

empirik

    Новичок на форуме

  • Пользователи
  • PipPip
  • 2 posts
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 28.04.09 - 19:38

View PostSOb_Zemlja, on 26.4.2009, 15:02, said:

Если требуется синхронное вращение, то нужно центральную сферу сделать «корневым объектом» (рутом, выделить последней до нажатия Ctrl-L) и вращать её.

Если сферы требуется вращать асинхронно (с разной скоростью и по разным орбитам), то придётся делать 2 разных центра вращения (добавлять ещё объект).

Если нужно поэкспериментировать с каждой сферой в отдельности (например, кроме общего вращения, попробовать заставить вращаться вокруг собственной оси), то эту сферу нужно выделить при установленной галочке "Edit Linked Parts", после чего работать со скриптом в ней.

Программно обращаться к частям объекта и настраивать их вращение единым центральным скриптом нельзя (насколько мне известно). Из скрипта в руте можно только выставить форму, размер, цвет и текстуру (подробнее).

Спасибо, вот этого я не знал. По документации добрался до функций LlGetLinkPrimitiveParams, llSetLinkPrimitiveParams, llGetLinkNumber, которые позволяют работать с внутренними частями объекта.

Встает еще следующий вопрос, можно ли как то заставить объект/приметив двигаться без рывком? И правильно ли я понял, что функции по типу llSetPos, llSetRot .... задерживают скрипт на 0.2 секунды?

#4 SOb Zemlja

SOb Zemlja

    Активный участник

  • Главные администраторы
  • PipPipPipPip
  • 801 posts
  • Пол:М
  • Откуда:Россия, Москва
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 29.04.09 - 12:15

View Postempirik, on 28.4.2009, 20:38, said:


Встает еще следующий вопрос, можно ли как то заставить объект/приметив двигаться без рывком?
Плавно двигаются либо физические объекты, либо вращающиеся с помощью функции llTargetOmega, которая работает и на не физических объектах тоже.

View Postempirik, on 28.4.2009, 20:38, said:


И правильно ли я понял, что функции по типу llSetPos, llSetRot .... задерживают скрипт на 0.2 секунды?
Да, слово delay корректно переводится как задержка, в LSL Wiki есть сводный список всех задержек.

#5 Axon Dezno

Axon Dezno

    Участник

  • Писатели
  • PipPipPip
  • 217 posts
  • Пол:М
  • Основной цех:Строители
  • Второй цех:Художники
  • SL Status: 

Posted 28.06.09 - 20:17

Эту задержку можно обойти, если создать 5 скриптов - 1-ый ведущий, остальные ведомые и каждому ведомому через llMessageLinked сообщать раз в 0.07-0.08 секунды нужные параметры прима, подобным образом устроена например анимация халявного фурика от Curious, некоторые скрипты в нём мадифи, так, шо можно и подглядеть... :)

Правда и там кое-какие загвоздки имеются, но они не то, чтобы сильно критичны
X________________________________________________x

Хто хочет - ищет способ, хто не хочет - ищет причину.

#6 Alter

Alter

    Новичок на форуме

  • Пользователи
  • PipPip
  • 29 posts

Posted 30.07.09 - 17:51

Ребятки вот примитив с обычным скриптом вращения только запускается он и сбрасывается по клику. Но вот непонятка линькую с другим таким же примитивом и llResetScript перестает работать т.е клик объект начал движение а на второй клик уже не как не реагирует в чем проблем подскажите

#7 Axon Dezno

Axon Dezno

    Участник

  • Писатели
  • PipPipPip
  • 217 posts
  • Пол:М
  • Основной цех:Строители
  • Второй цех:Художники
  • SL Status: 

Posted 31.07.09 - 11:36

Зависит от того каким примом стал тот, который содержит ваш скрипт - родительским или дочерним, если дочерним, тогда вращаться будит только этот прим и только щелчёк по конкретно этому приму будит запускать и останавливать скрипт.

А вообще, хорошо бы было бы, если б вы привели код непосредственно самого "выключателя". Можно просто вписать кусок кода ответственный за вкл-выкл скрипта в пустой скрипт так, чтобы он работал (заодно такой способ может навести и вас на ошибку в коде).
X________________________________________________x

Хто хочет - ищет способ, хто не хочет - ищет причину.

#8 Alter

Alter

    Новичок на форуме

  • Пользователи
  • PipPip
  • 29 posts

Posted 31.07.09 - 12:03

да он дочерний но проблема в том что он запускается по клику но остановить его не получается а сам по себе работает и старт и сброс клик на нем не останавливает его

#9 Alter

Alter

    Новичок на форуме

  • Пользователи
  • PipPip
  • 29 posts

Posted 02.08.09 - 12:22

ну вот этот скрипт я использую



Attached Image: capture_02082009_121602.jpg

#10 Axon Dezno

Axon Dezno

    Участник

  • Писатели
  • PipPipPip
  • 217 posts
  • Пол:М
  • Основной цех:Строители
  • Второй цех:Художники
  • SL Status: 

Posted 02.08.09 - 15:01

Можно вместо llResetScript(); поставить state default, а можно сделать следующее:
----------------------------------------------------------------------------------------------------
integer pereclushatel=TRUE;
default{state_entry(){llTargetOmega(ZERO_VECTOR,0.0,0.0);}
touch_start(integer x){if(pereclushatel==FALSE) {pereclushatel=TRUE; llTargetOmega(ZERO_VECTOR,0.0,0.0);}
else if(pereclushatel==TRUE){pereclushatel=FALSE; llTargetOmega(<0,0,1>,0.35,1.0);}}
on_rez(integer y){llResetScript();}}
X________________________________________________x

Хто хочет - ищет способ, хто не хочет - ищет причину.

#11 Alter

Alter

    Новичок на форуме

  • Пользователи
  • PipPip
  • 29 posts

Posted 02.08.09 - 20:15

да этот вариант работает пасиб огромное)

#12 Viktor Zeplin

Viktor Zeplin

    Новичок на форуме

  • Пользователи
  • PipPip
  • 3 posts
  • Пол:М
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 21.08.09 - 17:07

View PostSOb_Zemlja, on 26.4.2009, 14:02, said:

Программно обращаться к частям объекта и настраивать их вращение единым центральным скриптом нельзя (насколько мне известно). Из скрипта в руте можно только выставить форму, размер, цвет и текстуру (подробнее).

при помощи функции llSetLinkPrimitiveParams можно вытворять со слинкованными объектоми а также с сидящими на них аватарами всё что угодно (аватары воспринимаются как часть линксета)

#13 Axon Dezno

Axon Dezno

    Участник

  • Писатели
  • PipPipPip
  • 217 posts
  • Пол:М
  • Основной цех:Строители
  • Второй цех:Художники
  • SL Status: 

Posted 21.08.09 - 22:42

Да, тока с задержкой между операциями в 0.2 секунды, ну либо со сложно сочинённой кучей скриптов определения-рассчёта-передачи комманд.
Для выполнения более-менее быстрого изменения свойств прима (как то - возрастающе-убывающее в течении 0.3-0.5 сек свечение, скульптовая анимация, минимальная нормальная скорость которой должна быть никак не меньше 0.08 сек) данная ф-ция малосьедобна, ибо требует ОХРЕНЕННОЙ точности выверения нескольких скриптов-исполнителей с рутовым скриптом-раздатчиком - гемор тот ещё... Х______________х

А обходных функций без задержки по пальцам пересчитать можно (llSetLinkAlpha, llSetLinkColor, llSetLinkTexture фусьо сопсна... для линков во всяком случае...).
X________________________________________________x

Хто хочет - ищет способ, хто не хочет - ищет причину.

#14 Web

Web

    Новичок на форуме

  • Пользователи
  • PipPip
  • 64 posts
  • Пол:М
  • Откуда:Харьков
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 05.03.10 - 00:40

View Postempirik, on 28.4.2009, 18:38, said:

..Спасибо, вот этого я не знал. По документации добрался до функций LlGetLinkPrimitiveParams, llSetLinkPrimitiveParams, llGetLinkNumber,...
Нету такой функции - llGetLinkPrimitiveParams, увы.
LSL-скриптинг и UI-дизайн. Дорого.

#15 Amaro

Amaro

    Новичок на форуме

  • Пользователи
  • PipPip
  • 36 posts
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 10.03.10 - 14:07

View PostWeb, on 5.3.2010, 0:40, said:

View Postempirik, on 28.4.2009, 18:38, said:

..Спасибо, вот этого я не знал. По документации добрался до функций LlGetLinkPrimitiveParams, llSetLinkPrimitiveParams, llGetLinkNumber,...
Нету такой функции - llGetLinkPrimitiveParams, увы.

Угу, и сей прискорбный факт приводит к пиханию скриптов в каждый прим линка... А Линденов просили-просили, просили-просили...
Тем не менее, можно один раз написать скрипт, отдающий параметры руту по запросу, и пользоваться. Правда, возникает асинхронность, но что делать =(

#16 Web

Web

    Новичок на форуме

  • Пользователи
  • PipPip
  • 64 posts
  • Пол:М
  • Откуда:Харьков
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 05.07.10 - 12:45

Ну, теперь-то уже есть :D
LSL-скриптинг и UI-дизайн. Дорого.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users