ruggaraxe ruggaraxe

Jusper, Спасибо! По железу средней требовательности. Достаточно Intel Core i5 и 16 Гб ОЗУ и карту типа Geforce 1050. Это так, навскидку. Детально пока не замеряли.

Jusper Jusper

Девблог интересный. Статичный скриншоты очень доставляют.
Сильно игрушка сейчас требовательна к железу?

alexprey alexprey

Скриншоты великолепны!)

yo_serjio yo_serjio

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

Mariya Mariya

Всем привет!
Новый ролик на движке. Сегодня мы покажем Вам бытовые сцены из жизни Сырны, и то как мы расставили мебель в ее домике.

RedHelium RedHelium

Работаю над освещением и над игровым контроллером, скоро приступлю к разработке прототипа города. Пока некоторые наброски..

alexprey alexprey

О это что то вроде редактора зданий? Можно самостоятельно новые дома собирать?

yo_serjio yo_serjio

Jusper, yo_serjio, через воркшоп будет потом работать?
Пока что, работает перебросом текстового файла с городом, в теории должно и сообщением передаваться.

Jusper Jusper

yo_serjio, через воркшоп будет потом работать?
Пока что, работает перебросом текстового файла с городом, в теории должно и сообщением передаваться.

yo_serjio yo_serjio

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

Jusper Jusper

Вернул тебе ссылку на ич, невалидная была.
Выглядит оч круто. Надо пощупать. А в чем смысл такого редактора в игре? Что можно будет делать?

Tartal Tartal

Попробовал воплотить злодея-пришельца (раса до сих пор без названия) для Exterminator'а в 3D, скетч которого я недавно показывал здесь:

EfReeZe EfReeZe

SINILIAN, привет, мультфильм "Планета сокровищ". Рекомендую :)

Mariya Mariya

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

Wings' might Wings' might

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

Следить за ежедневными изменениями: https://vk.com/wingsmight

Razz Razz

Сбегаем от контролёра
https://vk.com/iron_meat_game

SINILIAN SINILIAN

С приветом)) Что за мульт или фильмец?
(последний трек если что)

Mariya Mariya

Всем привет!
В мире Сырны появилось второе живое существо - лягушка!

Wings' might Wings' might

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

Логотип проекта 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

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

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