Вы не вошли.

Уважаемый гость, добро пожаловать на форум: CRYMOD.NET - Портал сообщества CryENGINE. Если вы здесь впервые, то, пожалуйста, прочитайте раздел Помощь. В этом разделе можно подробно ознакомится с функционалом данной системы. Что бы использовать все возможности системы, необходимо зарегистрироваться. Для этого пройдите по ссылке и узнайте подробнее о процессе регистрации. В случае если вы уже зарегистрировались – войдите под своей учётной записью.

1

Среда, 10 Январь 2018, 09:34

[C#] Редактор GUI интерфейса

Всем здравствуйте.
Это пока преподготовка с вопросами и ответами, дабы понять немного о сути построения GUI на крайенжине.
Моя цель написать программу для конструирования интерфейса.
Язык С#

Вид и структура снаружи:
Нажмите сюда, чтобы узнать больше


СТруктура будет примерно следующей, создаём интервейс в редакторе , на выходе получаем файл определённого интерфейса,
у себя в коде игры создаём клас ( наследник класа интерфейса) в нём на загрузку пишем путь гуи , после загрузки достаём компоненты по их имени
собственно примерно так, в редакторе будет реализована- относительность, выравнивание , поддержка драг-энд-дроп, тоскание окон, кастомных компонентов, ну и всякое тому присущее.

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

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

В общем хочу услышать все вопросы ,замечания и советы ^^


Обновления 19.01.2018:
текущее состояние редактора.,- самое сложное позади, было запилено практически всё что нужно чтобы собрать каркас для редактора, на данный момент до контролов не добрался. для теста на скорую руку накидал панел.

Это сообщение было отредактировано 2 раз(а), последнее редактирование в "amtp+" (18 Январь 2018, 18:42)


2

Пятница, 12 Январь 2018, 15:17

Зачем картинки из паинта? Для начала доки прочитай официальные. Вот, нашёл за тебя:

http://docs.cryengine.com/display/CEPROG…ting+a+Basic+UI
Legacy of the Yods
Indie of the Year Awards


3

Пятница, 12 Январь 2018, 16:31

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

Один момент, До этого я юзал другой двиг и писал на нём свою игру мморпг, переношувсё теперь сюда, всё было на шарпе, включая сеть (на базе лидгрена),
Для того движка писал я свои контролы которые мне нужны были для игры, поэтому решил в крае сделать подобную структуру работы с интерфейсом, чтоб проще было контролы свои перенести:D

вот пример создания в любом* классе

//создаём к примеру интерфейс главного меню с загрузкой из файла patchFileMyControl
myWindow=(MyControl )SceneObject.InstantiateOfFile(typeof(MyControl ), Owner,patchFile);

//получаем нужный нам контрол из загруженного интерфейса
Bytton mybuton=(Button)myWindow.Controls[ "имя батона" ];



ну или в наследнике контрола, кому как удобно.
В общем, замечания предложения?

P.S Схематичную картинку в пэенте я нарисовал чтоб нарпимер мне чёнить подсказали, вдруг я забыл чёта чё нада будет в интерфейсе редактора.

Это сообщение было отредактировано 2 раз(а), последнее редактирование в "amtp+" (12 Январь 2018, 16:38)


4

Пятница, 12 Январь 2018, 17:00

В крае такой системы нет и это так работать не будет. Есть вариант шарповский, там всё через код. Либо только через Flash. Третий вариант - приделать к движку постороннюю систему вроде Coherent или Awesomium и делать через HTML5. Пока что устаревший, но рабочий Flash - это лучший вариант. ИМХО вариант в CE5 через шарп больше годится для создания меню для плагинов редактора, а не для игры.
Legacy of the Yods
Indie of the Year Awards


5

Пятница, 12 Январь 2018, 17:11

В крае такой системы нет и это так работать не будет.

Ага, и это заставляет грустить :S , а чтоб не грустить решил сделать чтоб так было.

ИМХО вариант в CE5 через шарп больше годится для создания меню для плагинов редактора, а не для игры.

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

6

Пятница, 12 Январь 2018, 17:41

До этого я юзал другой двиг
А какой, если не секрет?

7

Пятница, 12 Январь 2018, 17:47

Цитата

А какой, если не секрет?

Neoaxis , до него TrueVision3D, до него DirectX :D

Положил кнопку стандартную, он мне пишит типа "нет такогота файла в такойто папке", ну думаю, чё тут сложнога скачал в гугл картинку закинул, запустил и
о боже.. :wacko:
Нажмите сюда, чтобы узнать больше

Это сообщение было отредактировано 2 раз(а), последнее редактирование в "amtp+" (12 Январь 2018, 18:01)


8

Пятница, 12 Январь 2018, 17:51

Neoaxis , до него TrueVision3D
Что-то даже не слышал про такие... :rolleyes:

9

Суббота, 13 Январь 2018, 02:04

Что-то даже не слышал про такие...

Повезло тебе :D

10

Суббота, 13 Январь 2018, 11:03

Используй Scaleform с его компонентами для создания игры и используй возможности C# для создания плагинов редактора.
Legacy of the Yods
Indie of the Year Awards


11

Суббота, 13 Январь 2018, 11:57

Повезло тебе
Что, они настолько нехорошие? :rolleyes:

12

Суббота, 13 Январь 2018, 12:30

Цитата

Что, они настолько нехорошие? :rolleyes:

Не то чтобы не хорошие, яб сказал сырые.
Truevision - это просто одна либа под каждый из языков( плюсы, шарп бэйсик) ни инструментов ни даже редактора карт там не было, (каждый писал свой :D ), чистый код, но тем не менее достаточно быстрый. он не обновлялся, и помер в итоге с 2006 года вроде как .
Неоаксис вроде как норм был и перспективы хорошие , всё там было сделано для инди разработчика, всё инструменты, но храмала там производительность, да и для больших игр это совсем не вариант, ( не серьёзный какойто двиг :P ), основан он был на огре,. под конец разраб двига Иван попросил помощи о внедрении вулкана, пообещал мне топ лицуху за это, но когда я взялся за работу , выяснилось что он не топ лицуху даст а среднюю, тогда я перестал ему помогать.
Финишом было то что он повешал неубираемую заставку при старте двига, народ начал сливаться, потом он удалил руский форум и всё скатилось, чёта они там мутят какуюта студию, но хз хз, я таким г больше пользоваться не буду, но для обучения я бы посоветовал этот двиг всем кто хочит начать писать игры на шарпе, Для этого он конечно просто идеально подходить. много я там сделал дополнений для движка ( красивую воду прозрачную с отражением блесками и каустикой, прозрачные и полупрозрачные стеклянные объекты с преломлением, систему летающих объектов типа" бабочки на лугу, птицы с интелектом садящиеся на объекты , листья падающие с деревьев" всё уже и не припомню.
Жалко конечно своих убитых полтора года разработак мморпг, хотя это можно считать неплохим обучением.

Используй Scaleform с его компонентами для создания игры и используй возможности C# для создания плагинов редактора.

яж написал, что плагин неполучится сделать как положено из за отсутствующих нужных шапок файлов в движке.

Возможно гдето я и буду использовать Scaleform, но для меня как инди разраба важна скорость, простота и вс ё это должно быть в кучке и желательно в большинстве случаев автоматизированно. конечно Scaleform предоставляет больше возможностей по графике и его неоспоримо в некоторых местах лучше использовать, но стандартные контролы так же удобны, к примеру как и в предыдущем движке я прикручу ко всем контролам по дефолту локализацию.
вся система в итоге должна съэкономить время.
вот пример создания интерфейса:
1 Создаем в редакторе кнопку, оформляем её, сохраняем
2 Создаём окно оформляем его, сохраняем
3 теперь мы можем строить интерфейс используя как контролы уже оформленные гуи из нашего списка гуи интерфейсов.

Использование кастомных контролов :
К примеру кто то нарисовал кастомный контрол "карта" и выложил его, скачиваем или добавляем класс если опенсорс. теперь просто при создании интерфейса , выбираем контрол карты и размещаем в нужном нам месте , у меня там кстати лежат пару контролов( контрол карты , контрол выбора цвета, контрол анимации, контрол драг н дроп, и ещё чёто, всё уже не помню.
В общем если немного потрудиться и всё сделать как надо , то потом будем проще и быстрее работать с интерфейсом. а там где нада сделать что то красивое с 3д эфектом, то можно и скалформ запилить.
Конечно, если бы я делал шутер где из интерфейса всего меню с тремя кнопками (старт, настройки и выход) то понятно дело что выделенного время на гуи у меня былобы с излишком и я потратил бы его на то чтобы сделать это меню космически красивым,когда ты делаеш игру типа rpg ситуация меняется когда у тебя времени на создания интерфейса примерно столько же? а объём вырас, тебе нада целую стопку окошек , диалогов и менюшек+ хочется всё это ещё и локализовать,. вот тогда разница в простоте удобстве и времени уже очень ощущается.
Я в общемто всё это не утверждаю, так как не работал со скалформ, лишь видель видео уроки. поэтому могу и ошибаться, тем не менее вариант с контролами для меня очень удобен.

Это сообщение было отредактировано 1 раз(а), последнее редактирование в "amtp+" (13 Январь 2018, 12:49)


13

Суббота, 13 Январь 2018, 14:35

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

Возможно гдето я и буду использовать Scaleform, но для меня как инди разраба важна скорость, простота и вс ё это должно быть в кучке и желательно в большинстве случаев автоматизированно. конечно Scaleform предоставляет больше возможностей по графике и его неоспоримо в некоторых местах лучше использовать, но стандартные контролы так же удобны, к примеру как и в предыдущем движке я прикручу ко всем контролам по дефолту локализацию.
вся система в итоге должна съэкономить время.
вот пример создания интерфейса:
1 Создаем в редакторе кнопку, оформляем её, сохраняем
2 Создаём окно оформляем его, сохраняем
3 теперь мы можем строить интерфейс используя как контролы уже оформленные гуи из нашего списка гуи интерфейсов.

Использование кастомных контролов :
К примеру кто то нарисовал кастомный контрол "карта" и выложил его, скачиваем или добавляем класс если опенсорс. теперь просто при создании интерфейса , выбираем контрол карты и размещаем в нужном нам месте , у меня там кстати лежат пару контролов( контрол карты , контрол выбора цвета, контрол анимации, контрол драг н дроп, и ещё чёто, всё уже не помню.
В общем если немного потрудиться и всё сделать как надо , то потом будем проще и быстрее работать с интерфейсом. а там где нада сделать что то красивое с 3д эфектом, то можно и скалформ запилить.
Конечно, если бы я делал шутер где из интерфейса всего меню с тремя кнопками (старт, настройки и выход) то понятно дело что выделенного время на гуи у меня былобы с излишком и я потратил бы его на то чтобы сделать это меню космически красивым,когда ты делаеш игру типа rpg ситуация меняется когда у тебя времени на создания интерфейса примерно столько же? а объём вырас, тебе нада целую стопку окошек , диалогов и менюшек+ хочется всё это ещё и локализовать,. вот тогда разница в простоте удобстве и времени уже очень ощущается.

Я в общемто всё это не утверждаю, так как не работал со скалформ, лишь видель видео уроки. поэтому могу и ошибаться, тем не менее вариант с контролами для меня очень удобен.


Походу ты был в бункере последние 11 лет. Ты в курсе, что такое Scaleform? Интерфейсы на флеше пилить быстро и качественно, через ActionScript, с локализацией из коробки - причём тут вообще "красота и 3d эффекты"? Хочешь делать окна и кнопки - делай, через него. Индустрия уже десяток лет использует Scaleform, и я советую тебе сначала прочитать про Flash/Actionscript и пакет классов и компонентов в Scaleform 3, прежде чем писать ненужные талмуды. CryEngine - это не ноунейм-движок, это высшая лига, стандарт индустрии, здесь другие понятия и законы, придётся привыкать к ним.
Legacy of the Yods
Indie of the Year Awards


14

Воскресенье, 14 Январь 2018, 00:48

а что по поводу тормозов? https://habrahabr.ru/post/303722/

или вот ещё выдержка из статьи https://habrahabr.ru/company/wargaming/blog/229261/

проблемы с различными версиями кода в разных SWF-файлах;
проблема коммуникации Flash <—> Python;
отсутствие стандартизации и унификации в коде;
отсутствие четких правил и процедур по добавлению нового функционала;
отсутствие автоматизации сборки проекта.

Это сообщение было отредактировано 1 раз(а), последнее редактирование в "amtp+" (14 Январь 2018, 01:02)


15

Воскресенье, 14 Январь 2018, 13:30

а что по поводу тормозов? https://habrahabr.ru/post/303722/

или вот ещё выдержка из статьи https://habrahabr.ru/company/wargaming/blog/229261/

проблемы с различными версиями кода в разных SWF-файлах;
проблема коммуникации Flash <—> Python;
отсутствие стандартизации и унификации в коде;
отсутствие четких правил и процедур по добавлению нового функционала;
отсутствие автоматизации сборки проекта.


Мобильные приложения и WoT - что за бред? Примеры мимо кассы. Всё это не имеет отношения к CryEngine. Если ты правильно все создал правильно экспортировал, следуя инструкциям и рекомедациям Scaleform, никаких тормозов быть не может. Изучай Flash/ActionScript и состав Scaleform SDK. Есть же куча документации. Скачай Scaleform SDK 3.x, на торрентах, прочитай официальные и переведенные доки по cryengine.
Legacy of the Yods
Indie of the Year Awards


16

Четверг, 18 Январь 2018, 19:55

Небольшая обнова в шапке