[все уроки game craft] [моделируем scv]
В ходе наших уроков у Вас может получиться такая модель робота SCV.
Не пытайтесь создать полностью похожую на образец модель с первого раза, и не отчаивайтесь если она получается не очень похожей или совсем не похожей. К процессу похожести надо стремиться, но если Вы раньше не занимались моделированием - задача может оказаться сложной. Поэтому сначала попытайтесь понять основные моменты и воссоздать хотя бы очень грубую и приблизительную модель. Когда у вас под рукой уже будет одна готовая модель - Вы уже узнаете все нюансы её создания - тогда можно создать еще одну - и уже зная все особенности у Вас наверняка получится второй - более качественный вариант модели. Процесс можно повторять многократно не удаляя при этом из сцены старые модели, а сдвигая их в сторону. Создавая новую модель Вы уже знаете все предыдущие допущенные Вами ошибки и просчёты - и в новой версии исправите их.
Создадим Box 32x32x32 и количеством сегментов 2х4х4 как показано на рисунке ниже. Обязательно отметьте галочкой пункт Generate Mapping Coords. Он отвечает за генерацию текстурных координат, чтобы в дальнейшем на созданную модель можно было нанести изображение текстуры. При этом модель уже будет не серая и безликая, а более яркая и понятная.
Теперь преобразуем наш Box в Editable Poly - кликнув в панели модификаций правой кнопкой и выбрав пункт Editable Poly. Процесс моделирования чем-то напоминает лепку из пластилина. Заготовкой является Box, а Editable Poly позволит работать с отдельными вершинами и гранями модели - перемещать, вращать и видоизменять их, выдавливать, вдавливать, позволяя придать модели практически любую желаемую форму.
Однако обратите внимание на уровень детализации модели - она будет являться несколько грубоватой, поскольку представляет так называемый Low-poly вариант. Это низкополигональная модель пригодная для вставки в игровое или мультимедийное приложение. Поскольку в игре у вас может быть сотня и больше экземпляров такой модели, а также помимо неё и многих других - то представляете, что общее количество вершин и полигонов представленных в 3d-сцене будет очень большим. Именно поэтому задача низкополигональной модели - добиться с одной стороны желаемого сходства с некоторым объектом (роботом SCV), а с другой - чтобы количество вершин и полигонов у модели было минимально возможным.
Выдавим кабину SCV робота, в которой сидит оператор. Откроем группу Editable Ploy нажав +. Выберем Polygon. Нажав и удерживая клавишу [Ctrl] кликнем нужные грани как показано на рисунке ниже.
Выполним выдавливание и скос выбранных граней, используя кнопку Bevel в группе Edit Polygons. Первым движением мыши вы определяете расстояние на которое вдавливается/выдавливается выбранный полигон, а после клика мышью - размер скоса. Последний клик фиксирует модификацию. Действие можно отменить [Ctrl] + [Z] или кнопкой отмены (Undo) на панели инструментов.
Если воспользоваться маленькой кнопкой Settings расположенной чуть правее кнопки Bevel - можно ввести точные значения для модификации - расстояние для вдавливания/выдавливания и размер скоса.
Нажмём Cancel, чтобы не применять вторую модификацию Bevel. Теперь будем работать с отдельными вершинами. В окне модификаций в группе Editable Poly теперь выберем Vertex. Затем будем выделять нужные вершины и перемещать их, чтобы придать кабине нужную форму.
Для того, чтобы выделять несколько вершин нажмите и удерживайте нажатой клавишу [Ctrl]. Иногда Вам может потребоваться проверить не выделили ли Вы случайно вершины на другой стороне модели. Для этого можно включить каркасный вид отображения модели. Клавишей [F3]. Вернуть вид к нормальному можно повторным нажатием [F3]. Если заметили случайно выбранную ненужную вершину - удерживая [Alt] кликаем по ней чтобы снять выделение. Кстати выделять вершины можно не только путём клика мышью левой кнопкой, но и рисуя область выделения (с нажатой левой кнопкой мыши) - тогда все вершины попавшие в выделенную область будут выделены.
Очень полезная опция - Ignore Backfacing - позволит запретить выделение вершин на задней стороне модели когда вы выделяете целую область и не хотите чтобы вершины на обратной стороне модели выделялись. Итак при помощи инструмента Select And Move нам осталось переместить выбранные вершины вниз по оси Z.
Применив серию перемещений и масштабирований добьёмся, чтобы кабина выглядела вот так.
Выдавливаем ноги робота.
Корректируем кабину если требуется. И продолжаем выдавливать ноги.
Ноги как бы выгнуты коленями назад. Поэтому выделяем вершины в месте "коленного сгиба" и перемещаем назад - см. рисунок ниже.
Выдавливаем ступни, которые имеют колесную тягу и робот может катится не перемещая ног. Большой детализации не требуется, поэтому колеса не моделируем. Как видно из рисунка - нужно сначала выдавить грани вниз, затем выделив 2D-привязку вершин выполнить Cut (нарезку граней), небольшую коррекцию вершин и снова выдавливание.
Теперь выдавливаем боковые энерго-реакторы (блоки передней части с лампами). Сначала выдавливаем при помощи Bevel - придав суживающийся скос. Затем выделив грани только на левой стороне поворачиваем их на угол -20. Затем аналогично на правой - на 20. Затем снова Bevel. Потом опять корректируем поочередно левую и правую стороны. И снова последовательно выдавливаем и делаем скос.
Выдавим вентиляционные отдушины в верхней части модели.
На рисунке показано, что нужно снова выделять нужные грани, выполнять скос (Bevel), вдавливать и корректировать путём вращения и перемещения выделенные грани до получения нужной формы.
Башенку расположенную по-середине выдавливаем аналогично.
После того как с вентиляционными башенками закончено, переходим к выдавливанию рук. На рисунках ниже показано слева-направо и сверху вниз как это происходит. Сначала выдавливаются элементы в стороны, а затем вперед. Каждый элемент - с постепенным утолщением, т. к. руки на концах массивнее чем у основания.
При выдавливании вперед руки должны расходиться в стороны. Если у вас получилось не так - нужно сместить грани рук влево и вправо. На рисунках слева-направо и сверху вниз показано как происходит моделирование рук. Сначала обе руки выдавливаются синхронно, а затем поочередно - т. к. концы рук отличаются. На левой расположен бур, а на другой двухпальцевый захват.
Далее мы закончим моделирование рук SCV и перейдём к завершающей части - моделированию элементов задней части робота SCV.
[все уроки game craft] [моделируем scv] Моделируем робота SCV шаг 2 часть 3
Те кто видел игру Cradle / Колыбель 2015 скажут, что игра вообще говоря спорная.![]()
![]()
Тут нет обычных стандартов. Все нестандартно. Лично мне эта игра очень понравилась. И я уже публиковал пост на эту тему.
Но давайте разберемся какова цена успеха. Заглянем в историю - основной автор игры Илья Толмачев был арт директором в компании GSC. В октябре 2010-го Илья основал собственную компанию по разработке игр — Flying Cafe for Semianimals (рус. «Летающее кафе для полуживотных»). К нему присоединились его коллеги: Виктор Меркулов, Евгений Литвинов, Роман Малинкин и Павел Михайлов (который через некоторое время ушёл, но продолжал иногда консультировать). В процессе компании помогали и другие сотрудники GSC, например, Людмила Стародуб. Первой (и единственной) игрой стала Cradle. Вот как шла разработка игры в 2012 году Релиз игры несколько раз откладывался и сдвигался по времени. В итоге игру все-таки выпустили, но её ждал коммерческий провал (если верить этому источнику) - чуда не произошло В итоге разработчики не только не получили прибыль, а еще и по всей видимости остались сами должны инвесторам, которые финансировали проект. Главные просчеты: зачем был взят движок unigine ? В статье выше - разработка игры в 2012 году упоминается следующее: На движке Unigine недавно вышел Oil Rush. Как работается с комплектом SDK? Удобен ли он? Достаточно ли быстр? — Работается с трудом. Сложности в нехватке инструментария, в основном. Например, функция поиска пути появилась в движке тогда, когда мы уже расписали историю таким образом, чтобы все персонажи в ней не перемещались, находились на одном месте всё время. Ида сидит на столе, поджав под себя ноги, и никогда не покинет его, в частности, потому, что, приобретая движок, мы учли, что там нет искусственного интеллекта, который мог бы управлять её перемещениями. И, тем не менее, мы не жалеем о выборе — у Unigine потрясающе «чистый» рендер. Его картинка ласкает взгляд и этим компенсирует другие недостатки. Производительность неплохая, хотя Роману приходится очень нелегко в борьбе за лишние несколько fps. Он придумывает невероятные уловки, чтобы оптимизировать игру. Вы стоите в юрте, в окружении сотни динамических предметов и сотен мегабайт текстур, сосредоточенных на крохотной площади, смотрите через дверной проём вдаль, на холм в трёх километрах от вас, и видите, как в реке динамически отражается рощица деревьев. Вы должны, при этом, чувствовать себя комфортно, мягко, без «тормозов» перемещаясь по виртуальному пространству. Реализовать это не так просто. (напомню на дворе был 2012 год) игра Oil Rush сама по себе ничего интересного не представляет. По сути это лишь демонстрация возможностей движка, а не игра. Можете погуглить если интересно. Что еще подвело игру - игровое наполнение, сюжетные неувязки, нестандартность, да и что там греха таить - откровенная слепая вера в успех без трезвого расчета. Поэтому если смотреть в ключе финансового успеха - игра представляет собой огромный провал. Можно лишь посочувствовать авторам, которые смело и рьяно взялись за дело, но в итоге получили ... ничего. В своем предыдущем посте, где я делился впечатлениями об игре, я упомянул такой вопрос: будет ли продолжение ? Если бы я был автором, то скорее всего ответил бы - НЕТ ! Почему ? Ну вы сами наверное понимаете почему - основываясь на выводах из всего вышеизложенного. Поэтому если кто-то и сделает продолжение, то по всей видимости не те кто выпускал первую игру. Так что ребята, коммерческий успех игры и успех игры у пользователей это две совершенно разные стихии. Если игра делается только ради прибыли, то пострадают несомненно юзеры. И наоборот если игра настоящая ИНДИ, как Cradle, то её ждет финансовый провал. Игра будет крутейшая с точки зрения проделанной работы и вложенной в неё души. Я просто нигде еще не видел таких игр как Cradle, правда. Но увы. Продолжения у неё нет и не будет. Потому что на этом обычно ставят большую и жирную точку. А каково ваше мнение на этот счет ? Знаете ли вы еще игры, которые были бы финансово неуспешны, но игрокам очень понравились ? Поделитесь информацией.
![]()
Проследить за обсуждением статьи можно здесь - Cradle / Колыбель история неуспеха
Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 Урок 1 Основные операторы языка C++ |
||
Данный небольшой урок является введением в программирование на C++ в MSVS 2008 Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал) |
||
[назад] [далее] [к содержанию] | ||
Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 | ||
В предыдущем уроке мы создали небольшой калькулятор. Этот урок позволил нам бегло познакомиться с некоторыми из конструкций языка C++ и некоторыми функциями. | ||
Теперь пришло время начать освещение основных базовых конструкций языка C++ на конкретных примерах Основные операторы (statements) языка - этой теме посвящен следующий раздел MSVS 2008 Documentation (далее просто Help) - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages - использование операторов помеченных меткой; - построение выражений; - пустой оператор; - операторы наполнения (логические скобки); - операторы выбора (ветвлений); - операторы организации циклов; - операторы перехода (передачи управления); - операторы объявления переменных; - операторы обработки исключений; |
||
- использование операторов помеченных меткой; метка (label) это особый тип идентификатора, который позволяет пометить нужную строку кода в программе содержащую исполнимый оператор, а затем использовать имя этой метки в операторах передачи управления и выбора. Пример из MSVS 2008 Help //
labels_with_goto.cpp cout << "testing" << endl;
Test2: |
||
данный пример рассчитан на консольное приложение. Как видим в отличие от delphi метка не требует предварительного объявления. Достаточно лишь указать допустимый идентификатор метки (Слово начинающееся с буквы) и закончить его двоеточием указав в нужном месте программы. Метка всегда указывает на исполнимый оператор! Даже если в этом месте будет записана строка комментария например так - Test2: // будет считаться, что метка указывает именно на исполнимый оператор, все незначащие строки (комментарии) при этом игнорируются. |
||
- построение выражений; операторы выражений приводят к вычислению какого-либо результата, никакой передачи управления или итерации при этом не происходит. Выражение должно завершаться точкой с запятой. Примеры выражений: coord_x = coord_x + 10 * MoveSpeed * TimeCounter; absc2 = sqrt( abs ( c1 ) ); |
||
- пустой оператор; Это строка содержащая лишь точку с запятой, т.е. ; |
||
- операторы наполнения (логические скобки); это пара фигурных скобок { и }. Применяется как блок операторов там, где вместо одного оператора нужно использовать целую группу. Блок может не содержать ни одного оператора вообще, тогда это просто пустой блок. Пример: if(
Amount > 100 )
}
Все переменные объявленные внутри блока без префикса static являются локальными для данного блока. |
||
- операторы выбора (ветвлений); оператор switch - оператор ветвлений мы уже сталкивались с этим оператором в предыдущем уроке, когда писали пример простейшего калькулятора форма записи этого оператора switch
( expression ) выражение в скобках должно давать целочисленный результат каждый оператор case позволяет выполнять заданный блок кода в зависимости от указанного целочисленного значения блок кода при default выполняется когда значению выражения не соответствует ни одна строка с оператором case Пример: //
switch_statement2.cpp Если Вы программировали на Delphi, то заметите, что аналогом оператора switch в delphi является оператор case. Т.е. switch в C++ и case в Delphi это одно и то же. Отличия состоят в синтаксисе, наличие строки default (в C++) и применении оператора break (в C++). к операторам выбора также относится оператор условия if if
( expression ) как видим он похож на использование оператора if в delphi, с тем лишь отличием, что слово then не используется. Пример: //
if_else_statement.cpp int
main() { Поэтому в C++ аналогом delphi-конструкции if SomeObject <> nil then {...} else {...}; будет являться if SomeObject { } else { } |
||
- операторы организации циклов; служат для выполнения одной и той же группы операторов итеративно. Различают циклы с предусловием while, пост условием do и цикл с заданным количеством итераций for while
( expression ) в цикле while группа операторов statement выполняется пока значение выражения expression не достигнет нуля Пример: кусок кода на delphi7 aCurrentCharnum
:= 0; при условии, что требуемые переменные объявлены, на C++ будет выглядеть так int
aCurrentCharnum = 0; |
||
Обязательно напишите и проверьте работу этого кода в приложении наподобие HelloWorldCLR | ||
оператор цикла с пост-условием do do оператор do является аналогом цикла repeat..until в delphi Пример: int
i = 0;
do по нажатию на кнопку на ее поверхности выводится 012 |
||
цикл for for
( init-expression ; cond-expression ; loop-expression ) про цикл for в документации по MSVS рассказано много интересных вещей, так что за подробностями обратитесь к ней. Кратко же использование цикла for выглядит так - Пример: String^ SomeStr = L"";
for (int i = 0; i<5; i++) на поверхности кнопки появляется текст 01234 |
||
- операторы перехода (передачи управления); к операторам перехода относятся операторы изменяющие обычный последовательный ход исполнения программы - break, continue, return, goto оператор break аналогичен оператору break в delphi - служит для немедленного выхода из цикла for, while и do, кроме того используется для выхода из ветви оператора switch (в delphi для этих целей не применяется) оператор continue аналогичен оператору continue в delphi - служит для немедленного перехода к следующей итерации цикла for, while и do оператор return return [expression] служит для возврата из функции или процедуры. Если выполняется возврат из функции, то значение выражения expression возвращается в качестве результата. Для функций void (процедур) никакого результата не возвращается. Для возврата из процедуры (функция с результатом void) специального вызова return не требуется. Выполнение процедуры будет закончено там, где кончаются ее логические скобки. оператор goto служит для безусловной передачи управления на указанную метку - goto identifier ; Примеры: для корректного выполнения примера в приложении Windows Forms добавьте на форму поле ввода textBox1 int somenum = Convert::ToInt32(textBox1->Text);
for (int i = somenum; i < (somenum+3); i++) данный код добавьте в обработчик нажатия на кнопку button1 размещенную на форме Form1 по нажатию на кнопку в поле textBox1 вместо введенного значения появляется значение на 1 большее в случае когда поля textBox1 пусто вырабатывается исключительная ситуация. Ее можно избежать, если для свойства Text у textBox1 задать любое числовое значение, которое будет значением по умолчанию //
continue_statement.cpp
printf_s("after the do loop\n"); //
return_statement2.cpp int
max ( int a, int b ) int
main()
printf_s("\n%d is bigger\n", max( nOne, nTwo )); //
goto_statement.cpp
for ( i = 0; i < 10; i++ )
// This message does not print: |
||
в следующем уроке мы рассмотрим операторы объявления переменных и обработки исключений | ||
[назад] [далее] [к содержанию] |
![]() |
||
Уроки Photoshop | ||
Данный сборник уроков рассчитан на освоение работы в Adobe Photoshop версий 6, 7, 8, 9, 10, 11 и выше. Для более ранних и более поздних версий возможны некоторые отличия в описаных действиях. Общие описанные принципы остаются неизменными! В сборник вошли 35 статей - быстрый старт, быстрый старт 2, раскраска, варианты раскраски, текстуры, горная порода, синтез, трава, песок, набор текстур, глина, ткань, огонь, растения, металл, элемент, небо, камни, кора, вода, древесина, шерсть, обработка фото, фотомонтаж, эффекты, ретушь, оцветнение, визитка, открытка, виньетка, штабдок, персонаж, gif, web-арт, RGB / HSB / CMYK |
||
![]() |
||
Купить программу Уроки Photoshop | ||
Требования к читателю | ||
У читателя предполагается наличие базовых принципов владения ПК - пониманием работы в Windows и типовых Windows-приложениях типа Проводник (Мой компьютер). | ||
На компьютере необходимо иметь установленную программу Adobe Photoshop одной из версий от 6 до 9. Для версий ниже 6 или выше 9 могут быть более или менее значительные расхождения с тем, что описано. | ||
![]() |
||
Рисуем волка из мультфильма - Показанная техника рисования применялась при создании мультфильма в эмуляторе электронной игры ИМ-02 "Ну, Погоди!" | ||
Содержание: | ||
![]() |
||
Быстрый старт - основные элементы окна, открытие графических файлов, инструмент Лупа (Zoom Tool), растровые изображения, определение объема изображения в памяти; | ||
![]() |
||
Быстрый старт page 2 - о форматах графических файлов, векторная графика, создание нового изображения, рисование контуров, сохранение файла. | ||
![]() |
||
Раскраска - использование слоёв, заливка, инструмент выделения Волшебная палочка; | ||
![]() |
||
Варианты раскраски - градиентные заливки, применение инструментов Кисть, Осветление, Затемнение. | ||
Для тех, кто постиг предыдущий материал (stage 1) | ||
![]() |
||
Текстуры, текстурные заливки - понятие текстуры, текстурной заливки, создание тайловых (бесшовных) текстур. | ||
![]() |
||
Создаем текстуру горной породы на основе фотографии реального образца - описаны методы исследования структуры текстуры и процесс создания фотореалистичной текстуры. | ||
![]() |
||
Создание вариантов на тему созданной текстуры - описываются методы исследования и синтеза новых текстур. | ||
![]() |
||
Рисование текстуры травы - описывается методика создания однородных текстур на примере создания куста травы с последующим распространением на всём пространстве текстуры. Применив Фильтр Смещение (Offset) и заполнив швы можно получить бесшовную текстуру. | ||
![]() |
||
Рисование текстуры песка, детализация текстуры - описывается способ рисования песка, добавление деталей (теней, бликов, камешков и т.п.) | ||
![]() |
||
Подготовка набора текстур для игрового (художественного) проекта - некоторые основные типы текстур, особенности их создания, детализации. Рассматриваются принципы создания огоня, воды, неба, ткани, металла, шерсти, дерева и некоторых других. | ||
![]() |
||
Рисование текстур глина, грязь - с использованием Фильтров Шум, размытие по Гауссу описан пошаговый процесс создания текстуры, похожей на глину, грязь. Показан способ добавления деталей - трещин на пересохшей глине. | ||
![]() |
||
Создание тканеподобных текстур - показано как из отдельных элементов строится текстура. Варьированием элементов, фильтров и эффектов можно достичь самых различных результатов. Показана работа вначале с обесцвеченной (черно-белой текстурой) для лучшего анализа светлотности. Затем текстура оцветняется. Приводятся и 2 альтернативных варианта результатов. | ||
![]() |
||
Огонь, создание огня. Описывается рисование текстуры огня Кистью и при помощи фильтров. Создание альфа-маски, анимация в Image Ready. | ||
![]() |
||
Создание растительных текстур и объектов на примере создания текстуры дерева. Тестирование полученных текстур на 3D-моделях. | ||
![]() |
||
Продолжаем создавать основные типы текстур - металл. | ||
![]() |
||
Остановимся на создании элементно-упорядоченных текстур на примере создания чешуевидной текстуры | ||
![]() |
||
Займемся рисованием небесных текстур - небо и облака. | ||
![]() |
||
Нарисуем обломки скал и камни. | ||
![]() |
||
Создаем кору дерева. | ||
![]() |
||
Создание анимированной текстуры (альфа-маски) для воды | ||
![]() |
||
Создание древесины - просто и быстро | ||
![]() |
||
Создаем шерсть животного - еще быстрее, еще проще | ||
Ну что ж, мы очень много времени уделили рисованию, созданию от нуля, совершенствованию, на примере создания некоторых основных типов текстур. Если Вы всерьез хотите заняться текстурами и рисованием текстур, то этого материала, конечно же совсем недостаточно. Вам следует заняться дальнейшей проработкой материала - подбором необходимых натуральных образцов, уделению внимания деталям, созданию разновидностей, документированию тех новых особенностей, которые Вы обнаружите в ходе работы. И так, шаг за шагом Вы придете к созданию своей личной библиотеки текстур и алгоритмов их создания. Главное теперь - это не останавливаться на достигнутом и продолжать работу далее. А сейчас мы займемся рассмотрением вопросов, по большей части посвященных фотодизайну и обработке цифрового фото, хотя, будут затронуты и вопросы креативной работы, создания от нуля - в соответствующих темах. Приступим! | ||
![]() |
||
Обработка фото - устранение эффекта красных глаз, цветокоррекция, очистка от пыли и царапин | ||
![]() |
||
Основы фотомонтажа - использование ластика для правильного стирания фона, изменения положения, масштаба вставляемых объектов, цветокоррекция, дополнительные элементы сцены, построение трехмерной вспомогательной сетки для облегчения ориентирования объектов в сцене. Также разобраны некоторые типичные ошибки фотомонтажа. | ||
![]() |
||
Применение эффектов слоев к изображениям, тексту - показано на примере рисования клеточной сетки, поэкспериментировав с применением эффектов к ней Вы быстро поймете что и как. | ||
![]() |
||
Ретушь старых фотографий - показаны основные инструменты восстановления, показан способ Ретуши с соблюдением критерия Качество/Скорость. | ||
![]() |
||
Обесцвечивание цветных, оцветнение черно-белых фотографий - показаны способы оцветнения, обесцвечивания. | ||
![]() |
||
Создание визитки - придумываем и создаем дизайн визитки сотрудника фруктовой компании | ||
![]() |
||
Создание открытки - как сделать интересную фотооткрытку при помощи фотомонтажа | ||
![]() |
||
Создание виньеток - Вам будет рассказано и показано как создать виньетку для выпускников садика, школы или института | ||
![]() |
||
Изображения для компьютерных игр - показан пример раскрашенной текстурной развертки для 3D-модели, рассказано о создании детализированных текстур. | ||
![]() |
||
Рисование персонажа для компьютерной игры - рассказано об основных моментах создания персонажа человека, имеется готовая модель персонажа в формате 3ds max7, которую можно использовать как манекен для экспериментов с рисованием текстуры персонажа | ||
![]() |
||
Создание анимаций для Web-публикаций в формате GIF (используем Image Ready) | ||
![]() |
||
Графика для web-публикаций - пример создания объемной кнопки с надписью. | ||
![]() |
||
Принципы растровой графики, цветовые модели (RGB, HSB, CMYK, градации серого, Lab, Web). Рассказано о формировании изображения на экране монитора, о том как воспринимает цвет человеческий глаз и о том, что такое цветовые модели. | ||