Render.ru

Решит ли проблему MAX-SCRIPT

SampleR

Пользователь сайта
Рейтинг
2
#1
Проблема в том, что встроенный контроллер Моушенкапчер-MIDI device не правильно трактует сигнал от нажатия клавиши ... Тоесть при нажатии клавиши объект допустим опускается, или мультиплир света возрастает, а вот при отпускании в исходное состояние не приходит ...

Хотя проверено что в Миди Ченел Вьюэре MIDI 2 раза посылает значение Велосити, при нажатии к примеру 100, и при отпускании зачётный NULL, но в анимации не работает как надо ...

Можно ли через Макс скрипт загрузить весь принцип обращения макса к МИДИ и внести в него изменения ... или самому с нуля его написать ?

На 1 скрине, путь к достижению цели
На 2 ошибка анимации и не правильная трактовка событий МИДИ
На 3 скрине Как именно нужно чтоб макс трактовал МИДИ

Заранее спасибо!
 

Вложения

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Проблема в том, что встроенный контроллер Моушенкапчер-MIDI device не правильно трактует сигнал от нажатия клавиши ... Тоесть при нажатии клавиши объект допустим опускается, или мультиплир света возрастает, а вот при отпускании в исходное состояние не приходит ...

Хотя проверено что в Миди Ченел Вьюэре MIDI 2 раза посылает значение Велосити, при нажатии к примеру 100, и при отпускании зачётный NULL, но в анимации не работает как надо ...
Нет под рукой чтоб проверить.

Можно ли через Макс скрипт загрузить весь принцип обращения макса к МИДИ и внести в него изменения ... или самому с нуля его написать ?
В макскрипт нет прямого доступа к MIDI.
Но при достаточных познания в програмированиии, написать такое расширение не проблема.

Но никто не мешает написать обработчик уже скапчеренных треков к нужной форме.
Или можно написать скрипт контроллер который будет на лету итерпретировать движение хелперов с mocap контроллерами.

Вот пример такого котроллера:
Вешается например на Z сферы
В сцене должен быть Box01 с управляемой позицией Z с помощью mocap контроллера, в состоянии покоя Z должна быть равна 0
Код:
z = $Box01.pos.z
c = 0.5
z_max = 20
z_min = 0
global s_z
if s_z == undefined do (s_z = 0)
if z > 0 then (if s_z < z_max then  s_z += c else s_z = z_max )
else (if s_z > z_min then s_z -= c else s_z = z_min )
s_z
 

SampleR

Пользователь сайта
Рейтинг
2
#3
Весьма весьма ...

Вот такой вопрос тогда, а что если обойти проблему немножко подругому, так как объект всётаки реагирует правильно на нажатие клавиши МИДИ ...

(он реагирует не верно только при отпускании клавиши, тоесть либо вообще не реагирует, либо просто не верно ...)

... можно ли скриптом, заставить возвращать объект на своё место, просто спустя некоторое время после реагирования

Тоесть нажали клавишу, объект среагировал а дальше скриптом его за уши тянут обратно ...
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
Заставить то можно, только у тебя награфике что на нажатие сигнал что на отпускание клавиши. Хотя вроде логично это и есть ускорение. Может стоит попробовать другие режимы ? или почему не снять с обычной клавиатуры там сигнал больше напоминает что ты хотел ?
 

SampleR

Пользователь сайта
Рейтинг
2
#5
Миди посылает ровно два раза сигнал

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

Поэтому я уже и хочу тупо вернуть объект или параметр объекта на своё место после взаимодействия с миди, но как это сделать я просто не представляю, да я хорошо знаю вайр параметры, и топу подобное, но я совершенное не понимаю как заставить объект получать сигнал от разных контроллеров на одной позиции одновременно да еще и в режиме записи анимации, так как анимация при помощи МИДИ будет писаться в режиме СтартРЕКорд интерактивно, тоесть скрипт пост обработчик должен постоянно циклически, но с прерываниями на сигнал МИДИ, работать в режиме записи ....


У меня есть навыки программирования, да у меян есть логика, но у меня нет совершенно опыта работы с подобными сугубо локальными проблемами.

Прошу просто помощи, потому что сам просто не не справился, и не справлюсь.
 

SampleR

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

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#7
SampleR, я с удовольствием бы помог бы каждому но столько свободного времени у меня просто нет. Нужно еще как то на хлеб с маслом зарабатывать. Я впринципе дал тебе всю необходимую информацию для самостоятельного решения проблемы.
Хотя в личке ты можеш договориться насчет этой работы, если считаеш что она для тебя важна.
 

SampleR

Пользователь сайта
Рейтинг
2
#8
Всё уже не нужно, я сам всё сделал как обычно ...

ЗЫ ... Конкретных вопросов не бывает - бывают только конкретные ответы )))

Это так на будущее, при условии что вся информация была выложена в первых постах подробнейшим образом.
 
Сверху