Перейти к содержимому

Как сделать позинг с шейдерами

  • автор:

Риггинг и позирование персонажа в Blender

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

Здравствуйте, уважаемые читатели портала 3D Today.

Я уже достаточно давно печатаю и крашу фигурки. Но не всегда можно найти подходящую. Надо двигаться дальше, и вот решил создать интересную фигурку уже не из готовой модели, а из того, что осталось, то есть из заготовок. А заодно и рассказать, как делать Rigging модели в Blender’е.

Риггинг – это процесс создания скелета у 3д модели, при помощи которого впоследствии создаются позы персонажа и анимация.

Также придётся столкнуться с таким понятием как «инверсная кинематика». Это мне напомнило обратную задачу кинематики в робототехнике (я робототехник). Если не вдаваться в научные объяснения в обратной кинематике по положению конечного звена определяются расположения всех остальных звеньев. Например, у нас есть ладонь и по положению ладони Blender автоматически сгибает запястье, локоть и плечо. Это удобно и одновременно позволяет делать позу более естественной.

Итак, что же мне досталось?

Магосы кузней Марса прислали мне СШК файлы из неведомых архивов с изображением ассасина храма Каллидус. Изображения были в формате OBJ были разъединены на отдельные плоскости и с кучей ошибок. Предположительно это модель для модификации какой-то игры из Вархаммера.

Масштаб также был микроскопический, модель была в позе «раскоряки», а лечение её в Netfabbe не давало результата. Поэтому пришлось лечить модели вручную каждую по отдельности, а потом соединять их булевыми операциями. Пистолет и оружие ближнего боя я оставил как отдельные модели. Сохранил модель как STL файл.

Риггинг и позирование персонажа в Blender

1) После этого я импортировал модель в Blender: File – import — .Stl . Перед началом работы важно так спозиционировать модель, чтобы её линия симметрии располагалась на центре координат (это важно).

Риггинг и позирование персонажа в Blender

2) Для того чтобы создать скелет нужно нажать Add (Shift + A) – Armature – single bone. Для того, чтобы наш скелет был виден сквозь предметы нужно поставить галочку X-Ray во вкладке Арматуры (рисунок человечка). Также стоит поставить галочку Names там же, чтобы видеть названия костей.

Риггинг и позирование персонажа в Blender

3) Появится маленькая кость в виде пирамидки. Ее можно крутить, масштабировать и перемещать, как и привычный объект в Блендере. В Edit Mode при Экструдировании (E) вытягивается ещё одна новая кость. Для создания кости не связанной с остальными работает комбинация Shift + A. Каждую кость нужно перемещать внутри тела так чтобы она была на своём месте. Это не значит, что у нас должно быть 33 позвонка, но в остальном нужно стараться придерживаться реальной анатомии, повторяя те кости, которые имеют суставы. Коса у нашей девушки тоже должна изгибаться под своим весом, поэтому в ней много костей. Чтобы было более удобно и быстро размещать кости лучше пользоваться ортогональными видами (клавиши Numpad ’а).

Риггинг и позирование персонажа в Blender

4) Таким образом, мы прописываем кости везде, где считаем нужным (кроме тех конечностей, которые симметричны).

5) Добавляем к каждой кости имя на вкладке с костями. Это лучше заранее сделать т.к. в скелете риггинга человека несколько десятков элементов, которые будут мешать своими непонятными именами. Симметричные кости нужно именовать по типу «имя».L, где L – обозначает левую кость. Это очень поможет, когда мы будем копировать элементы на правую сторону.

Риггинг и позирование персонажа в Blender

6) Теперь нужно добавить инверсную кинематику. Перейдём на вид сбоку и добавим как бы шпору и отдельную кость около колена.

Для того чтобы кость инверсной кинематики не была соединена ни с одной из костей скелета, выбираем в Edit Mode эту кость, затем Alt + P и Clear parent .

Риггинг и позирование персонажа в Blender

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

Риггинг и позирование персонажа в Blender

7) Выберем кость Foot1.l зажмём Shift и добавим к ней LegIK.L, а затем Make parent (Ctrl + P) и пункт Keep offset. Теперь наша стопа крутиться, если покрутить LegIK.L

Риггинг и позирование персонажа в Blender

8) Для добавления инверсной кинематики в режиме Pose Mode выберем кость LegIK.L зажмём Shift и добавим к ней Leg.L, а затем выберем Add constraint (Ctrl + Shift + C) — Inverse Kinematics. Кость ноги при этом окрасится в желтоватый цвет.

Риггинг и позирование персонажа в Blender

9) Выберем жёлтую кость и зайдём во вкладку ограничений и настроим инверсную кинематику, установим Chain Length – 2, то есть наша кость инверсной кинематики будет увлекать за собой 2 кости. Также чтобы наша нога могла поворачиваться из стороны в сторону, сделаем ограничение Pole Target – Armature – Target . L. Попробуем согнуть нашу ногу за LegIK.L. Если нога сгибается неправильно, возможно, следует поиграться с параметром Pole Angle .

Сделаем таким же образом ещё и руку и косу.

Риггинг и позирование персонажа в Blender

10) Сделаем зеркальную копию нашей ноги. Для этого перейдём на вид спереди (клавиша 1) и заменим Центр вращения на 3д курсор и поместим сам курсор в начало координат зажав Shift + S и выбрав Cursor to center.

Риггинг и позирование персонажа в Blender

После чего в Edit Mode выберем все наши кости для копирования и нажмём следующую волшебную комбинацию: Shift+D , S , X , -1, Enter . Теперь наши кости продублировались, и чтобы написать им правильные имена не снимая выделения с них, зайдём в меню Armature – Flip Names.

11) После того как все кости созданы, соединим их между собой: Выберем кость бедра в Edit Mode затем, затем зажмём Shift и добавим Spine3, выполним операцию Make parent (Ctrl + P) – Keep offset

Риггинг и позирование персонажа в Blender

У вас всё правильно, если при сдвиге костей позвоночника ноги сами сдвигаются и картинка соединения похожа на такую:

Риггинг и позирование персонажа в Blender

12) Выберем в Object Mode наше тело, затем через Shift скелет и нажмём на Set parent to (Ctrl+P) — Armature Deform — With Automatic Weights. Теперь наша модель соединена со скелетом и при движении костей она будет деформироваться, но не всегда правильно.

Риггинг и позирование персонажа в Blender

13) Теперь выберем нашу модель и перейдём в режим Weight Painting, где начнём раскрашивать веса.

Риггинг и позирование персонажа в Blender

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

Риггинг и позирование персонажа в Blender

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

Риггинг и позирование персонажа в Blender

Есть кисточки, которыми мы будем раскрашивать нашу модель:

Риггинг и позирование персонажа в Blender

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

Параметр Weight – это сила закрашивания вершин, Для кисти Mix: 0 – синий цвет, 1 – красный. Radius – размер кисти, хотя я предпочитаю масштабировать саму модель, а не менять её размер. Strength – отвечает за силу применения эффекта кисти (я её не трогал при работе).

То, что я пометил стрелочкой — это и есть сама кисть, т.е. курсор превращается в такой вот кружочек.

Самая распространённая новичковая ошибка при распределении весов – это случайная покраска весом совершено не соответсвующей части тела. Поэтому если вдруг у вас при сгибании руки внезапно деформируется также пятно на животе – ищите в костях руки покрашенное пятно и убирайте его.

Как понять, что вы всё сделали правильно? Да очень просто (ирония)– нужно лишь проверить каждую кость, крутя её в Pose Mode и наблюдая, есть ли неестественная деформация. И справлять, исправлять, исправлять! Процесс не то чтобы сложный, но скорее муторный, если модель имеет много костей.

Поэтому запасаемся терпением и красим каждую кость.

И это ещё не всё! У нас также есть 2 оружия, которые существуют отдельно от нашей модели. Для того чтобы исправить это подведём их в те места, где они должны располагаться, а потом в Object mode выбираем наш предмет, и жмём Add constraint (Ctrl + Shift + C) — Child Of .

В этом ограничении стоит указать нужную кость: Target – Armature , Bone – Palm.L, т.к. крепится пистолет будет к кости ладони.

Если наш предмет внезапно пропал из виду, нужно нажать Set Inverse.

Риггинг и позирование персонажа в Blender

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

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

Если Вы сделали что-то не так, то выделите в режиме Pose Mode нужные кости и выберите Pose — Clear Transform – All. Это вернёт их в первоначальное положение.

Риггинг и позирование персонажа в Blender

В получившейся позе я специально сделал 1 ногу выше другой, чтобы она опиралась на бортик подставки, которую я замоделил во Fusion 360.

Риггинг и позирование персонажа в Blender

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

Риггинг и позирование персонажа в Blender

Риггинг и позирование персонажа в Blender

В конце получился вот такой вот пафосный ассасин, которого я конечно же буду печатать, красить и дорабатывать.

Риггинг и позирование персонажа в Blender

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

Подпишитесь на автора

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

Анимация с помощью шейдера в Unity

В последнее время я работал над эффектом возрождения главного героя в моей игре King, Witch and Dragon. Для этого мне понадобилась пара сотен анимированных крыс.

Создавать на сцене несколько сотен Skinned Mesh со скелетной анимацией ради одного эффекта крайне нецелесообразно, поэтому я решил использовать систему частиц (или «партиклов»). Для этого пришлось прибегнуть к альтернативному способу анимации.

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

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

Анимация, которую я собираюсь детально разобрать, выглядит так:

Для начала я сделал в Blender низкополигональную модель крысы.

Для разделения модели на разные «зоны» (туловище, лапы, хвост) я использовал UV-координаты vertex. Поэтому развёртка у модели немного специфичная.

Основное движение крысы — это волнообразные прыжки. Чтобы все vertex анимировались плавно и синхронно, нам надо расположить всё тело крысы параллельно одной из UV-осей. Для удобства я разместил её вдоль оси U (она же X).

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

Хвост занимает всю левую половину развёртки (координаты U от 0,0 до 0,5). Это будет наша маска для анимации хвоста.

Лапы занимают всю нижнюю половину развёртки (координаты V от 0,0 до 0,4). Это маска для анимации лап. При этом лапы сжаты по горизонтальной оси U, чтобы избежать деформации. Так как я использую cel-shading и заливку цветом без детализированной текстуры, в моём случае это не проблема.

На основе этой развёртки я нарисовал diffuse-текстуру. Теперь можно приступать к работе над шейдером.

FBX-модель крысы с развёрткой и diffuse-текстуру можно скачать отсюда.

Для наглядности я сначала соберу шейдер в нодовом Shader Graph, а потом покажу его текстовую версию.

Создаём Unlit Graph, в качестве Preview выбираем Custom Mesh и выбираем нашу модель крысы.

Создаём параметр Texture 2D, который будет нашей основной текстурой. Создаём ноду Sample Texture 2D, в качестве текстуры задаём наш параметр и подсоединяем ноду к полю Color нашей мастер ноды.

Далее мы будем работать только с vertex модели.

Создавать его мы будем с помощью синусоидальной волны. Для создания и настройки основного прыжка нам понадобится три параметра:

  • Jump Amplitude — как высоко будет прыгать крыса;
  • Jump Frequency — как часто она будет это делать;
  • Jump Speed — как быстро будет происходить вертикальное смещение.

2 основных ноды, которые позволят нам создать движение, это Time и UV. Для UV мы будем использовать каждую ось по отельности, поэтому мы подсоединим её к ноде Split, которая даст нам доступ к каждому каналу по отдельности.

Умножив ноду Time на параметр Jump Speed мы сможем контролировать с какой скоростью будет смещаться наша синусоидальная функция и, соответственно, с какой скоростью будет меняться вертикальное смещение vertex’ов.

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

Сложив эти 2 произведения и подсоединив результат к ноде Sin, мы получим желаемую форму синусоидальной волны. По умолчанию функция принимает значения между -1.0 и 1.0, поэтому, если мы помножим нашу функцию на параметр Jump Amplitude, мы получим желаемую траекторию.

Теперь нужно применить результат к положению vertex, но сделать это нужно только для вертикальной составляющей. Поэтому мы возьмём ноду Position, разделим её на компоненты с помощью ноды Split, добавим значение, полученное из синусоидальной функции к вертикальной компоненте, и соберем обратно, с помощью ноды Combine. После этого подсоединяем результат к Vertex Position нашей мастер-ноды.

Крыса начала двигаться, но не совсем так, как нам нужно. Больше похоже, что она не прыгает, а ныряет как дельфин.

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

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

Добавляем ноду в наш граф.

Теперь анимация крысы выглядит так.

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

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

Чтобы реализовать это, добавим ещё один параметр Jump Vertical Offset, который позволит нам регулировать, насколько смещать вниз нашу функцию.

Граф теперь выглядит так.

Крыса теперь остаётся некоторое время на земле перед прыжком.

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

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

Мы знаем, что хвост занимает левую половину UV-развёртки, поэтому давайте создадим плавный градиент от значения 0,0 до 0,5 по горизонтали. Можно даже сделать до значения 0,6, чтобы сделать переход от тела к хвосту более плавным. В значении 0,0 будет белый цвет, в значении 0,6 и далее — чёрный. Чем светлее пиксель на градиенте, тем сильнее будет эффект. Значит, кончик хвоста будет подвержен дополнительному движению сильнее всего и этот эффект будет постепенно уменьшаться, приближаясь к туловищу.

Мы будет использовать ноду Smooth Step с горизонтальной компонентой UV в качестве in-значения.

Также нам понадобится параметр Tail Extra Swing, который будет определять насколько сильно крыса будет вилять хвостом.

Умножив значение, полученное от Smooth Step функции на этот новый параметр, мы получим распределение дополнительного смещения по длине хвоста. Добавив его к общей Jump Amplitude, мы получим финальное движение тела, с учётом дополнительного взмаха хвостом.

Теперь движение хвоста крысы стало более заметно (значение параметра Tail Extra Swing = 0,3):

Для движения лап мы будем использовать похожую структуру и нам понадобятся аналогичные параметры как для прыжка:

  • Legs Amplitude — насколько сильно вперёд и назад будут смещаться лапы;
  • Legs Frequency — как часто они это будут делать.

Параметр Legs Speed нам не нужен, потому что движение лап должно быть синхронизировано с прыжками, поэтому мы будем использовать Jump Speed. Единственный нюанс в том, что так как мы используем абсолютное значение синуса, за один цикл совершается два прыжка, поэтому для лап мы будем использовать Jump Speed * 2.

Так как лапы будут двигаться вперёд и назад, нам не понадобится нода Absolute для синусоидальной функции.

Значение Legs Frequency надо подобрать таким образом, чтобы когда передние лапы движутся вперёд, задние лапы двигались бы назад и наоборот. Опытным путём я выбрал значение 10.

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

Для этого мы снова будем использовать ноду Smooth Step, но теперь в качестве in-параметра будем использовать вертикальную ось UV-развёртки. Обозначим градиент между значениями 0,1 и 0,4.

Почему 0,1 а не 0,0? Чтобы не деформировались стопы, которые находятся в нижней части развёртки. Для всех vertex, находящихся ниже уровня 0,1, смещение будет одинаковым.

Давайте теперь добавим полученное значение к Z-координате vertex (продольная ось), временно отключим движение туловища и посмотрим на изолированное движение лап.

Теперь давайте соединим всё вместе. Я специально выставил скорость поменьше, чтобы было проще заметить недочёты.

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

Чтобы решить эту проблему, добавим параметр, который позволит настроить фазовое смещение анимации лап и подогнать её под анимацию туловища.

Чтобы создать эффект смещения по фазе, нам надо добавить значение этого параметра к переменной Time после того как мы умножили её на значение Jump Speed, чтобы сохранить синхронность, но до того как мы начинаем делать с ней остальные манипуляции.

Подобрав нужное значение фазового смещения (в моём случае -1,0), получаем такую анимацию.

И с нормальной скоростью.

Финальный граф целиком.

Для тех, кто ещё не перешёл на URP/HDRP в Unity или просто предпочитает писать шейдеры в текстовом редакторе, вот текстовая версия того, что мы только что сделали.

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

Этот шейдер рассчитан на работу в Object space (локальном пространстве объекта). Если вы назначите его на GameObject, всё будет работать отлично. Но если назначить его системе частиц, начнутся артефакты.

Насколько я знаю (тут могу ошибаться), раньше партиклы в системе частиц тоже работали в локальном пространстве, но несколько версий назад их перевели в World Space, чтобы они батчились с целью экономии ресурсов. Поэтому прибавление значений к координатам Y и Z будет смещать vertex в мировом пространстве, соответственно все они будут смещаться в одном и том же направлении, независимо от поворота крысы.

Чтобы решить эту проблему я использовал 2 Custom Vertex Stream в системе частиц и передавал туда из скрипта значения up-vector и forward-vector для каждой частицы. Первый учитывался для рассчета направления смещения тела во время анимации прыжка, второй для направления смещения лап.

Мы создали 2 версии шейдера, который позволяет анимировать крысу без использования скелета и keyframe-анимации.

Такие анимации подойдут для фоновых и декоративных объектов, которые не являются основным фокусом внимания, но добавляют картинке живости и динамики.

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

Чтобы поддержать разработку игры, добавляйте King, Witch and Dragon в вишлис на Steam. Если хотите принять участие в обсуждении, вступайте в группу ВК, а также подписывайтесь на меня в Twitter и Instagram.

как сделать позинг на телефоне с шейдеры

Смотрите видео на тему «как сделать позинг на телефоне с шейдеры» в TikTok (тикток).

tplv-efzqqlc8t1-1:480:480.jpeg» alt=»Лайки: 15.5K.Комментарии: 408.Видео в TikTok (тикток) от пользователя БАУНТИ || РОБЛОКС (@itz_nastikrb): «Ответ пользователю @_rbx_li3a_ Надеюсь помогла��#pageforyou #itznastikrb #позинг #шейдеры#полматери #рекомендации❤️ #����❤️ #вреки». okokokok lalalala — Aellete.» />

148.7K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 69.Видео в TikTok (тикток) от пользователя |•Alya_rbx•| (@agro_women0_0): «Тутор на позинг на 100 лайков тутор на шейдеры на телефоне». METAMORPHOSIS — Sped Up — INTERWORLD.» />

3480

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 1.7K.Комментарии: 98.Видео в TikTok (тикток) от пользователя —Gummy�� (@gummy_gummi): «мой первый в жизни позинг.,могу делать на заказ?.#роблокс».тутор?шейдер в телефоне;) Meet Lime Cookie! — Twintails Edition — Tsundere Twintails.» />

35.2K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 8.5K.Комментарии: 284.Видео в TikTok (тикток) от пользователя ⲧⲱⲓⲥⲭⲓ❤️���� (@twixi.rbx.official): «Ответ пользователю @sofikttl вот тутор надеюсь все понятно сделала���� #run #твикси #роблокс #котики #рекомендации #рек #pon #fypシ». оригинальный звук — ⲧⲱⲓⲥⲭⲓ❤️����.» />

80.6K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 1.2K.Комментарии: 37.Видео в TikTok (тикток) от пользователя Та самая Nastyalikss из тг �� (@nastyaliks): «Відповідь користувачу @bagira_solo #26_alya26 #позинг». оригінальний звук — Та самая Nastyalikss из тг ��.» />

27.4K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 7.7K.Комментарии: 338.Видео в TikTok (тикток) от пользователя —Gummy�� (@gummy_gummi): «вот:) те кто просили#роблокс #рек #рекомендации».вот и тутор на шейдер^^ | клонируем слой | нажимаем на фильтры | . Say Yes To Heaven — Sped Up — Lana Del Rey.» />

80.2K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 558.Комментарии: 43.Видео в TikTok (тикток) от пользователя mewdie|роблокс ���� (@preppu_rblx): «#шейдерывтелефоне #роблокс #недопозинг #ибиспаинт����️». оригинальный звук — mewdie|роблокс ����.» />

10.1K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 882.Комментарии: 106.Видео в TikTok (тикток) от пользователя винограша (@grape.rbx1): «позинг на телефоне) #позинг#делаюпозинг #туториал #тутор #позингнателефоне». оригинальный звук — винограша.» />

14K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 68K.Комментарии: 743.Видео в TikTok (тикток) от пользователя 彡 МЫШЬ|ROBLOX ���� (@maha.rblx): «продолжение выйдет завтра! Телеграмм канал в шапке профиля, продолжение выйдет завтра только если до утра будет 50 лайков���� || #maharblx #fyp #роблокс #позингнателефоне #позинг». оригинальный звук — 彡 МЫШЬ|ROBLOX ����.» />

773K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 1.3K.Комментарии: 40.Видео в TikTok (тикток) от пользователя <KOTRIX |ROBLOX> (@kitty.love.rbx): «Ответ пользователю @bu_n_n.y #шейдеры шейдеры на телефон или планшет туториал #котонас���� #котонас���� #тутор #топчик #роблокс #шейдеры #ттд3 #шейдеры #Котрикс������ #лав✨��». оригинальный звук — <KOTRIX |ROBLOX>.» />

24.1K

tplv-r00ih4996s-1:480:480.jpeg» alt=»Лайки: 58.Видео в TikTok (тикток) от пользователя ��кто я?�� (@kp2cka_): «#������». оригинальный звук — ��кто я?��.» />

1222

34.9K

tplv-f5insbecw7-1:480:480.jpeg» alt=»Лайки: 1.2K.Комментарии: 59.Видео в TikTok (тикток) от пользователя ❣️☺︎��������☺︎❣️ (@rbx.kt0t0): «Вот и тутор:>

|h::#робло #роблоксер #новыйроблоксер #ктотороблокс #роблоксеры #рек #рекомендации #р_е_к_о_м_и_н_д_а_ц_и_и #пельмень #хочуврек #❤️ #тягибархатные #озвучка». оригинальный звук — ❣️☺︎��������☺︎❣️.» />

15.3K

|h::#робло #роблоксер #новыйроблоксер #ктотороблокс #роблоксеры #рек #рекомендации #р_е_к_о_м_и_н_д_а_ц_и_и #пельмень #хочуврек #❤️ #тягибархатные #озвучка

Скачать с ютуб ТУТОРИАЛ КАК СДЕЛАТЬ ПОЗИНГ! /ФОН, ШЕЙДЕРЫ, ПОЗА/ в хорошем качестве

ТУТОРИАЛ КАК СДЕЛАТЬ ПОЗИНГ! /ФОН, ШЕЙДЕРЫ, ПОЗА/ скачать рингтон MP3 для прослушивания или на звонок:

Если кнопки скачивания не загрузились НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием, пожалуйста напишите в поддержку по адресу внизу страницы. Спасибо за использование сервиса скачатьвидеосютуба.рф

ТУТОРИАЛ КАК СДЕЛАТЬ ПОЗИНГ! /ФОН, ШЕЙДЕРЫ, ПОЗА/

всем приветиики, я сама не так давно делаю позинги, но надеюсь помогу вам эттм видео! люблю насть

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *