DuCats Games DuCats Games

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

РОМАН РОМАН

Работаю над роботом пауком ходящем по стенам.
ВК: https://vk.com/co_of_co

ASH2 ASH2

Тестируем электрическую сеть.
ВК: https://vk.com/snail_ninja

Jusper Jusper

Tartal, + если это конкретно имплант (то есть чуваку вырвали кусок, поставили механизированный), то искажение органической части должно быть больше. Глянь фотки после косметических операций, когда щи распухшие и раскрашенные пуще некуда...

Tartal Tartal

Jusper, с первыми двумя моментами я всё понял и принял.
А вот с третьим немного не разобрался. Ты имеешь ввиду, что область вокруг глаза-импланта должна быть искажена и повреждена намного сильнее?

Jusper Jusper

Tartal,

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

...
Tartal Tartal

Потихоньку доделал концепт-портрет главного героя:

Jusper Jusper

Чем-то напомнило мне мотоциклы из Throne: Legacy, только обернутые в оформление харконеннов из Emperor: Battle for Dune.

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

alexprey alexprey

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

alexprey alexprey

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

kirsakshlil kirsakshlil

alexprey, мобильная среда разработки, использующая Java.

alexprey alexprey

kirsakshlil, милота) APDE это что такое, что то не слышал про такое..

kirsakshlil kirsakshlil

alexprey, о, ахах, я тоже как-то начинал делать что-то в этом духе, только в APDE. Ручная отрисовка GUI - та еще муть :с . Правда, работать прямо в телефоне не очень удобно. Зато весело, хех. По факту не более чем баловался...

ASH2 ASH2

Jusper, спасибо. Нет, просто "типичный портрет").

Jusper Jusper

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

...
Jusper Jusper

ASH2,

Рисовка хорошая, я уже говорил ранее.

ASH2 ASH2

Когда личное пространство имеет значение.
ВК: https://vk.com/snail_ninja

alexprey alexprey

Освещение хорошо смотрится)

Логотип проекта Unreal Engine

Свойства переменных

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

Свойства по умолчанию

Думаю, все помнят блок DefaultProperties, в котором мы прописали код для создания спрайта на акторе. Но главное предназначение этого блока - задавать значения переменных по умолчанию. Припустим, вы создали несколько переменных:

var string MyName;
var int NumberOfKittens;
var float DistanceToGo;

Тогда задать значения по умолчанию можно с помощью следующего кода

DefaultProperties
{
    MyName="Rachel"
    NumberOfKittens=3
    DistanceToGo=120.0
}

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

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

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

struct Basket
{
    var string BasketColor;
    var int NumberOfKittens, BallsOfString;
    var float BasketSize;

    structdefaultproperties
    {
        BasketColor="Blue"
        NumberOfKittens=3
        BasketSize=12.0
    }
};

Не нужно волноваться, что мы не задали значение для BallsOfString, оно, как и все int, по умолчанию устанавливается 0.

Но это для наших собственных структур, а для векторов и ротаторов значения задаются в общем блоке, в виде:

MyVector=(X=1.0,Y=5.3,Z=2.1)

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

BasketSize = default.BasketSize;

Изменение переменных в редакторе

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

Задается подобная переменная таким образом:

var() int MyEditableInt;

Добавьте подобную переменную в наш TestActor.uc, скомпилируйте и загляните в свойства актора на каком-либо уровне (двойной щелчок на акторе или соответственный пункт в контекстном меню), и среди прочих свойств вы увидите раздел "TestActor", в котором будет изменяемый пункт "MyEditableInt", которому вы сможете задать любое значение int. Если переменная будет типа bool, вместо изменяемого поля мы увидим чекбокс (кто не знает - белый квадрат, где ставится галочка). Также можно использовать подобное объявление переменной:

var(Physics) int MyEditableInt;

Подобное изменение приведет к тому, что MyEditableInt появится не в "TestActor", а в указанном в скобках разделе, в нашем случае, в "Physics".

Свойства переменных — Unreal Engine — DevTribe: Разработка игр

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

Конфигурационные переменные

Как мы выяснили выше, значения переменным можно задавать в самом коде (программисты) и через редактор (дизайнеры). Но некоторые значения должны меняться игроками, из файлов конфигурации. Помните сборище INI-файлов в папке Config? Вот там и заданы все значения подобных переменных. Такие переменные тоже задаются определенным образом.

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

class TestActor extends Actor
    placeable
    config(Game);

Обратите внимание, что после placeable теперь точка с запятой не ставится, так как, по сути, это слово, как и сonfig(Game) входит в первую строчку, а разделяем мы их для удобства. Слово в скобках после сonfig указывает, в каком именно файле задаются значения, в нашем случае, Game.ini. Сама переменная задается с модификатором сonfig:

var config int MyConfigInt;

Мы можем добавить скобки после var, чтобы дизайнеры могли менять эти переменные редакторе, но вот задавать их значения в defaultproperties категорически нельзя, это аукнется вам в виде ошибки компиляции. Выставлять значения по умолчанию нужно в соответствующем файле, например, нам нужен DefaultGame.ini. Переменные для класса определенной игры задаются в разделе типа:

[Package.Class]

где Package - название игры (или названия папки, где лежат ваши скрипты, в принципе, это одно и то же), а Class - название скрипта. В нашем случае:

[TestGame.TestActor]

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

[TestGame.TestActor]
MyConfigInt=3

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

Здесь еще никто не оставил комментарий

Справка