Jump to content

Recommended Posts

Fishbed

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

Итак конечый результат: в перспективе неплохо, и чертежам вроде соответсвует -)

 

за сим с моделингом покончено :joystick:

 

Да, что я еще хотел сказать. Различные самолеты имеют свои "геморройные" с точки зрения моделирования места. Т.е. в некоторых моментах надо будет эксперементировать, скрещивая разные методы: например у фюзеляжа АН-8, я подозреваю, будет немного время и человекочасозатратное :) место в районе перехода круглого сечения фюзеляжа в носу в почти квадратное за кабиной... Хотя не буду утверждать, может там на самом деле все просто :) , а вот фюзеляж Ил-76 - это одна большая головная боль ( частично из-за протеворечивых проекций на чертежах) - проверено на себе :(

post-3025-1168721121_thumb.jpg

post-3025-1168721127_thumb.jpg

Edited by Fishbed

Share this post


Link to post
Share on other sites
samdim

Ну что-ж. Приступим к текстурам.

 

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

 

Длина Ту-128 - около 30м. Максимальный размер битмапа текстуры - 1024х1024. Если расположить фюзеляж во всю длину листа, то разрешение получится около 3см на 1 пиксель. Это вполне приемлемо для фришника, но маловато для платника. Например разрешение на фюзеляже А321 AirSimmer - втрое выше. Мы же сейчас остановимся на этом, не будем возиться с разбиванием фюзеляжа на отдельно отмаппеные куски...

 

Есть какие-то способы создания текстуры из детали, но я их не знаю. Я делаю просто - изолирую деталь, выбираю вид сбоку (сверху, снизу) - и делаю скриншот. Затем в Фотошопе вырезаю детальку и помещаю на лист текстуры. Так и поступим сейчас. В Фотошопе я разместил виды сбоку, сверху и снизу так чтобы они были одного размера и расположены на одном расстоянии от левого края текстуры. Так будет легче потом текстурить и рисовать.

 

post-159-1168721411_thumb.jpg

 

Сохраняем файл под именем tu128_fuselage_t.bmp (не забыть _t - иначе весь хром потом будет прозрачным), формат 24бит для макса, 32 он высвечивает неправильно. Впрочем можно еще лучше - сохранить текстуру в формате фотошопа, макс может читать и формат .psd . Выбираем эту текстуру для материала texture_fuselage, жмем на кубик с шашечками и наблюдаем как фюзеляж покрылся белым цветом

 

post-159-1168721840_thumb.jpg

 

На маппинг это не похоже... Щас сделаем.

Маппинг делается довольно просто. Один или два шага :

1. применить модификатор UVW-Mapping

2. применить модификатор Unwrap-UVW

 

Первый - накладывает лист текстуры на деталь. Он обязательный (почти обязательный, мы все-таки чертеж без него отмапили). Второй позволяет двигать полигоны детали по листу текстуры с тем чтобы точно подогнать одно к другому. В некоторых случаях можно обойтись только UVW-Mapping, правильно выбрав расположение и размер листа. Выгода от этого не маленькая - модификатор можно скопировать и приклеить к другой детали - тогда маппинг точно перейдет на нее. Copy/Paste с Unwrap UVW не проходит. Фюзеляж будем маппить только с помощью UVW-Mapping, причем отдельно с каждой стороны.

 

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

 

post-159-1168723229_thumb.jpg

 

Какой размер плоскости ? Считаем. Длина фюзеляжа равна 28.18 м (воспользовался Tool / Measure). Длина картинки фюзеляжа на текстуре : 1014 пикселей. Значит если квадрат текстуры (чью сторону нам надо узнать) соответствует 1024 px также как 28.18 соответствует 1014, то сторона квадрата равна 28.18*1024/1014=28.457. Заносим это значение в графу размеров мапа.

Share this post


Link to post
Share on other sites
samdim

Теперь размер мапа соответствует фюзеляжу, но мап придется повернуть и сделать флип. Двигая гизму модификатора подвигаем мап на фюзеляж

 

post-159-1168724643_thumb.jpg

 

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

 

post-159-1168724740_thumb.jpg

 

Сверху оттекстурили. Текстурим снизу. Для этого выбираем полигоны низа с помощью модификатора Select Poly (это позволит впоследствии безболезненно двигать маппинг верха если вдруг надо будет). Заметьте, что я переименовал модификатор маппинга в mapping_verh, потом мне будет легче вспомнить где что.

 

post-159-1168724964_thumb.jpg

 

применяем опять же модификатор UVW-Mapping с теми же параметрами. Проще всего - сделать правой мышкой Copy / Paste предыдущего маппинга. Затем двигаем гизму чтобы попасть на маппинг днища.

 

post-159-1168725094_thumb.jpg

Share this post


Link to post
Share on other sites
samdim

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

 

post-159-1168727367_thumb.jpg

 

Есть еще два места которые нельзя оттекстурить прямым маппингом. Это поверхности под заборниками. Выбираем полигоны

 

post-159-1168727507_thumb.jpg

 

применяем модификатор UVW-Mapping. Предварительно контур поверхности под заборником выносим на текстуру в фотошопе. Поверх UVW маппинга применяем модификатор Unwrap UVW. Вокруг выбраных полигонов появляется жирная рамка (ее можно убрать опцией снизу Display / Show no seam)

 

post-159-1168727671_thumb.jpg

 

Жмем на Edit - открывается окно редактирования маппинга. Подгоняем полигон под мап, проверяем на модели, закрываем окошко - деталь оттекстурена. Это и есть метод текстурирования с помощью Unwrap UVW - метод которым мы будем постоянно пользоваться.

 

post-159-1168727750_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed
Дмитрий, большое спасибо за мануал, отлично пишете. К вам просьба, вы не могли-бы выложить со скринами настройки 3Dsmax-а для создания моделей для MSFS? Просто как я понимаю, перед работай надо и саму программу настроить... как Gmax например для создания сценариев. Спасибо!

 

Настройки такие же как и для создания сценариев. Главное - система измерения в метрах и можно делать модель.

post-3025-1168882592_thumb.jpg

Share this post


Link to post
Share on other sites
samdim

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

 

Раз мы делали все по чертежам, то что нам мешает наложить эти же чертежи на текстуру ?

 

post-159-1168909916_thumb.jpg

 

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

 

А мы не художники, а просто возьмем и поправим нестыковку швов в фотошопе, чуток покрасим, дотекстурим кабину, заборники и сопла - и после целого вечера (до поздней ночи) кропотливой работы получаем результат

 

post-159-1168910237_thumb.jpg

 

Сейчас в модели 15 деталей. В конечной модели их будет с пол-тысячи...

Share this post


Link to post
Share on other sites
samdim

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

 

Что касается потенциальных источников левых теней, то можно перечислить:

 

- многоугольники (обычно прямоугольники) с вершинами не в одной плоскости (выровнять!)

- кривая триангуляция (перетриангулировать!)

- сильная разница между нормалями соседних полигонов (выровнять или делать chamfer!)

- несколько вершин слиты в одну (пройтись вельдом!)

 

Все эти понятия передают то что простым языком называется "кривая модель" :sarcastic: У меня часто бывают на моделях проблемы левых теней, особенно в районе иллюминаторов, боремся как можем

Share this post


Link to post
Share on other sites
Flogger

Насчёт теней могу добавить ещё одну причину. Как писал Samdim, они могут быть из-за большой разницы нормалей. Бывают ситуации, когда на изделии между двумя полигонами по задумке должен быть угол 90 градусов (или около того). Вот тут-то тень и нарисовалась... Это возможно из-за того, что у полигонов одна и та же группа сглаживания. Присвойте одному из полигонов другую группу, и всё будет пучком!!! :good:

Share this post


Link to post
Share on other sites
samdim

Следующий этап - крыло. Обычно я делаю модель в следующем порядке: фюзеляж, хвост, центроплан, крылья, шасси, двигатели, детальки. Центроплана на Ту-128 нету, если понимать его в смысле детали которая обеспечивает плавное сопряжение фюзеляжа с крылом. Что ж, повезло, мне кажется что это самая заморочная деталь в любом самолете.

 

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

 

post-159-1168969944_thumb.jpg

 

если сразу не получается очень точно - не страшно. Можем править сколько угодно. Установим Interpolation побольше чтобы была гладкость закругления передней кромки.

 

post-159-1168970016_thumb.jpg

 

откорректировав сечение, применяем модификатор Extrude

 

post-159-1168970061_thumb.jpg

 

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

Теперь переводим заготовку в Editable Poly, подрезаем где надо чтобы сделать излом за закрылками, и довольно быстро получаем форму крыла.

 

post-159-1168970191_thumb.jpg

 

дырки под закрылки будем вырезать позже.

Share this post


Link to post
Share on other sites
Air-883
А нужно вершины корневой " нервюры" соединять с вершинами фюзеляжа, или не нужно? Крыло отдельно само по себе в воздухе висит отдельной деталью со своим названием,или одельно от фюзеляжа по вершинам , но объедененно с ним. То же самое и с фонарем кабины. На скринах видно что фонарь не связан с вершинами фюзеляжа. Название у него отдельное или он объеденен с фюзеляжем.? Написал мудро! Старался.!

Присоединяюсь к вопросу. Как я понял, сейчас кабина это отдельная деталь и просто "вставлена" в фюзель... Начинал как-то МиГ-23, гм... но так и дошёл до финала :good: , так намучился с кабиной пилота... Именно из-за сопряжения кабины с фюзелем... Т.е. вопрос такой - что будет далее с кабиной? Она так и будет "вставлена" или как-то иначе будешь делать?

post-4066-1168973537_thumb.jpg

Edited by Air-883

Share this post


Link to post
Share on other sites
Fishbed

Я не знаю, как Дмитрий делает, но у деталей, которые друг в друга вставлены есть один минус - на границе пересечения появляется "елочка". Если место незаметно, то хрен с ним. Добавлю ( мое ХО ), что самолеты, у которых есть довольно-таки выраженный переход крыла в фюзеляж, то целесообразней крыло вытянуть из фюзеляжа путем создания сплайна по корневому профилю, присоединению этого сплайна к фюзеляжу ШейпМержем, и в итоге вытягиванием полигона внутри этого сплайна "на улицу".

Share this post


Link to post
Share on other sites
samdim
Я не знаю, как Дмитрий делает, но у деталей, которые друг в друга вставлены есть один минус - на границе пересечения появляется "елочка". Если место незаметно, то хрен с ним. Добавлю ( мое ХО ), что самолеты, у которых есть довольно-таки выраженный переход крыла в фюзеляж, то целесообразней крыло вытянуть из фюзеляжа путем создания сплайна по корневому профилю, присоединению этого сплайна к фюзеляжу ШейпМержем, и в итоге вытягиванием полигона внутри этого сплайна "на улицу".

 

Сливать пересекающиеся детали в одну или нет - зависит от ситуации. Как правило слияние трудоемкий процесс и потребляет полигоны. Если на пересечении есть ребро то... скорее всего лучше не сливать, но не всегда. Как правильно заметил Михаил, на пересечении деталей может появиться елочка или просто неровный край. Чем ровнее пересекающиеся полигоны и чем ближе угол их пересечения к прямому - тем меньше вероятность помех. Иногда можно чуточку подвинуть вершины скрытые за краем с тем чтобы сровнять край (в Ту-128 я так и поступил). Иногда полезно поменять триангуляцию на пересекающихся полигонах. Но бывает что край не выправить. В этом случае надо либо сливать обе детали в одну, либо резать в одной из них дырку и лепить край другой к краям этой дырки.

 

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

 

В Ту-128 все висит. Я даже фейковые дамми exterior, interior и прочие узлы описаные в СДК не делаю. Единственное что я вижу там должно действительно хорошо сопрягаться - так это заборники двигателей с фюзеляжем. Но мы их изначально сделали одной деталью. В этом плане Ту-128 - хороший самолет для туториала. Особых трудностей он не представляет (может еще будут, но пока не видно), интерес к нему есть (это вам не извечный упрощенный P-38 Lightning из туториала ГМАКСа который никому не нужен), позволяет познакомиться со всеми базовыми техниками моделирования для сима.

Share this post


Link to post
Share on other sites
samdim

@DUST : reset scale ошибки компиляции makemdl.exe не лечит. Лечение ошибок со scale animation настолько муторное, хоть и возможное, что лучше сразу застраховаться от подобных неприятностей.

 

Продолжим с Ту-128.

 

Текстурим крыло (для этого добавим лист текстур tu128_wings_t.bmp). Как и раньше - верх и низ делаем двумя мапами UVW_Mapping рассчитав их размеры.

 

post-159-1168993965_thumb.jpg

 

По расшивке прорезаем закрылки, элероны и интерцепторы

 

post-159-1168994024_thumb.jpg

 

Отсоединяем от крыла всю механизацию. Образовавшиеся дырки торцов под механизацией заделываем создав новые полигоны.

 

post-159-1168994178_thumb.jpg

 

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

Share this post


Link to post
Share on other sites
Fishbed

Альтернативный метод изготовления крыла путем вытягивания его из фюзеляжа.

Опишу опять же таки в нескоких постах.

Итак, фюзеляж.

post-3025-1169026368_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed

переходим на вкладку создания объектов, щелкаем на кнопку Shapes ( формы ), выбираем Line ( отмечено стрелкой ).

post-3025-1169026486_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed

рисуем сплайном наш профиль крыла, подгоняем точки сплайна...

На скрине готовый профиль

post-3025-1169026564_thumb.jpg

Edited by Fishbed

Share this post


Link to post
Share on other sites
Fishbed

На виде сверху выносим наш профиль-сплайн за пределы фюзеляжа ( это обязательно )

post-3025-1169026700_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed

далее на вкладке создания объектов из списка выбираем Compaund Object ( составные объекты ).

post-3025-1169026811_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed

Теперь, шагом 1 выбираем фюзеляж, шагом 2 выбираем и жмем на кнопку ШейпМерж (ShapeMerge), шагом 3 щелкаем на кнопку Pick Shape, шагом 4 выбираем наш сплайн.

На скрине итог всего вышеописанного.

post-3025-1169026965_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed

конвертим в Эдитбл Поли и вот что получаем :good: Профиль крыла наложился на фюзеляж.

post-3025-1169027052_thumb.jpg

Share this post


Link to post
Share on other sites
Fishbed

Прежде всего скажу о том, что я опустил в данной работе....перейдя в списке эдитбл поли на менюшку Vertex ( вершины ) мы увидим, что на нашем профиле вершин слишком много, многие лежат одна на другой, 5 минут поработаем WELD'ом или TARGET WELD'ом, чтоб свести кол-во вершин к минимуму, но при этом сохранить форму профиля крыла.

 

Теперь, выделяем полигон, "закрывающий" наш профиль и вытягиваем его экструдом. Итог на скрине. Меньше, чем за час мы получили наше крыло.

 

Вот так это выглядит на учебной "болванке" и реальное хвостовое оперение, построенное вышеописанным методом

post-3025-1169027760_thumb.jpg

post-3025-1169027779_thumb.jpg

Share this post


Link to post
Share on other sites
samdim
Прежде всего скажу о том, что я опустил в данной работе....перейдя в списке эдитбл поли на менюшку Vertex ( вершины ) мы увидим, что на нашем профиле вершин слишком много, многие лежат одна на другой, 5 минут поработаем WELD'ом или TARGET WELD'ом, чтоб свести кол-во вершин к минимуму, но при этом сохранить форму профиля крыла.

 

Теперь, выделяем полигон, "закрывающий" наш профиль и вытягиваем его экструдом. Итог на скрине. Меньше, чем за час мы получили наше крыло.

 

Вот так это выглядит на учебной "болванке" и реальное хвостовое оперение, построенное вышеописанным методом

 

За час ??? Минут 10 от силы :joystick:

Я думал что ты объяснишь как сделать плавный переход от фюзеляжа к крылу в данном случае. Скажу на словах за тебя (я на работе, макса здесь нет, т.е. будет без скринов):

1. когда делаем ShapeMerge выбираем опцию Cookie Cutter - тогда на месте профиля крыла будет вырезана аккуратная дырка. Точнее не профиля крыла а профиля центроплана где он входит в фюзеляж. К профилю крыла мы щас будем стремиться.

2. вельдим и удаляем лишние вершины образовавшиеся на краю (я за это не люблю все эти booleans и shape merges - вечно плодят кучу левых точек)

3. выбираем грани края

4. вытягиваем новые грани. Вытягивать можно не только с помощью Move но и с помощью Scale или Rotate. В данном случае Scale обычно удобней, затем подвигаем чуток от фюзеля и возобновляем операцию пока край не примет форму профиля крыла.

 

Подобным методом удобно делать небольшие переходы от фюзеля к крылу. Совсем небольшие можно делать еще проще - вытянуть крыло как это описал Михаил, затем выделить кромку стыка и пару раз применить chamfer. Но на более серьезные центропланы, вроде тех что у Airbus, Boeing и прочих Антоновых этих методов недостаточно.

 

Миша, а что это за чертеж Як-42 на заднем плане ? :joystick:

 

@Bravo : спасибо за ответ, уже пять раз повторял что скейлить цельные детали нельзя, у некоторых все еще сомнения.

 

Хотя я не Хранитель Единственной Истины. Возможно что в некоторых случаях скейлинг не вызовет проблем. Кто мешает попробовать ? Я только делюсь моим опытом и могу сказать что был недалеко от того чтобы бросить макс ко всем чертям из-за этих проблем со скейлингом, особенно когда в максе все пучком, компиляция проходит гладко, а в симе детали не на своем месте и крутятся как попало вдобавок меняя форму...

Share this post


Link to post
Share on other sites
Fishbed

Могу еще добавить, тоже без скринов, что переход крыла в фюзеляж можно сделать еще так ( я на ЯК-42 так делал ). На чертеже видно, что зализ крыла похож по профилю на профиль самого крыла. Я ШейпМержем прилепил сплайн по форме зализа, потом выдавливанием граней пошел как бы во внутрь сплайна зализа, т.е. формы зализа сохранялись, но становились все меньше и меньше. В итоге я пришел к профилю крыла, немного его подкорректировал и вытянул уже крыло.

 

2 Дмитрий

 

ЯК-42... начал я его в мае 2006 года, за неделю намоделил планер ( косяки подчистил ), двигатели, шасси ( наброски ). Кстати очень легко он у меня пошел. Не в сравнение с 76-ым. В августе у меня квакнулся хард и все квакнулось вместе с ним. Тот же вариант модели, что сохранился на болванке и есть у меня сейчас являет собой только планер с небольшими огрехами в районе 2-ого двигателя и собсно 1 двигатель.

post-3025-1169043868_thumb.jpg

post-3025-1169043875_thumb.jpg

Edited by Fishbed

Share this post


Link to post
Share on other sites
samdim

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

 

post-159-1169073692_thumb.jpg

 

Верх и низ закрылка берет текстуру с крыла. А боковины - нет, тем более ориентация проекции на них другая. Что делать ? Заделываем боковины закрылков (Polygon / Create), выбираем полигоны и применяем модификаторы UVW-Mapping и Unwrap UVW как если б мы мапили всю деталь. Затем открываем окошко Edit Unwrap UVW и подгоняем торцы контролируя рядом в окошке результат

 

post-159-1169073913_thumb.jpg

 

Каждой управляемой поверхности поправляем пивот, ориентируя его вдоль оси поверхности. До сих пор мы работали только с правым крылом. Симметрию закрылкам и элеронам применить нельзя, так как левые и правые элементы вращаются относительно разных осей. Поэтому поступаем так: выбираем деталь, скажем элерон, клонируем, затем меняем знак его Х-координаты на противоположный и применяем модификатор Mirror (но только ни в коем случае не Mirror Tool на тулбаре!). Затем опять заходим в пивот и поправляем его, направляя на симметричную относительно фюзеляжа ось

 

post-159-1169074171_thumb.jpg

 

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

 

post-159-1169074261_thumb.jpg

 

Не забываем что даже такие тонкие детали как интерцепторы должны иметь толщину и их кромки желательно оттекстурить. В СДК говорится о double-side polygons, то есть о полигонах с лицевой и тыльной сторонами. Забудьте об этом, в мире не бывает объектов нулевой толщины. Если даже такие объекты потенциально могут присутствовать на модели самолета, в моей практике (см.мою подпись) до сих пор это не понадобилось.

 

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

Share this post


Link to post
Share on other sites
Igor Goncharov

Маленькое замечание: к сожалению не в 100% случаев наследование анимации приводит к правильной работе механизации, даже если в максе все выгладит "ок". Поэтому, мое мнение, стоит сначала выполнить весь моделинг - оба крыла с механизацией- а только потом заниматься анимацией сотворенного. Это нексколько (на пару шагов) удлинняет работу, но результат получается более надежный.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...