Порталы в Unity 3D как в Portal2 [Tutorial] Часть 1/3 - внешний вид и портальный шейдер

Сделать порталы похожие на Portal2 в Unity - не такая простая задача. Но они могут добавить немало красоты и атмосфере вашей игре. В этой серии видео я пошагово покажу как сделать такие порталы в Unity 3D. Вы также можете скачать готовый проект, чтобы разобраться подробнее
Вторая часть: • Порталы в Unity 3D как...
Третья часть: • Порталы в Unity 3D как...
Проект-заготовка, и законченный проект с готовыми порталами: github.com/emeraldpowder/Portals
Портальный шейдер: github.com/emeraldpowder/Port...
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Пікірлер: 107

  • @VinDust
    @VinDust3 жыл бұрын

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

  • @gagaion_den5721

    @gagaion_den5721

    2 жыл бұрын

    Тоже самое

  • @user-ut7yd8vb2c

    @user-ut7yd8vb2c

    Жыл бұрын

    жиза

  • @Sasha2dx

    @Sasha2dx

    Жыл бұрын

    Хорош.

  • @universegames7692
    @universegames769212 күн бұрын

    После таких видео, новичку главное не впасть в депрессию понимая насколько все сложно

  • @gagaion_den5721
    @gagaion_den57212 жыл бұрын

    Я так долго искал нормального ютюбера по C# в плане объеснений как все зделать вы и заготовку дали и научили круто

  • @MATVEICH
    @MATVEICH3 жыл бұрын

    Круто! Лучший туториал по порталам!

  • @medoc4092
    @medoc409211 ай бұрын

    Самый лучший вариант, который я нашел, автору респект

  • @user-vs7mg7ed6l
    @user-vs7mg7ed6l5 жыл бұрын

    Отличное видео) Отличная озвучка:) Хороший поднос информации, есть чему поучиться:) Превьюшки прикольные) Продолжай в том же духе:)

  • @EmeraldPowder

    @EmeraldPowder

    5 жыл бұрын

    Спасибо!

  • @user-dd7wf5ve3f
    @user-dd7wf5ve3f3 жыл бұрын

    0:58 Если кому нужно (кому нужно, тот поймёт), то в этом моменте он нажал F

  • @lolichno

    @lolichno

    3 жыл бұрын

    Спасибо : D

  • @user-ix3oh3ds8s

    @user-ix3oh3ds8s

    Жыл бұрын

    Мне было нужно) Блендер я начал учить только вчера)

  • @Goshulka02

    @Goshulka02

    6 ай бұрын

    Спасибо огромное!!!

  • @Vapor_Mercury
    @Vapor_Mercury3 жыл бұрын

    Я сделал все точно также, но при использовании строчки ротации камеры у меня изображение в портале какое-то Перевернутое получается. Орудовал на версии 2020

  • @actorden
    @actorden5 жыл бұрын

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

  • @EmeraldPowder

    @EmeraldPowder

    5 жыл бұрын

    Спасибо! Как раз вот начинаю снимать подробную серию про создание онлайн игры, там наверное немало серий получится, хоть и стараюсь в основном про онлайн рассказывать

  • @_Kater_

    @_Kater_

    Жыл бұрын

    @@EmeraldPowder 12:22 у меня камера улетает за карту после этой строчки

  • @MrFilming
    @MrFilming5 жыл бұрын

    Супер годно

  • @MrFilming

    @MrFilming

    5 жыл бұрын

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

  • @MrFilming

    @MrFilming

    5 жыл бұрын

    оказывается я уже подписан на тебя

  • @traderslick9763
    @traderslick97635 жыл бұрын

    Мало что понял (почти нет опыта программирования), но выглядит офигенно! Сохраню на память. Есть такой паренек на ютубе - CodeParable, делает много крутых вещей, но жаловался, что в юнити сложно создать порталы без кодирования. Да, без еода не получится, но видимо, не так уж сложно. Супер!

  • @jonro753
    @jonro753 Жыл бұрын

    Очень крутой канал по юнити, самое то для изучения движка и шарпа. Учил по Сакутину некоторое время, потом что-то посмотрел у itproger, сейчас знания на практике стараюсь применять с тобой, здорово делаешь 🔥

  • @ShiroDebik
    @ShiroDebik2 жыл бұрын

    Все отлично, но почему-то Clipping улетает далеко у камеры в портале из-за чего в портале вообще ничего не видно кроме горизонта

  • @strangerstrog
    @strangerstrog2 жыл бұрын

    Хотел сделать аналог портал в 2д но в 3д тоже сойдёт :)

  • @muiwols6709
    @muiwols6709 Жыл бұрын

    на 12:33 видно как при прыжке нижняя часть портала перестаёт отображаться. У меня такое не только при прыжке но ещё и при повороте камеры хоть немного выше или ниже портала.

  • @criotester8142
    @criotester81422 жыл бұрын

    почему когда я двигаюсь, камера двигается не в противоположную сторону от портала, а в одну сторону с игроком по оси?

  • @Siorinex
    @Siorinex4 ай бұрын

    Сижу, смотрю несколько гайдов, пытаюсь сообразить, как сделать универсальный префаб-портал...

  • @GoustYTC

    @GoustYTC

    Ай бұрын

    Скорее всего сделай 2 переменных для порталов, саму текстуру портала сделай белой и крась ее при установке

  • @issac332
    @issac332 Жыл бұрын

    У меня проблема, из-за nearClipPlane под некоторым улом обрезается пол и некоторые объекты в портале, это как то можно исправить?

  • @mrgoodpeople
    @mrgoodpeople4 ай бұрын

    А что если сделать через stencil шейдеры? Хотя в этом случае придётся менять расположение другой сцены и соот-но могут быть проблемы со всякими static-объектами и запечёнными светом и тенями...

  • @Itz-VaccumDev
    @Itz-VaccumDev2 жыл бұрын

    Я так и не понял, закон сохранения энергии работает?

  • @LANSHIFTSTUDIO
    @LANSHIFTSTUDIO Жыл бұрын

    А как сделать что бы порталы на полу ставились

  • @tomasgammister5776
    @tomasgammister57765 жыл бұрын

    у меня после изменения, шейдер сразу 2 ошибки выдает. на букву "w" в 48 строчке. и материал становится яркорозовый ! ппервая : Shader error in 'Unlit/portalshader': 'tex2D': no matching 2 parameter intrinsic function; Possible intrinsic functions are: tex2D(sampler2D, float2|half2|min10float2|min16float2) tex2D(sampler2D, float2|half2|min10float2|min16float2, float2|half2|min10float2|min16float2, float2|half2|min10float2|min16float2) at line 48 (on d3d11) вторая : Shader error in 'Unlit/portalshader': invalid subscript 'w' at line 48 (on d3d11) Compiling Vertex program Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_FULL_HDR версия юнити 2019.1.7f1 и при развороте одного из них , камера в развернутом портале разворачивается вообще не понятно куда. а в нетронутом нормально. почему так ?

  • @HaZe_Vl

    @HaZe_Vl

    4 жыл бұрын

    У меня так же

  • @landetti2253

    @landetti2253

    4 жыл бұрын

    @@HaZe_Vl you should use windows x86_64 build

  • @user-eh2cx7nq4z

    @user-eh2cx7nq4z

    3 жыл бұрын

    У кого такая же проблема, вот решение: Первую строку в коде шейдера заменить на Shader "Unlit/NewUnlitShader"

  • @VinDust

    @VinDust

    3 жыл бұрын

    У меня была такая проблема, но я её как то решил, забыл как

  • @user-hl2lg1mp1y

    @user-hl2lg1mp1y

    3 жыл бұрын

    Не знаю как в других версиях, но в 2020.1.17f1 при создании шейдера на строке 30: float2 uv : TEXCOORD0; изменив на float4 uv : TEXCOORD0; проблема решается. Ну а вообще легче скачать шейдер с описания видосика.

  • @QuiCalc
    @QuiCalc Жыл бұрын

    Shader error in 'Unlit/Portal': invalid subscript 'w' at line 48 (on d3d11) помогите :(

  • @IIpoger404

    @IIpoger404

    Жыл бұрын

    Не знаю как в других версиях, но в 2020.1.17f1 при создании шейдера на строке 30: float2 uv : TEXCOORD0; изменив на float4 uv : TEXCOORD0; проблема решается. Ну а вообще легче скачать шейдер с описания видосика. Один юзер ответил так, мне помогло

  • @tim6kya635
    @tim6kya6355 жыл бұрын

    Привет тебе. Я скачал файл, который находится на GitHub, но я не могу видеть внитри портал. Мне кажется, что проблеман есть. Я использую Unity 2018.2 ++

  • @sonicstalkergames9279

    @sonicstalkergames9279

    3 жыл бұрын

    надо через бледер експортировать файл в .obj тогда всё будет работать, как сделать чтоб портал в стенке не застревал

  • @alexv9607
    @alexv96074 жыл бұрын

    I hope you will understand this. i followed the tutorial but the camera doesn't move or rotate when the player walks or rotates. How to fix this problem?

  • @octobuter9872

    @octobuter9872

    4 жыл бұрын

    Alex V did you attached camera to player’s capsule?

  • @alexv9607

    @alexv9607

    4 жыл бұрын

    @@octobuter9872 my player has a maincamera and the portals have there own camera's just what the tutorial says. Edit: I also get this error: NullReferenceException: Object reference not set to an instance of an object Portal.Update() (at Assets/Scripts 1/PortalScripts/Portal.cs:19

  • @didi_music_russia
    @didi_music_russia3 жыл бұрын

    Все круто, но почему-то камера напрочь отказывается двигаться по оси Z, в чем может быть трабл?

  • @didi_music_russia

    @didi_music_russia

    3 жыл бұрын

    С Debug.Log выявил, что строка Vector3 LookPosition = Other.transform.worldToLocalMatrix.MultiplyPoint3x4(Camera.main.transform.position); всегда получает z = 0, почему так? Как быть?

  • @HaZe_Vl
    @HaZe_Vl4 жыл бұрын

    У меня не работает Clipping. Что делать

  • @mymirwastaken

    @mymirwastaken

    2 жыл бұрын

    Да, что делать?

  • @cybersmoke6106
    @cybersmoke61064 жыл бұрын

    А как сделать оружие портал ган который ставит порталы

  • @EmeraldPowder

    @EmeraldPowder

    4 жыл бұрын

    А про это в третей серии

  • @katerynazadorozhna
    @katerynazadorozhna Жыл бұрын

    это нереально

  • @-._63
    @-._634 жыл бұрын

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

  • @EmeraldPowder

    @EmeraldPowder

    4 жыл бұрын

    Да, можно через теги или слои, у меня в 3 части собственно и реализовано через слои, на желтые кубы портал не ставится

  • @-._63

    @-._63

    4 жыл бұрын

    @@EmeraldPowder спасибо за ответ.

  • @windows20-homeedition63
    @windows20-homeedition634 жыл бұрын

    А как сделать чтобы когда у тебя нет пушки то ты не можешь стрелять порталами а если будут то может стрелять

  • @Siorinex

    @Siorinex

    4 ай бұрын

    Вопрос странный для программиста: "if (HavePortalGun)" в функции "выстрела" вместо просто запуска "снаряда" проверить наличие пушки и если есть - сделать то-же самое, как в примере...

  • @sonicstalkergames9279
    @sonicstalkergames92793 жыл бұрын

    Как исправить проникновение сквозь текстуры(Проблема скорее всего в скрипте) Помогите

  • @sonicstalkergames9279

    @sonicstalkergames9279

    3 жыл бұрын

    Я понял как исправить Неправильно: Blue.transform.position = hit.point + Red.transform.forward * 0.6f; Правильно:Blue.transform.position = hit.point + hit.normal;. Тоже самое с красным

  • @dolonar7655
    @dolonar7655 Жыл бұрын

    А что делать если в моменте 6:05 получилась розовая текстура?

  • @EmeraldPowder

    @EmeraldPowder

    Жыл бұрын

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

  • @emptyman3469
    @emptyman34692 жыл бұрын

    Отличная тема, но есть вопрос как вставить портал на рандомную дорогу?

  • @EmeraldPowder

    @EmeraldPowder

    2 жыл бұрын

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

  • @emptyman3469

    @emptyman3469

    2 жыл бұрын

    @@EmeraldPowder не ожидал быстрого ответа. Спасибо. Я не очень силён в коде. По времени конечно бы его поставить, потому что вычеслить расстояние похоже целое уравнение надо)

  • @emptyman3469

    @emptyman3469

    2 жыл бұрын

    @@EmeraldPowder всё оказалось проще. Выставил монетки каждые 100 м. на плитки (чтобы считать удобно было))) через 60 сек. прошёл 800 м. ( 8 плиток). Вставил портал в спавнер( в инспекторе 800 м.) и через 50 сек выпустил * зверя * в аккурат перед игроком. Так для инфы, может сгодится такому же чайнику как я)

  • @pumpkinhead4048
    @pumpkinhead40482 ай бұрын

    Что делать, если у моего игрока координата Y постоянно скачет от -1.00... до 2.00..., и камера, прикреплённая к нему, соответственно тоже меняет свои координаты? Выходит так, что камеры портала также скачут по оси Y, не знаю, что с этим делать, пытался всяко решить эту проблему. Очень жаль, потому что именно с этим видео у меня получилось реализовать отображение камер на текстурах портала (хотя я дошёл даже до иностранных видеороликов).

  • @pumpkinhead4048

    @pumpkinhead4048

    Ай бұрын

    Ок, я просто выключил на время компонент Character Controller у игрока и снова включил и... это сработало. Камеры не дёргаются. Но вот обрезание камеры я сделал по другому видео P.S. на самом деле надо просто включить Kinematic, если на игроке стоит RigidBody

  • @foxfire941
    @foxfire9414 жыл бұрын

    Ага. А как можно ли реализовать всё это в старых версиях Unity? Если да, то как? Изменено: Я уже разобрался с этим, но у меня возникла одна проблема. Прикол в том, что при запуске камера ставится впереди портала(хотя я её ставил позади). И когда идёшь вперёд, то камера идёт назад к порталу. Короче говоря, у меня возникла инверсия камеры с вперёд/назад. Как сделать так, чтобы, отходя от портала, камера не приближалась, а отдалялась(как у тебя)?

  • @mymirwastaken

    @mymirwastaken

    2 жыл бұрын

    В в блоке position скрипта portal на последней строке: PortalView.transform.localPosition = (тут вот убери минус)lookerPosition; А выше вставь это: lookerPosition = new Vector3(-lookerPosition.x, lookerPosition.y, -lookerPosition.z); В общем если ничего не понятно, вот блок position: Vector3 lookerPosition = Other.transform.worldToLocalMatrix.MultiplyPoint3x4(Camera.main.transform.position); lookerPosition = new Vector3(-lookerPosition.x, lookerPosition.y, -lookerPosition.z); PortalView.transform.localPosition = lookerPosition;

  • @foxfire941

    @foxfire941

    2 жыл бұрын

    @@mymirwastaken благодарю за инфу

  • @mymirwastaken

    @mymirwastaken

    2 жыл бұрын

    @@foxfire941 Пожалуйста)

  • @mikhailturchin3413
    @mikhailturchin34135 жыл бұрын

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

  • @EmeraldPowder

    @EmeraldPowder

    5 жыл бұрын

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

  • @user-ut7yd8vb2c
    @user-ut7yd8vb2c Жыл бұрын

    NullReferenceException: Object reference not set to an instance of an object Portal.Update () (at Assets/PortalGun/Portal.cs:17) у меня постоянно эта ошибка помогите пж

  • @verzon390

    @verzon390

    4 ай бұрын

    в скрипт поставь обьект

  • @maridat47
    @maridat474 жыл бұрын

    Не работает, в шейдере ошибка с координатами Стоп, вроде у себя ошибку нашёл!

  • @catttt4737
    @catttt4737 Жыл бұрын

    Помогите, ничего не работает, камеры просто улетают фиг пойми куда, а в самом портале ничего не видно😢 даже полное копирование кода точь-в-точь никак не помогло, что я делаю не так????????????

  • @user-sw5ck2if9x
    @user-sw5ck2if9x3 жыл бұрын

    Клипинг не робит

  • @mymirwastaken

    @mymirwastaken

    2 жыл бұрын

    Соглы

  • @user-yi3tg5tu4c
    @user-yi3tg5tu4c2 жыл бұрын

    КЛАССНООООО! ЛАЙК НЕ ГЛЯДЯ! СПАСИБО ЗА ТАКИЕ ВИДЕО!!!!

  • @vrclubportal4347
    @vrclubportal43474 жыл бұрын

    привет крутой видос телепорт работает огонь но почему то не вижу отображение одного портала в другом :( можешь подсказать в чем может быть проблема ?

  • @vrclubportal4347

    @vrclubportal4347

    4 жыл бұрын

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

  • @EmeraldPowder

    @EmeraldPowder

    4 жыл бұрын

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

  • @vrclubportal4347

    @vrclubportal4347

    4 жыл бұрын

    Emerald Powder да с Виртуальной реальностью интересно поработать :) сам только разбираюсь ! Если будет контент по этой теме будет круто

  • @mclaren8989

    @mclaren8989

    3 жыл бұрын

    Чувак, получилось ли у тебя реализовать размещение камер для VR?

  • @RcFMhK
    @RcFMhK5 жыл бұрын

    Я ещё не посмотрел видос, думаю пойму. Вопрос про Prey 1, там играешь индейцем. Так вот это первая игра с порталами которые после появились в Портал. Так вот модель персонажа могла стоять одновременно в двух порталах на половину. Так сказать одной ногой там, а другой здесь) Что там с атмосферой? Ещё интересно гравитация планет. Возможно ли использовать силу притяжения самой Unity3D. Давай дружить)

  • @EmeraldPowder

    @EmeraldPowder

    5 жыл бұрын

    Да, в Portal вроде бы тоже можно было наполовину зайти в портал. Думаю получится так же, если создавать ещё один объект с моделькой персонажа и высовывать его из второго портала, возможно сделаю про это ещё одну часть видео А гравитация планет это интересная тема, с помощью физики Unity её можно сделать, но надо будет выключить встроенную гравитацию, и скриптом прикладывать силу к объектам. Спасибо за идею для видео)

  • @kanalfana637
    @kanalfana6374 жыл бұрын

    так можно зерколо делать

  • @lopatinpavel
    @lopatinpavel3 ай бұрын

    У МЕНЯ ШЕЙДЕР ПОРТАЛ В ФИОЛЕТОВЫЙ ПРЕВРАТИЛ

  • @HigasikataRediska
    @HigasikataRediska2 жыл бұрын

    игра сломалась

  • @RanilSuper
    @RanilSuper2 жыл бұрын

    Зачем я это смотрю если я не работаю в Unity и даже не знаю C# 🗿

  • @EmeraldPowder

    @EmeraldPowder

    2 жыл бұрын

    Если долго смотреть то как раз можно научиться, а если ещё пробовать самим что-то повторить - тогда точно научишься :)

  • @MrASmitt
    @MrASmitt3 жыл бұрын

    пипец как все просто, вот только у тебя опыта лет 300...

  • @EmeraldPowder

    @EmeraldPowder

    3 жыл бұрын

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

  • @user-ti9tx7ro2r

    @user-ti9tx7ro2r

    3 жыл бұрын

    @@EmeraldPowder друг, очень хочу так же научиться, можешь названия каналов по которым ты учился скинуть? А ролик твой топовый, заранее спасибо)

  • @Anik6
    @Anik63 жыл бұрын

    А вы тоже пришли после splitgate?)

  • @titiar1669
    @titiar16694 жыл бұрын

    т ы пишиш на с#

  • @kilinar2239

    @kilinar2239

    4 жыл бұрын

    А на чем еще? Это Unity.

  • @mymirwastaken

    @mymirwastaken

    2 жыл бұрын

    @@kilinar2239 Там ещё на javascript можно

  • @kilinar2239

    @kilinar2239

    2 жыл бұрын

    @@mymirwastaken 1) Раньше можно было писать еще и на Boo (вроде как диалект Python). 2) Это был диалект JavaScript - UnityScript (вроде бы были некоторые отличия). 3) Поддержка Boo была убрана с выходом Unity 5 (2015 год), а JavaScript не поддерживается с версии 2017.1.(Где первая цифра - год выхода обновления) Короче, уже как почти пять лет, как стало невозможно использовать JavaScript в актуальных версиях Unity. Качать же настолько устаревшую версию движка ради JS... гораздо логичнее потратить пару недель на освоение базиса C# (если уже умеешь программировать, а если нет - то и, по большему счету, все равно с чего начинать - с JS или C#).

  • @mymirwastaken

    @mymirwastaken

    2 жыл бұрын

    @@kilinar2239 Не ожидал такого длинного ответа, но я на версии 2017)

  • @kilinar2239

    @kilinar2239

    2 жыл бұрын

    @@mymirwastaken Окей, дело ваше. Я сейчас вообще на Unreal перехожу.