Як я можу створити еластичний, зламаний матеріал для сирної піци?


21

Я хочу створити реалістичну піцу і дозволити користувачеві взаємодіяти з нею.

Що я хочу:

фотографія піци з піднятим шматочком

Що я створив:

скріншот піктограми, що надається, при цьому відсутні шматочки

Я створив модель піци (8 штук) в Blender, потім імпортував її в Unity. Шматок піци виглядає дуже штучно, здебільшого тому, що це "жорсткий трикутник".

Як я можу змусити сир розтягнутись і зламатись, коли користувач перемістить шматок?


1
Кращі моделі, кращі текстури та кращі шейдери. Так просто.
API-Beast

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

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

6
Особисто я би поглянув на моделювання тканини в реальному часі і побачив, як далеко ви можете дістатися від тканини до сиру за допомогою налаштування параметрів. Я б обробляв сирний шар піци як окрему сітку і використовував модель весни / маси для обчислення деформацій. Раніше я також бачив тканинні системи, які дозволять вам розірвати тканину, яку ви хотіли б і для сиру. Поєднайте це за допомогою шейдера, який поєднується з твердої текстури сиру до текстури сиру, що розтягується / розривається, виходячи із сили, прикладеної до вузлів моделі весна / маса, і це повинно дати вам досить акуратний результат.
Інвор

Просто, щоб зіграти тут захисника диявола, ви впевнені, що вам потрібна така анімація? Я знаю, що це звучить дивно, але ви повинні бачити відповіді, які вже були надані, це досить складний ефект, на який ви прагнете. Очевидно, це залежить від гри (я не знаю, чи ти робиш тренажер для виготовлення піци [я знаю людей, які платили б за це хороші гроші]), але варто запитати себе, чи буде робота, яку ти вкладеш у цю справу дійсно додає достатньо, щоб виправдати ваші зусилля. Навіть якщо у вас багато часу, присвячення цього в іншому місці може з часом виплатити більше ...
Selali Adobor

Відповіді:


28

Простий шлях

Додайте чотирикутник, який з'єднує сусідні зрізи один з одним. Текстуруйте це приємною текстурою плавленого сиру, доповненою отворами. Коли відріз буде відсунутий, квадратик буде, природно, розтягуватися і таким чином розтягувати та перекручувати текстуру.

Це повинно виглядати розумно, хоча перерви не буде. Що тут робити, щоб зробити цю текстуру анімованою. Повторіть анімацію на основі квадратиків (або просто відстані між скибочками) замість часу. У міру того, як його відтягуватимуть далі, завдяки прогресуванню анімації з’явиться більше дірок.

Врешті-решт, коли буде досягнуто поріг відстані, розділіть квадратик на два, програматично зменшіть два квадратики у напрямку їх прикріплених фрагментів, щоб трохи зменшити їх та зберегти анімаційну гру, яка показує оснащення. Заморожте анімацію в кінці.

Для трохи більшої динаміки ви можете прикріпити квадроцикл до двох скибочок за допомогою стику в двигуні фізики.

Важкий шлях

Використовуйте двигун фізики м’яких тіл або напишіть його. Визначте між скибочками тканинний відрізок і натріть його сиром. Дозвольте фізичному двигунові моделювати динаміку розтягування та оснащення матеріалу.

Це набагато більш інтенсивний, але більш загальноприйнятний метод. Це також може бути дуже некерованим, але може бути загалом більш переконливим ефектом.


3
Я б повністю запропонував перший підхід.
поштовх

6
Як мінімум, витратьте кілька годин на те, щоб спробувати перший підхід (ви могли легко використовувати кілька квадроциклів), перш ніж витратити кілька ... помилок ... місяців, пишучи двигун фізики ...
corsiKa

3
Тож голодні бачити результат! Будь ласка, оновіть нас, коли ви закінчите це.
Іоанн Мойсей

2
На якусь мить я подумав, що читаю "Використовуйте сирний двигун з м'яким тілом" і подумав, ух, люди напишуть двигуни на що завгодно.
Томас

2
Unity має вбудований двигун фізики тканини, який підтримує розтягнення і розрив, тому важкий шлях може бути не таким важким. Хоча це буде набагато дорожче обчислювально.
Етан Ворлі

2

Використання заданої анімації:

Тому створіть попередньо налаштовану анімацію в програмному забезпеченні для 3D-моделювання, як Maya / Blender, яке має такі функції, як м'які тіла та тканина, які можуть зробити гарну роботу, імітуючи розрив піци. Експортуйте як текстуру піци, так і анімацію моделі в Unity (можливо, як набір .obj моделей або деяких подібних).

Анімаційна модель буде представляти розтягнутий і розірваний сир, використовуючи багато безлічі трикутників, які ви можете завантажити як набір тримереж в Unity. Вони являють собою сукупність багатьох сітчастих станів, кожен з яких представляє сирну піцу в різних положеннях розтягування. Виходячи з того, де користувач розміщує шматочок піци, ви перейдете до цього "стану сітки" і покажете ці трикутники.

Звичайно, є кілька проблем. Взаємодія користувача дещо обмежена. Якщо сир вже трохи розірваний, ви не можете повернутися до стану «нерівномірного» для цієї області сиру. Якщо заздалегідь задана анімація видалить фрагмент 1, а потім 2, користувач буде змушений видалити фрагменти в такому порядку. Розмір експортованих даних може стати досить великим, виходячи з того, наскільки зерниста сітка та тривалість анімації розриву.

Але це може виглядати дуже реалістично, якщо художник-модель виконає гарну роботу при створенні заданої анімації. І вам не доведеться реалізувати симулятор м'якого тіла.

Використання Unity:

Але на випадок, коли ви зацікавлені, Unity реалізує свої власні тканини Skinned та Interactive . Інтерактивна тканина підтримує сльозотечу. Але підтримка для них обмежена лише кількома платформами, востаннє я перевірив.

Користуючись вами:

Зрештою, ви завжди можете реалізувати власний симулятор м'якого тіла. Ось зразок дослідницької роботи, який досить популярний. Це дуже весело :). Удачі.


1

@ originalDaemon відповіді хороші! Я думаю, що є середній шлях, який може отримати кращий результат, ніж перший підхід, і зажадає розумних зусиль (можливо, на відміну від підходу "Тяжкий шлях").

Те, що я пропоную, занадто насправді моделює сирну «павутину», мені це схоже на сталактити. Моделюйте кілька шматочків еластичного сиру. Випадково розташуйте їх по краях трикутника смачності і масштабуйте їх до 0, y-axisа коли трикутник виймається зі своїх поглинань, повільно масштабуйте їх на осі у назад до потрібного розміру.

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

Ще одна річ, яку я помітив, це те, що, здається, пепероні є лише текстурою зараз. Я б певно розглядав можливість її моделювання або додав до існуючої моделі деяку деталь у цій галузі. Ви могли б змусити ковзати вниз еластичним сиром для додаткового реалізму.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.