Скорее всего потому, что это создаст цикл в патче.
Идея циклов (одна из основ кибернетики) это очень мощный инструмент, но при создании патчей вы должны учитывать, что: vvvv обсчитывает все ноды в патче только один раз в конкретный момент времени
Это позволяет значительно упростить логику построения и отладку патчей, поскольку все события в патче происходят одновременно. Здесь нет заданного порядка выполнения (в отличие от таких графических языков, как Max или PD). Все расчеты выполняются автоматически в нужной последовательности, так что вам не нужно думать об этом. Кроме того, обычно ноды не задерживают передачу данных (как в цифровой электронике). Вам не надо беспокоиться, что данные придут не вовремя.
Хотя все это весьма полезная теория, есть один момент, на котором нам нужно остановиться. Когда вы прописываете цикл, выход не может быть посчитан до тех пор, пока не известен вход, но так же не возможно посчитать вход, пока не известен выход.
Хотя это звучит как классический парадокс, приводящий к зависанию компьютера и появлению синего экрана, решение очень простое: в каком-то месте цикла, нам нужно запомнить значение предыдущего момента времени.
Так мы избегаем бесконечного заведения данных самих в себя. Помните, что очень важна позиция где именно мы храним здачение предыдущего момента, и малейшие изменения здесь существенно влияют на поведение всего цикла.
Поэтому, каждый раз, когда вы проводите новую связь, vvvv проверяет возможность ситуации в один и тот же момент времени входные данные нода зависят от выходных данных этого же нода. Если это так, vvvv не позволяет делать такие связи. VVVV не знает откуда взять значение предыдущего момента.
Очень просто: такие ноды как FrameDelay (Animation)позволяют выходу не зависеть от входа в тот же момент времени, потому что вход предыдущего значения - это то, что допускается без проблем. Как только вы добавляете такой нод в цикл (некоторые другие ноды так же обладают этим свойством), вы можете замыкать цикл.
Сложно сказать, где именно должна находиться задержка - это зависит, в первую очередь, от логики патча. Когда вы выстраиваете логику, необходимое место для задержки почти всегда находится интуитивно.
Циклы это очень сильный инструмент, потому что это не только отличный способ хранить изменяющиеся во времени значения, но и счетчики, повторяющиеся вычисления и анимация - так что подружитесь с ними.
При создании циклов с использованием нода FrameDelay (Animation) крайне важно избегать пустых спредов Empty Spreads...
Если при возникновении проблем при сохранении или открытии патчей, вы обнаружите, что один или несколько модулей, задействованных в цикле, выдают пустое значение, следует поместить модуль ReplaceEmpty после FrameDelay (Animation).
anonymous user login
~11d ago
~25d ago
~25d ago
~28d ago
~29d ago
~1mth ago
~1mth ago
~1mth ago
~1mth ago
~2mth ago