Как сделать флоу

Обновлено: 01.07.2024

Техника
Техника - способ управления ритмом. Тут же небольшое ответвление: "техничность" -
степень навыка управлять ритмом
.
Немного пояснений. Тут же впишем фразу "квадратная читка". Да, когда один МС говорит другому (в диссе, в паре на баттле и т. д.), что тот читает "квадратно" - это упрёк.
Почему? Потому что это отжитый стиль, а мы стремимся быть ближе к западу. То есть
стараемся подобного в читке не допускать. Так что же такое "читать квадратно"? По сути,
это наша лень придумать что-то новое. Поясню на примере: имеется музыкальный квадрат.
Проще говоря, понимайте это, как 4 строчки текста и отведённый на них кусок минусовки.
Идёт бит, задаёт ритм. МС, как его слышит, так и ложит свой текст на этот бит.
По большей части, попадание в бит осуществляется за счёт окончания слова. Это тот
случай, когда говорят, что "читка квадратная", или "русский рэп". =((
Есть иной способ работы с ритмом ("неквадратная читка". Попадание в бит уже может
осуществляться за счёт начала или середины слова (и необязательно конечным на строке),
а так же предлогами к словам, местоимениями и так далее. А иногда слово может вообще
выноситься за снейр; бочки иногда пропускаются для вдоха, а первый снейр в куплете
часто так же остаётся без положенного голоса, ибо того требует особенность минусовки,
дабы достигнуть именно "неквадратной читки" (пропущенный снейр начала куплета – совсем не является неотъемлемой частью подобного вида техники). То есть, читка начинает уже напоминать негров. Отличия только в более сложном языке и голосе (у негров-то своеобразный голос). А вот многие считают, что если напихать кучу пауз в читку, то она станет "нигерской". Тоже неправда. Решает ритмика и подача. Нужно уметь правильно располагать ударную интонацию слов на биты. Это техника. Иными словами -
управление ритмом. То есть ритм задаёт не бит минуса, а читка рэпера.
А техничность - это уже то, насколько качественно исполнитель умеет управлять (те же
попадания в биты) ритмом. Есть тут и свои нюансы. Зависит от сочетания текста и музыки. Иногда попадание в бит не является обязательным. Бывают моменты, в которых ключевое слово заканчивается немного раньше, чем снейр. Появляется эффект "полупопадания". Умение выбрать такой момент - так же относится к техничности. И слегка ошибочно утверждать, что если 4 строчки звучат в квадрате музыки, то читка становится "квадратной". Совсем нет. Работа с ритмом решает.
Грамотно выделить рифмовку текста - так же техника. То есть, опять же, работа с ритмом (но и техничность так же плотно сюда входит - тут друг без друга никак просто) - где растянуть слово, где наоборот. А где и на определённую букву акцентировать ударение надо.
С другой стороны, грамотно выделить рифму чтобы, недостаточно одной техники/техничности. Это лишь ряд случаев. А иногда это и подача (интонацией голоса рифмовку так же бывает необходимо выделять, и не всегда ритмом; но о подаче ниже), а иногда это вспомогательные звукорежиссёрские элементы, на подобии бэков, фильтров и различных эффектов, что накладываются на рифмующиеся слова, дабы выделить их схожесть созвучия.
Теперь о прямых попаданиях. Прямое попадание в бит. Это надо понимать, как ситуация, когда слово (что попадает в бит) и сам бит настолько совпадают, что звучат практически одновременно. Научились так. Рады. А вот я могу вашу радость затмить простым способом). Дайте мне проект с вашим треком, я там либо дорожку с акапеллой сделаю тише, либо дорожку с битом сделаю громче. И что произойдёт? Одно перекроет другое по громкости и ваш эффект "прямого попадания" засунется в источник детей - быстро и надолго!!))) Так что не советую парится над этим. Лучше акцентируйте внимания больше на Flow (на подаче), "прямые попадания" в бит техничней делают только на слуху неопытного уха, не более) Об этом ниже.
__________________________

Флоу, подача
Flow (подача) - а вот уже можно начать с того, что с заглавием пункта "2" согласятся не все. Из них
добрая половина сочтёт, что это разные вещи. Тут уже, я бы сказал, не столько понимание
рэпа играет роль, сколько знание английского языка и фантазия в плане русского
Изначально скажу, что же это такое, после чего приведу примеры, которые лично я считаю бредовыми!!
Flow (подача) - умение разукрасить свой текст грамотным эмоциональным тоном.
Для чего это нужно? Текст, послушав в монотонном исполнении, понять можно совершенно по-разному. Особенно, если в тексте лирик использует кучу образов, дабы было, над чем подумать слушателю. А эмоции во многом помогают прочувствовать текст. Он станет более понятным и ясным. И то, насколько МС справляется с подобным навыком, характеризует его умения. Тут опять же есть небольшое ответвление. Этот термин, как и "техника", делится на две части: разновидность и степень мастерства. Многие из вас наверняка слышали такое выражение, как "Fast-Flow". Первая часть фразы - это разновидность. Итак, у нас имеется трек в исполнении быстрой подачи. Исполнен он быстро - первая часть выполнена. Вторая часть - справится ли рэпер на быстрой читке с эмоциональным окрасом. Вот именно степень навыка интонаций голоса - вторая часть.
Теперь приведу примеры, "которые лично я считаю бредовыми!!". Почему-то кучка рэперков пытается ещё разделить понятия "Flow" и "подача". Я их спрашиваю: "Ну? Так какая же разница в этих словах?", - на что однозначных ответа дают два. Уже сейчас видим абсурд, ибо ответ должен быть один. Какие же это два ответа? Давайте посмотрим. Из уст этих ребят звучит всё примерно так. Ответ первый! "Подача - это эмоции, а Flow - Это кач". Ответ второй! "Подача - это эмоции, а Flow - это постановка голоса". Гы) Странно, что про "подача" говорят верно, а про "Flow" дают два варианта. А что, теперь "кач" и "постановка голоса" с каких-то пор стали синонимами, что эти господа и дамы их рядом ставят? Я упустил что-то, да? Видите, как эти люди сами себе просто тупо противоречат. Ни одно, так другое. Ни импотенция, так бешенство матки. И чтобы уже забить гвоздь в мозги окончательно, поясню, почему оба ответы в корне не верны!
Итак. По ответу первому. Якобы "Flow - кач". Все в курсе о такой поговорке, как "на вкуси цвет"? Думаю, все. Однако, термины, коим посвящена данная статья, носят изначально постоянство значения! И если уж говорить, что "Flow - кач", то это надо минимум тогда подразумевать, что будет это качем для всех и каждого. Но такое может быть? Конечно, нет! Почему? Потому что все знают поговорку "на вкус и цвет". Для кого-то будет, для кого-то нет. Рассмотрим пример - песню про любовь. По идее, грустная в большинстве случаев. Изначально песня не ориентирована на то, чтобы качать. А, скорее, на то, чтобы девочки поплакали, а парни погрузились и пошли пить пиво. Ага? А вот в тридесятой квартире, тридесятой избушки, посёлка Кукуево-30, сидит крестьянин с бумбоксом у бочки с горящим мусором, слушает на repeat'е эту песню, и его это просто ужасно качает!! На столько сильно, что вот-вот вскочит, схватит в сенях грабли, плуг и лопату, вспашет поле, соберёт урожай и покроет площадку асфальтом, а по весне, того и гляди, корова в сарае родит телёнка-человека. То есть, каждому своё. Поэтому Flow считать качем просто глупо. "Кач" - не является термином MC'ing'а ни в коем разе и не может быть постоянным. Для кого-то Креки - снотворное, а для кого-то их треки - "Энерджайзер" в . А для тех, кого трек качает. Не задумывались ли, откуда вообще берётся этот кач? Наверняка, за счёт голоса и его интонаций. Так ведь? Так! Вот и вернулись к слову "подача", которое эти ребята объяснили правильно. Убедились в идентичности слов? Ну, и слава Богу!
Ну, и произведём предупредительный выстрел в голову. Все ведь слышали, наверняка, выражение, "Flow качает". Теперь подставьте "кач" вместо "флоу" и получите вазелин вазелиновый))
Теперь по ответу второму. Якобы "Flow - постановка голоса". Тут ещё забавнее ситуация. Все поголовно начинают вспоминать мне Снуп Дога. Ну, ребят. Вы уж простите, но это у Снуп Дога стиль ведь такой!! В конце концов, это ведь необязательно, чтобы он все свои треки так читал. Его попросят прочитать не в таком мегаобкуренном стиле (слушателям реггей тут не обижаться. Хотя, мне похрен!), он прочитает уже бодреньким голосом, как Эминем. То есть постановка голоса уже другая будет. Так? Так! А ведь Flow - постоянный термин. Вот вам и на этот случай противоречие. Так что не путайте постановку голоса со стилем МС.
Вы даже не представляете, сколько раз в дискуссиях об этом был спор у меня с разными рэперками. Я-то всё говорил ровно как и здесь. А им сказать нечего было, ибо против такого много и не скажешь. Единственное, что им осталось сказать, что "это - моё мнение". Да, согласен. Но, извини, твоё мнение может быть, что 2 + 2 = 5. Но оно верное? Вот!
Теперь ещё раз докажу, что "Flow" и "подача" - идентичны. В этот раз уже, применяя термины из физики. Не буду искать школьные учебники, я своими словами напишу. Раскрою определения слов через "сила". "Flow" переводится с английского языка, как "напор", "поток". Слово "Подача" в какой-то степени синоним. В русском языке - это вещи для разных случаев. В английском это всё одно и тоже.
Напор - сила, оказываемая одним телом на другое, чтобы привести его в движение.
Поток - сила, за счёт которой происходит направленное движение частиц.
Подача - сила, с которой в течение короткого времени одно тело оказывает воздействие на
другое, сдвигая его с начальной точки отсчёта.
Вопросов больше нет? В общем, тупо одно - перевод другого. Вот какая разница, между фразами, что говорят об исполнении трека: "Считан в стиле Fast-Flow", - или "В треке быстрая подача"? Вот именно, что никакой. "Fast-Flow" - "Быстрая Подача". Одно - перевод другого. Поэтому термины эти разделять просто глупо. А мы, как я заметил в начале статьи, пытаемся во всём подражать западу. Воруем всё у них. Самое сильное, что глупость наша не в том, что мы у них воруем, а в том, что не понимаем, что воруем. Искажение мысли равно некомпетентности.
И ещё немного о Flow (подаче). Многие, как переводят это слово, так и понимают его. Если они его перевели, как "напор", то так в читке и осуществляют. Начинают всячески напрягать голос или даже орать под бит. Про орущую подачу мы знаем, что существует специальный стиль - crunk, - но стиль-стилем, а подача-подачей. Кто, быть может, слышал фразу МС Молодого: "У вас есть напор, но нет Flow". Ага? А вспомним Шеффа? А он разве напрягается, когда читает? Нет, у него всё просто нереально гибко и каждый трек звучит очень музыкально, как раз, благодаря мастерству грамотно подать читку.
И есть ещё небольшой малозначимый момент. Опять, те же диссы. Частенько можно услышать фразу: "У тебя нет Flow". На самом деле, если уж придраться к фразе, то замечу, что Flow есть абсолютно у всех, но вот степень навыка уже разная. То есть, сказать: "У тебя слабый Flow", - гораздо грамотнее.
А вот, что меня смешит ещё больше! Всем известный МС из "Фабрики Звёзд" (да-да, тот, что с Тимати) - Доминик Джокер. - считает, процитирую его, что "Невозможно объяснить, что такое Flow" (это из дисса на ДеЦла или Стима - точно не знаю). В его понимании это невозможно. Быть может, тогда, откуда берутся дети - тоже невозможно объяснить??) Он, наверное, Flow себе в треках достаёт из капусты или ему его приносит аист))
Мы здесь упоминали про постановку голоса. Она не является применимым в данном случае, как мы выяснили ниже, но имеет огромную взаимосвязь. Итак, постановка голоса - Delivery.
________________________________

Delivery
Delivery. Я рад, что тут буквально пару слов надо сказать об этом. Я просто чуть расскажу, что такое постановка голоса. Вот тут можно вспомнить уже ранее упомянутого Снуп Дога. Но, опять же, у него это стиль, а так, каждый рэпер в каждом треке его может поставить по-разному. Смотря, как он чувствует ту или иную аранжировку. Если она жёсткая, то и голос будет жёстче. Если мягче, то и голос соответственно. Слово с английского языка переводится, как "доставка". Иными словами, общее настроение трека.
Мне тут начинают говорить: "А в чём же тогда разница между Delivery и Flow?", - а в том, что голос можно поставить и высоко и низко, и мягко и агрессивно. но во всех видах постановки можно оперировать интонациями, то есть добавлять в читку эмоции, не меняя сам тембр голоса. Грамотно осуществлённый Delivery делает читку плавной!!
________________________________

Skillz
Skillz. Понимайте это ровно так, как и переводится. То есть, с английского языка "навыки", "умения". Начну опять с того, что я считаю бредом. Вы слышали наверняка ни раз уже таких людей, как Купер (Ex-DA108, Bad Balance) или Мук (Дерево Жизни). Эти люди применяют различные ускорения (о них чуть ниже). Так вот многие ошибочно считают, что эти фишки с кратковременными ускорениями и есть "скилзы". Нет! Этим фишкам отведены свои названия, а "скилзы" – это общеприменимый термин. Его можно применять абсолютно ко всему, что красит мастерство МС. Так же можно применить и к ускорениям. Например, насколько грамотно в плане ритмики и эмоций было произведено ускорение, характеризует, как навык, то есть "скилз". Выражение "прокачать skillz" подразумевает под собой нечто, вроде обучения какой-нибудь фишке или той же технике, подаче, постановки голоса. В целом, термин общепринятый для всего в рэпе.
_____________________________

Doubble Time
Doubble Time. Это читка, вдвое быстрее ритма битов. Ну, тут имеется ввиду, не ровно вдвое, так как мы не роботы, чтобы на протяжении всей партии держать именно вдвое ускоренный темп. Это приблизительно, конечно же. Doubble Time переводится, как "удвоенное время". И вовсе необязательно, чтобы это был Fast-Flow. Ведь в минусе может ритм бита быть настолько медленным, что удвоив его - скорости всё равно не получим. В этом-то и заключается главное отличие разновидности читки "Double Time" от "Fast-Flow". В первом случае ускоряем примерно вдвое, а во втором уже выкладываемся (необязательно на максимум, тут уже больше от минуса зависит, так как не во всех случаях, выложившись на максимум, трек будет звучать красиво).
______________________________

TungTwist
TungTwist. Это уже прямой пример фишкования. То есть это повтор определённых слогов в слове на скорости от двух раз и более (слушаем Купера "Дорога на Восток". Более сказать тут нечего. Слушайте трек.
Есть ещё подобные фишки, где слоги не дублируются, а просто ускоряется определённая часть слова или фраза. Это делается для того, чтобы разнообразить. Так слушается интереснее.
_______________________________

Дикция
Дикция. Способность рэпера читать чётко и членораздельно в любом темпе, в каком только позволяет skillz.
_______________________________

Триоли
Триоли. Вообще это музыкальный размер. Но в рэпе сейчас так принято называть почему-то читку с ломаными фишками, наподобии тангвиста, ускорений и т. д. Вернее, тут грамотнее применять выражение -"читать триолями".
_______________________________

PunchLine
PunchLine. С английского это переводится, как "ударная линия" (или "линия удара"). Не спроста! Опять же, рассмотрим музыкальный квадрат. Типично, 4 строки. Все эти строки связаны одной смысловой линией. Последняя строка ставит точку (если так можно выразиться, наносит удар на эту смысловую линию всех предыдущих строк, что их объединяет). Но тут ещё есть небольшое условие. Эта строка должна быть написана в стиле сравнения (будут применяться местоимение "как", что означает сравнение с чем-то / кем-то; но иногда могут применяться и другие сравнительные обороты, что вам известны из школьного курса русского языка), так же фраза должна быть легка на восприятие (фактически, в какой-то мере, это фразеологизм).
_______________________________

Spelling
Spelling - вообще, написание. Это способ, за счёт которого вы рифмуете текст, передавая его содержание. А выражение "модный спэл" подразумевает применение в тексте современной игры слов и созвучий, которые реально встретить из всех жанров только в рэпе. Но о рифмах будет другая совсем статья и в другой раз, сорри.
_______________________________

Style
Style. Стиль. Здесь вообще ничего объяснять не надо. Это полнейшая совокупность всех
предыдущих пунктов, когда в доведённом до кондиции состоянии, рэпер начинает быть узнаваемым, как бы он ни читал, и как бы голос ни ставил
. Свой стиль все МС имеют право называть, как хотят. Будь-то "Wack-Style" или "Психоделик", "Ломаный Слог" - неважно! Просто у каждого стиля есть свой принцип, но я принципиален в том, что копировать кого-то не надо. Ищите свои пути и будьте уникальны.

Думаю многие из тех кто играл в игры серии Batman Arkham, Mad Max и Sleeping Dogs задавались вопросом — как именно там устроена боевая система, как работают столь эффектные парирования и взаимодействия персонажей.

Я тоже всегда мечтал в этом разобраться, как минимум, как максимум — сделать подобную боевую систему. Единственное что меня останавливало — казалось, что опыта не достаточно, что знаний не достаточно, что я не готов. Но месяц назад, когда у меня, совершенно удивительным образом, получилось сделать качественную систему locomotion'а, я спросил себя - а почему бы не попробовать?

План был таков — начать с самого сложного и продвинуться уже в глубь расширяя возможности системы. В качестве самого сложного были выбраны анимации взаимодействия игрока и противника, ибо ради них все и затевалось.

(В качестве среды для анимирования я использую Blender, а риг на персонажах - от премиумного, купленного мной еще в далеком 2018 году, плагина AutoRig Pro.)

(Точнее небыло, но я один записал. Теперь есть.)

Я импровизировал на основе имеющихся знаний. Но импровизировал на столько хорошо и успешно, что даже смог собрать свой собственный сетап для анимаций, а так-же развить его. О чем тоже могу написать, но в другой статье.

Получив анимации, я попробовал сопоставить позиции персонажей в движке так, чтобы при проигрывании их позиция 1 в 1 совпадала с позицией создания анимации. Давайте покажу.

На картинке вы видите, что контролируемый игроком персонаж находится за спиной своего противника, в положении приседа. При этом угол между оппонентами составляет что-то в районе 80 градусов.

От нас требуется развернуть персонажа на эти 80 градусов, поместить его на расстоянии 1 метра от цели, после чего проиграть анимацию на обоих персонажах. Это позволит добиться совпадения и синхронизации обоих анимаций.

Обратите внимание на положение ноги, которая не проваливается, а находится именно там, где и должна.

Разработка этого вот идеального сопоставления заняла у меня порядочно времени. Пришлось ввести новые понятия типа — Direction Enum, пришлось помучаться с тригонометрией, чтобы корректно эти дирекшны распознавать.

Вероятно, вам интересно, как же выглядит сама функция. Длинно. И это не вся функция, а лишь ее часть, конечная, которая отвечает за само воспроизведение анимации.

Плюс изрядно пришлось помучиться с коллизиями, ибо персонажи, время от времени, начинали летать по сцене или проваливаться под пол.

Честно говоря, наблюдая такие печальные картины хотелось рвать волосы на голове(и не не только). Но, каким-то чудом, я смог найти решение. Проблема ведь была не только в том, что коллизии надо отключать, а еще и в том, что если их отключить — ломается т.н. Rootmotion, ибо movement mode персонажа становится None.

Достигнув результата я решил применить эту механику взаимодействия персонажей в самой боевке в форме контратак. Но нужны были анимации, а с этим были проблемы.

Знаете, я никогда не умел драться, а потому что плохо себе представляю как можно, в принципе, наносить удары и причинять вред. К тому-же в тех драках, которые все-таки были, я никогда не побеждал.

Поэтому сначала я засел за просмотр ютуба на предмет боевых искусств, чтобы понять, как работает тело человека в бою.

Разумеется, очевидным решением было бы взять анимации боевки из игр которыми я вдохновляюсь, в частности Batman или Mad Max и просто их воссоздать. Однако, посмотрев видосы с их боевками я понял, что к моей системе это не подойдет. Потому что анимации в Batman'е слишком качественные и многосложные, врятли я смогу такие сделать. Плюс сам персонаж там облачен в костюм, что . скрывает его не совсем реалистичные повороты. А у меня маникен. Если на нем я поверну какую-то кость как-то не так, все это сразу заметят.

Аналогично отпала и идея воссоздать анимаций из Mad Max. Они там слишком бешаные, слишком много бросков. Макс, буквально, дерется как рестлер. Это можно было, конечно, сделать, но учитывая проблемы с коллизиями, которые у меня были в ходе разработки анимаций takedown, я решил не рисковать. Все таки броски - это явный перегиб палки. И анимировать их сложно, ибо когда тело персонажа поднимается над землей, его надо как-то дергать, как-то перемещать, анимировать так, чтобы оно не казалось деревянным. А это очень сложно. Я же не специалист с 20 летним стажем рисования комиксов. Я обычный сельский парень. Ну ладно, не совсем обычный, но анимировать то я научился вот… в сентябре-октябре. Это не дело всей моей жизни.

Уже в конце, осмелев от собственных успехов, когда я делал анимации контратак сзади-вперед, я все-таки сделал один бросок атакующего через оппонента. Ибо решил протестировать свою систему на устойчивость.

Как и ожидалось - эта анимация создала проблемы при переносе в движок, я даже хотел от нее полностью отказаться, но взяв себя в руки - справился и с этим тоже. Теперь можно любые броски делать и они будут проигрываться корректно. Но было уже поздно и переделывать контратаки я не стал.

Однако сама разработка была далека от своего завершения ибо боевка — это не только контратаки. Это собственно и сами атаки.

А их то у меня и небыло. Точнее было всего 2 анимации удара, котрые я сделал просто в качестве затычки.

Пришлось создавать два вида комбинаций ударов. Четыре обычных удара, и три пинка. Хотелось бы больше, но я просто не представляю как еще можно … разнообразить такую простую задачу как удар в морду. Без шуток.

Ударить в морду можно снизу и сбоку. Больше бить не откуда. Если ваш оппонент стоит в боевой стойке - бить по его туловищу не эффективно, ибо рука у вас туда просто не достает. К тому-же перед нами не человек, а маникен. Удары по туловищу маникена выглядят убого, я проверял, оно того не стоит. Вот и вышло у меня четыре анимации атаки в морду: на низ и бок слева, на низ и бок справа.

С пинками чуть сложнее, тут я решил заморочиться, ибо пнуть мы можем как в низ торса, так и вверх, и с разворота. Так и получилось три пинка. Пинок с разворота я сделал ради эксперимента, опять-же, посмотреть, как система способна переваривать подобные сложные удары.

После чего я задал, в движке, комбо атаки руками на левую кнопку мыши, а пинки на пробел.

Но не атаками едиными. Вот тут то и начинается самое нудное.

Ударить левой рукой можно спереди, слева, сзади и справа. Аналогично для правой. А так-как атаки слева и справа у нас две, то и импакта надо два на каждую сторону. Думаете это все? Есть же Блок! Да, куда же нам без блока.

При блокировании персонаж поднимает руки и встает в соответствующую позицию. Урон от атак, в это время, по нему не проходит.

Очевидно, что в блоке импакты должны быть другими. Для всех видов ударов, для всех четырех сторон. Разумеется я все сделал, но работа была не просто нудной, а крайне нудной и муторной. Такой, от которой хочется сбежать.

Но вы же не думаете, что это — все? О нет, есть же еще анимации ходьбы и бега. В которых мы тоже должны в том числе блокировать. Вот и получается, что сидел я над этими анимациями изрядную долю времени.

И уже закончив все приготовления, приступил к написанию кода.

Я добавил т.н. hit trace, то есть регистрацию попадания, добавил активный блок, добавил дополнительные состояния в animation blueprint, настроил корректное проигрывание animation montages.

Я даже придумал особую фишку — проигрывать монтажи в слоте без layering’а - когда персонаж стоит, и проигрывать их с layering’ом когда он движется. Собственно, слой движения накладывается на слой анимации из слота и в результате можно наносить атаки в движении, не скользя по полу. Решение правда работает не всегда, но работает и уровень реалистичности после его внедрения значительно вырос.

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

А там где падение, там и вставание. Казалось бы, что сложного, сделай 4 анимации вставания из разных позиций. Запомни в какую позицию ты упал и воспроизведи соответствующую анимацию вставания. Но не все так просто. Что если ваш персонаж упал с высоты и его переклинило так, что он, падая вперед, упал на бок или спину? Нам, соответственно, надо вставать из того положения, в котором персонаж лежит, а не из того, в которое он должен был упасть.

А как определить, что персонаж упал набок? Как это корректно сопоставить? Ух какая задачка была. В итоге я определяю положение персонажа я по вращению кости spine_1 по оси Y(вверх она на кости смотит). Работает корректно. Рагдолл периодически проваливался через пол, пришлось долго гуглить решение, потом добавлять его, проверять…

Изначально хотел делать перекаты на корткие расстояния, что-то вроде трех метров, но потом остановился на дистанции в пять метров для переката, чтобы успеть выполнить все фазы анимации.

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

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

Слева здоровье, справа урон или исцеление. То есть дельта от изменения здоровья. С цветами, к стати, я так и не определился ибо не знаю, каким цветом красить здоровье. Однозначно исцеление должно быть зеленым, а урон — красным. Решено было отображать здоровье синим. Однако на сцене стало сложно разбираться, где индикатор здоровья твоего персонажа, а где — противника. Поэтому у игрока индикатор здоровья покрашен в красный цвет.

Алый… ну я на этом цвете в данный момент остановился. Вроде видно.

Аналогично был добавлен компонент отвечающий за искусственный интеллект. Дело в том, что я решил ограничить число противников, одновременно атакующих игрока. Чтобы игрока не окружали и не создавали ему проблем. И вот тут начинается еще одна история.

Изначально я хотел решить проблему окружения игрока через анимации пошатывания и уклонения. Для чего сделал 4 анимации уклонения, которые при получении урона могли активироваться случайно. Парралельно, в движке я ввел отдельную стату — evasion, однако, в последствии, полностью от нее отказался и удалил все ее упоминания в коде проекта, потому что уклонения получались крайне непредсказуемыми. Персонаж игрока мог начать уклоняться, вместо того чтобы атаковать или куда-то идти. Поэтому ныне он лишен уклонения полностью.

Теперь уклоняться от атак может только противник. И то исключительно от каждой 4 атаки. Для разнообразия. За это отвечает компонент ИИ.

Но результат все равно вышел плачевным. В момент такого отшатывания игрок терял управление и противники получали возможность нагнать и ушатать его окончательно. Хотя в данный момент это отшатывание в боевке все еще есть и активируется оно, если игрок начинает абузить механику блока. Чтобы постоянно в блоке не стоял. Хотя урон при отшатывании не проходит, оно просто создает визуально неприятный для игрока эффект.

Таким образом, поняв что решить проблему окружения игрока за счет анимаций у меня не выйдет, я переключился на написание компонента для AI, который бы ограничивал число атакующих игрока персонажей.

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

Видео-овервью проекта можно посмотреть тут:

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

На самом деле мне стремно, знаете… продавать эту работу. Хочется закрысить ее себе. Все таки это уникальная система и я не хочу, чтобы она попала в чужие руки.

Однако время идет, а рынок — развивается. И если не я, то кто-нибудь еще обязательно выпустит нечто подобное на маркетплейс. Лучше уж я буду первым, покажу как это делается и получу с этого какие-то щекели, чем какой-нибудь индус или китаец додумается и сделает то-же самое, а потом выложит это (а я с этого ничего не поимею)

Такая вот простая логика. Хотя не такая уж она и простая. Мне ведь действительно нужны деньги на разработку игры. На жизнь. И если хотя-бы 2-3 человека оплатит и купит этот проект я уже буду счастлив. Поэтому, дорогие друзья, же не манж па сис жур, подайте бедному разработчику на кусок хлеба да банку тушенки в эти тяжелые и сложные времена.

Даже если не учитывать сам код я буквально продаю 186 анимаций за 45 долларов… это 24 цента за анимацию.

Да ценник все-еще не маленький — 3 тысячи рублей, но вдумайтесь — где те люди, которые покупают Call Of Duty за 4 тысячи рублей каждый год? Я не осуждаю, я предлагаю. Нет ли у них желания прикупить реально полезную интеллектуальную собственность от своего же собрата-разработчика, отечественного, из России, а не от корпорации зла Бобби Котика.

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

Если вы на пальцах не можете описать структуру вашей организации, отдела, вообще работы — значит, вы делаете это неэффективно.

Эффективность и прозрачность это никогда не одно и то же. Можно прозрачно делать неэффективные вещи, а эффективно делать вещи непрозрачные.

Зачем он нужен

Development Flow призван для исполнения 4 обязательств:

  • Структурирование процесса
  • Решения возникающих проблем
  • Даёт Обратную связь
  • Обеспечивает универсальный язык взаимодействия

Система

Системы бывают отсутствующими

Или если вы знаете, но для вашей работы с вами рядом должен сидеть Проектный менеджер, и напоминать, чем именно в эту самую секунду вам следует заниматься (не отрывайся от монитора, тут же следящие программы)…

Или если вы просто чувствуете, что вы неэффективны…

… то скорее всего, у вас нет Системы.

Система бывают неработающими правильно

Не всё золото, что блестит. Не всё V12, что под капотом. И главное — не каждый двигатель работает правильно, даже если едет (привет, любимый автопром).

Важно иметь правильно работающую систему, потому что это наша уверенность. В своей работе, в работе всей системы. Вы сразу будете находить проблемы, большинство которых сможете решить.

В системе работы людей эти шумы — нарушение сроков, недовольства, утечка кадров, пониженный тонус сотрудников, перекидывание проблем на соседний отдел — и много всего другого. Хороший управленец ходит по офису с растопыренными сверхчувственными локаторами вместо ушей. Ему известен надвигающийся шторм, он чувствует, что упало давление. Он слышит все короткие вздохи, и замечает отведённые глаза. Он и есть Система.

Development flow: система

Система DF подразумевает два раздела — Общий флоу (функционирование системы в целом), и Частный флоу (функционирование отдельных её частей).

Общий флоу

Система состоит из элементов, объединенных в структуру для достижения намеченной цели.
Цель в ИТ — выпуск продукта в нужное время, нужного качества. Элементы системы — участники процесса: Владелец продукта, Проектный менеджер, Скрам мастер, Разработчик, Дизайнер, Тестировщик, Техписатель… Всё это элементы, и не все они присутствуют постоянно. Иногда роли объединяются. Нужно выделить свои элементы.

Нужно выделить свои элементы. Записать их, и стрелочкой нарисовать свой первый флоу. Это называется Общий флоу.

Владелец → СМ → Дизайнер, Разработчик → Тестировщик → Техписатель

Задача — объединить элементы в структуру и показать, какие профессиональные взаимодействия возможны. Непрофессиональные — о том, что дизайнер и владелец продукта живут вместе, не надо. Надо только роли. Владелец не должен взаимодействовать с Дизайнером или Разработчиком. Только Скрам мастер. Только. Скрам мастер.

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

Владелец → даёт описание задачи → СМ

СМ её переформулирует и для Владельца, и для остальных. Оценка задачи — приблизительная — выстроится сама собой. Но задача СМ — из простого описания, применив изящное нагромождение, сделать ДОСТАТОЧНОЕ_ОПИСАНИЕ. Части этого ДО он и будет обсуждать и распределять с командой.

СМ → даёт части ДО → Дизайнеру и Разработчику

ДО включает в себя схему, все возможные её состояния, и много другого (не хочу пока нагромождать). Каждый получает свою часть. Не всегда одновременно. Обычно Дизайнер опережает Разработчика на один спринт.

Дизайнер и Разработчик на ежедневном митинге в качестве обратной связи с СМ возвращает ему своё видение задачи. Убеждаемся, что всё понимаем одинаково. Это занимает 25-28 секунд. А спасает часы и недели.

Разработчик → после своего частного флоу (об этом позже), передаёт код → Тестировщику

Разработчик не имеет представления, что его код тестируют, до тех пор, пока не появляется проблем.

Частный флоу

В этой статье я в общих чертах разберу частные флоу Владельца, СМ и Разработчика, в качестве примера. Если вам будет интересно, потом выложу остальные наработки.

Владелец

Главная цель
Формулировка задачи (backlog ← описание), читать обратную связь

Что дальше
Когда задачи сформулированы Владельцем, СМ их описывает → приводит к Достаточному_Описанию.

Обратная связь от
СМ переописывает задачу и обсуждает с быстро Владельцем ключевые вехи, в тч сроки.

Взаимодействует с
СМ

Главная цель
Принять задачу, привести её в вид Достаточного_Описания, оценить задачи, распределить, читать обратную связь

Что дальше
Распределяет задачи сотрудникам

Обратная связь от
Дизайнер, Разработчик, Тестировщик, Техписатель

Взаимодействует с
Владелец, Дизайнер, Разработчик, Тестировщик, Техписатель

Разработчик

Главная цель
Разработка фичей и исправление багов. В Общем флоу ему приходят задачи от СМ, и при помощи своей профессиональной деятельности, он их реализует (git flow, rebase flow, feature flow и др).

Что дальше
Он может вносить предложения по модификации, обсуждая их с СМ и Дизайнером.

Обратная связь от
СМ, Дизайнера, Тестировщика

Взаимодействует с
СМ, Дизайнером, (важно — он не может порождать взаимодействие с Тестировщиком)

(В таком описании схема мне не очень нравится, вот эта моя презентация с другим описанием, и мне с ним приятнее работать. Но я же исследую варианты, пробую, оттачиваю, и тут получилось так. )

В сухом остатке

Development Flow решает такие задачи:

  • Структурирование процесса
  • Решение возникающих проблем
  • Даёт обратную связь
  • Обеспечивает универсальный язык, о котором мы пока ни слова не сказали

Очень много работы у Скрам Мастера (Тимлид, CTO). Но так и должно быть, он — главный тягач в этом подходе.

Оставайтесь в неведении или создавайте дерзкие структур. Мы предлагает свою птицу, но она большая и это только часть, в первом приближении. Нам нужно больше всяких кейсов. Потому я прошу вас — вешайте на меня всех собак, хочется разгрызть тему получше.

(Многое пришлось вырезать, чтобы хоть немного ужать размер статьи. Из-за этого что-то мог упустить, но буду оперативно исправляться, пишите.)

Некоторые рэперы делают свой флоу математически точным, продуманным до мелочей. Чтобы добиться этого, составляют схемы флоу, в которых отмечают, где нужно взять паузу, замедлиться или, наоборот, ускориться.

Важно понимать, что качество флоу зависит не от скорости читки, но если артист умеет быстро читать без ущерба для восприятия текста, это может стать дополнительным средством выразительности.

Увеличение скорости читки FACE в середине первого куплета становится важным смысловым акцентом:

Рифмы

Рифмы — костяк рэп-текста. Именно благодаря им строчки переплетаются между собой, образуя связный и ритмично организованный массив словесных лабиринтов. Также рифмы придают тексту музыкальность — за счет повторяющихся и сочетающихся звуков. Рифмовать на глаголы считается дурным тоном: во-первых, это читерство (подставляйте нужный глагол — вот и вся забота), во-вторых, текст становится бледным и менее выразительным. Разнообразие же и сложность рифм обогащают лирику и делают ее многогранной.

Помимо уже упомянутых глагольных рифм также существуют:

Квадратные рифмы (у рифмующихся слов совпадают окончания)

Акцентные рифмы (у рифмующихся слов созвучные слоги)

Как совместить несовместимые вещи ,
Такие как человечность и любовь к человечеству ?
Быть честным, но избежать душевных увечий ,
Остаться в живых и улизнуть от ужасающей вечности ?

Внутренние рифмы (в строке рифмуется не одно слово, а несколько — в середине строки и в конце)

Я черный, как смола , девятка черная, как месса
Дуло черного ствола , как стены моего подъезда
Паутины, купола , как дети в поисках замесов
Ты такой же, как и я — ты зависим, ты за весом

Двойные и тройные рифмы (рифмуются два и даже три слова в каждой строчке)

По местам подонки, всё на листах по полкам
Тебе знакомо это, так ставь в колонки
Тут черный ящик, будто Пакистан в коробке

Полнострочные рифмы (рифмуются почти все слова в строчках в каждой из строк)

Годы словно Одиссея по окраинам
Город Лондон против всех , часть вторая, ман

Основу музыки в рэпе составляет бит — ритм песни.

Какие-то артисты пишут биты сами, кто-то покупает готовые или даже берет их в аренду (в этом случае на тиражирование бита накладываются ограничения).

Запись и дополнительные приемы

Едва ли кто-то придет на концерт артиста, не прослушав предварительно его треки. Разумеется, плохое качество записи может загубить гениальную во всех отношениях песню. Но для того чтобы записать что-то классное, не обязательно тратить деньги на дорогую студию — многие известные артисты в начале пути обходились домашним оборудованием и собственными навыками звукорежиссера.

Не менее важно отрепетировать читку перед записью, заранее продумать, в какие моменты будет уместно сделать вдох.

Некоторые рэперы записывают всего по две-три строчки, а потом склеивают их, чтобы избежать ошибок или наложить дополнительные вокальные эффекты.

Обычно исполнители стараются замаскировать склейки, но если качество сведения было не идеальным, внимательные слушатели могут их заметить. Другие же рэперы записывают все в один прием, и, как правило, лайвы таких артистов звучат куда гармоничнее.

Разнообразить запись можно с помощью дополнительного обвеса: бэков и эдлибов.

Некоторые артисты записывают скиты — небольшие скетчи, цель которых создать у слушателя ощущение присутствия внутри трека или же дополнительно раскрыть сценарий альбома. Примечательно, что в современном рэпе скиты используются все реже: популярность цифровых аудиоформатов позволила пропускать их и сделала их включение в альбом практически бесполезным.

Надеемся, нам удалось показать, что рэп устроен сложнее, чем кажется на первый взгляд.

Читайте также: