Автор Тема: Звук-Анимация, Анимация-Звук  (Прочитано 1299 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн LanuHum

  • Житель
Re: Звук-Анимация, Анимация-Звук
« Ответ #30 : 22 Октября 2016, 21:31:48 »
Цитировать
Ага, и от этого персы запрыгают сами по себе...
А они должны были сами начать скакать? :) Тот скрипт, для 2.4х просто импортирует партитуры инструментов из MIDI в отдельные IPO. А остальное - дело аниматора....
А кто сказал, что речь идёт о ТОМ СКРИПТЕ?
Речь идет об анимации персов синхронно с музыкой, если чо...

Оффлайн Samovar

  • Житель
  • Пятигорье
Re: Звук-Анимация, Анимация-Звук
« Ответ #31 : 22 Октября 2016, 21:34:46 »
Цитировать
Речь идет об анимации персов синхронно с музыкой, если чо...
если чо, то, то о чем ты пишешь, уже из раздела ИИ (частицы и поведение стаи)... а текущая версия Блендера даже MIDI не может конвертировать в кривые анимации.. :)
¯\_(ツ)_/¯

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Звук-Анимация, Анимация-Звук
« Ответ #32 : 23 Октября 2016, 06:06:49 »
... на сколько теперь стало понятным подбирается несколько вариантов "звук в анимацию" ...
... думаю что прокачать связку lmms + blender на уровне обработки файлов mmp в python будет достаточно интересным ...
... проблемы с получение и разборов треков нет, но вопрос что и с чем должно связаться при анимации остаётся открытым ...
... более того нужен контейнер в модели blender куда складывать f-curve ...
... есть предложения? ...
Для Кота

Оффлайн Samovar

  • Житель
  • Пятигорье
Re: Звук-Анимация, Анимация-Звук
« Ответ #33 : 23 Октября 2016, 07:00:22 »
Цитировать
... есть предложения? ...
Было предложение хернёй не страдать только с LMMS.  И если всерьёз берётесь, то лучше сделайте дополнение как импортёр MIDI в кривые анимации... многие вам спасибо скажут... а может, и деньгой подсобят :)
¯\_(ツ)_/¯

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Звук-Анимация, Анимация-Звук
« Ответ #34 : 23 Октября 2016, 07:27:15 »
с midi более менее понятно и на самом деле реализуемо без дополнительных дополнений. Все треки midi файла конвертируются в отдельные wav файлы одной строкой в консоле. Об этом спрашивал на ЛОРе и там дали годный код http://www.linux.org.ru/forum/multimedia/12722602 , который легко затачивается для мирных целей. Далее wav файлы запекаются в f-curve стандартными средствами blender, об этом мы уже говорили в этой теме.

Вариант с парсером mmp меня заинтриговал и мне уже удалось получить доступ к трекам в python. Это весьма занятная тема.
Для Кота

Оффлайн Samovar

  • Житель
  • Пятигорье
Re: Звук-Анимация, Анимация-Звук
« Ответ #35 : 23 Октября 2016, 07:31:39 »
с midi более менее понятно и на самом деле реализуемо без дополнительных дополнений. Все треки midi файла конвертируются в отдельные wav файлы одной строкой в консоле. Об этом спрашивал на ЛОРе и там дали годный код http://www.linux.org.ru/forum/multimedia/12722602 , который легко затачивается для мирных целей. Далее wav файлы запекаются в f-curve стандартными средствами blender, об этом мы уже говорили в этой теме.

Вариант с парсером mmp меня заинтриговал и мне уже удалось получить доступ к трекам в python. Это весьма занятная тема.

Тогда таким же образом инструменты по отдельности можно экспортировать  в .ogg или .wav из LMMS (Экспортировать дорожки) или другого аудиоредактора... нахрена тогда писать дополнение вообще?
« Последнее редактирование: 23 Октября 2016, 07:44:47 от Samovar »
¯\_(ツ)_/¯

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Звук-Анимация, Анимация-Звук
« Ответ #36 : 23 Октября 2016, 07:55:04 »
... экспортер Jean-Baptiste PERIN парсит midi файл и делает on|off - анимацию, и твой совет по адаптации его к новой версии blender не остался не замеченным, попробуем его вытащить ... 
... суть - получить последовательность действий - нажатие клавиш и прочего ...
... поэтому собираем дальше полезную информацию ...
... спасибо ...
Для Кота

Оффлайн Samovar

  • Житель
  • Пятигорье
Re: Звук-Анимация, Анимация-Звук
« Ответ #37 : 23 Октября 2016, 09:28:37 »
Цитировать
... экспортер Jean-Baptiste PERIN парсит midi файл и делает on|off - анимацию, и твой совет по адаптации его к новой версии blender не остался не замеченным, попробуем его вытащить ... 
Рад, что был услышан... Успехов! :)
¯\_(ツ)_/¯

Оффлайн LanuHum

  • Житель
Re: Звук-Анимация, Анимация-Звук
« Ответ #38 : 23 Октября 2016, 10:49:40 »
... экспортер Jean-Baptiste PERIN парсит midi файл и делает on|off - анимацию, и твой совет по адаптации его к новой версии blender не остался не замеченным, попробуем его вытащить ... 
... суть - получить последовательность действий - нажатие клавиш и прочего ...
... поэтому собираем дальше полезную информацию ...
... спасибо ...
Вот это можно приспособить к созданию ключей вершин на пианино. Но, по-моему нужен универсальный код для любого инструмента: анимировать какие-то параметры и прикручивать к нужному драйверами.
import bpy
scene = bpy.context.scene
instrument = None
parse = False
bpy.ops.object.select_all(action = 'DESELECT')
for line in open("lmms.mmp"):
    split =  line.replace('<',' ')
    split = split.replace('>',' ')
    split = split.replace('"',' ')
    split = split.replace('=',' ')
    split = split.split()
    if split[0] == 'pattern':
            instrument = split[8]
            ob = scene.objects[instrument]
            scene.objects.active = ob
            ob.select = True
            bpy.ops.object.mode_set(mode = 'EDIT')
            parse = True
            continue
    if parse:
        if split[0] == 'note':
            pos = int(split[8])
            scene.frame_set(pos)
            key = split[4]
            bpy.ops.object.vertex_group_set_active(key)
            bpy.ops.object.vertex_group_select()
            vol = float(split[6])
            bpy.ops.transform.translate(value = (0,0,vol))
            LEN = split[10]
« Последнее редактирование: 23 Октября 2016, 10:54:35 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Звук-Анимация, Анимация-Звук
« Ответ #39 : 23 Октября 2016, 14:18:51 »
Не проверял, работает ли, но идея такая: создавать объекты по числу клавиш и передавать им ключи анимации. Таким образом мы будем иметь универсальную базу данных из которой уже каждый может брать инфу для созданных для сцены инструментов. Думаю 108 полигонов на инструмент - это немного.

import bpy
scene = bpy.context.scene
instrument = None
parse = False
layers = 20*[False]
layers[19] = True


for line in open("lmms.mmp"):
    split =  line.replace('<',' ')
    split = split.replace('>',' ')
    split = split.replace('"',' ')
    split = split.replace('=',' ')
    split = split.split()
    if split[0] == 'pattern':
        instrument = split[8]
        parse = True
        for i in range(108):
            bpy.ops.mesh.primitive_plane_add(layers=layers)
            ob = bpy.context.object
            ob.name = instrument + '_' +'%s'%i
        bpy.ops.object.select_all(action = 'DESELECT')
        continue
    if parse:
        if split[0] == 'note':
            key = split[4]
            ob.name = instrument + '_' + key
            ob = scene.objects[ob.name]
            scene.objects.active = ob
            ob.select = True
            loc = ob.location
            vol = float(split[6])
            pos = int(split[8])
            LEN = int(split[10])
            if scene.frame_current > 1:
                scene.frame_set(pos-1)
                bpy.ops.anim.keyframe_insert_menu(type='Location')
            scene.frame_set(pos)
            ob.location = (0,0,vol)
            bpy.ops.anim.keyframe_insert_menu(type='Location')
            f = pos+LEN
            scene.frame_set(f)
            bpy.ops.anim.keyframe_insert_menu(type='Location')
            scene.frame_set(f+1)
            ob.location = loc
            bpy.ops.anim.keyframe_insert_menu(type='Location')
        if split[0] == '/pattern':
            parse = False
« Последнее редактирование: 23 Октября 2016, 14:28:12 от LanuHum »

Оффлайн LanuHum

  • Житель
Re: Звук-Анимация, Анимация-Звук
« Ответ #40 : 23 Октября 2016, 15:22:31 »
Немного подправил, работает.

Оффлайн LanuHum

  • Житель
Re: Звук-Анимация, Анимация-Звук
« Ответ #41 : 23 Октября 2016, 17:06:54 »
sungreen, ты не зАпил?
Вот рабочая версия:
import bpy
scene = bpy.context.scene
instrument = None
parse = False
layers = 20*[False]
layers[0] = True


for line in open("/home/leonid/lmms/projects/lmms.mmp"):
    split =  line.replace('<',' ')
    split = split.replace('>',' ')
    split = split.replace('"',' ')
    split = split.replace('=',' ')
    split = split.split()
    if split[0] == 'pattern':
        instrument = split[8]
        parse = True
        for i in range(108):
            bpy.ops.mesh.primitive_plane_add(layers=layers)
            ob = bpy.context.object
            ob.name = instrument+'_'+'%s'%i
        bpy.ops.object.select_all(action = 'DESELECT')
        continue
    if parse:
        if split[0] == 'note':
            key = split[4]
            ob_name = instrument + '_' + key
            ob = scene.objects[ob_name]
            scene.objects.active = ob
            ob.select = True
            loc = ob.location[:]
            vol = float(split[6])
            pos = int(split[8])
            LEN = int(split[10])
            if scene.frame_current > 1:
                scene.frame_set(pos-1)
                bpy.ops.anim.keyframe_insert_menu(type='Location')
            scene.frame_set(pos)
            ob.location = (0,0,vol/100)
            bpy.ops.anim.keyframe_insert_menu(type='Location')
            f = pos+LEN
            scene.frame_set(f)
            bpy.ops.anim.keyframe_insert_menu(type='Location')
            scene.frame_set(f+1)
            ob.location = loc
            bpy.ops.anim.keyframe_insert_menu(type='Location')
        if split[0] == '/pattern':
            parse = False

Оффлайн LanuHum

  • Житель
Re: Звук-Анимация, Анимация-Звук
« Ответ #42 : 23 Октября 2016, 21:22:34 »
Я так понял, интерес пропал у Николая...
Стало быть, голову ломать дальше не стОит. Отдохнём.  :)

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Звук-Анимация, Анимация-Звук
« Ответ #43 : 23 Октября 2016, 21:26:18 »
... пока не вижу надлежащего контейнера в который складывать ...
... надо подумать над юзабельностью ...
Для Кота

Оффлайн Samovar

  • Житель
  • Пятигорье
Re: Звук-Анимация, Анимация-Звук
« Ответ #44 : 23 Октября 2016, 22:25:01 »
Господа-товарищи, Ланухумыч и Сангриныч. Можете вкратце описать для публики функциональные возможности по пунктам того дополнения, которое  вы планируете? Очень интересно врубиться. Спасибо!
¯\_(ツ)_/¯

 

* По форуму

* Последние вложения

Screw.jpg
Скачано: 4
Автор: Dmi3ryd
Cylinder_animation.gif
Скачано: 5
Автор: Dmi3ryd
seit1.jpg
Скачано: 9
Автор: sandman
nif_op_not_defined.png
Скачано: 4
Автор: corbieeye
Слежение.jpg
Скачано: 14
Автор: Barabashka