Създаване на игри с помощта на 3D’sMAX и Delphi
Живея в отдалечен сибирски град, наречен Ангарск. Сега съм в 11 клас (по-точно в 3-та година на лицея). Все още не работя никъде, само понякога изпълнявам поръчки за интериорен дизайн с майка ми (майка ми е дизайнер / архитект, има страхотни идеи, но изобщо не знае как да работи на компютър).
Въпреки че завърших художественото училище в катедрата по архитектура с отлични оценки (е, как да не се похваля :))), но все пак ще действам и ще се уча за програмист.
Изкуството ми е по-скоро хоби. Макс започна да учи преди година, абсолютно случайно видя диска и се заинтересува. С течение на времето се проточи :) (мисля, че мнозина ще разберат). Обичам да рисувам, да играя компютърни игри, да програмирам, а също и да свиря на китара.
Този урок, разбира се, няма да ви научи как да правите игри като половината, но мисля, че можете да научите много интересни неща от него, свързани с игрите, и най-важното, за създаването на модели за тях.
Първо, нека поговорим за създаването на модели и текстури.
Моделирането на сцената за играта е описано вуроци - Моделиране на ниво дизайн, но не се казва как да се експортира след това, което се оказа не толкова лесно!
Цялото моделиране се проведе в 7 макс. Чрез много проби и грешки,следният алгоритъм за подготовка на модела, текстурите и тяхното експортиране е изобретен:
1. Изработка на low poly модел (модели ако е ниво).
2. Текстурирайте го, като използвате модификатораUnwrap UVW (задължително!)
3.Разопаковайте UVW -> edit задайтеmapping = flattern, сегаUnwrap UVW запишете във файл. (файл->запазване )
4. С избран обект,rendering -> render to texture, настройки там:output, path – папка, в която ще бъде запазена текстурата.
След това, където еизход, имате нужданатиснетедобави... изберетепълна карта, виме и тип на файл изберете името и типа на файла,размер - размер на текстурата (под 256 е по-добре да не задавате - няма да е красиво, освен ако, разбира се, обектът не е оскъден :-))
5. Сега внимание! Натиснетеunwrap only, към нашия обект ще бъде добавен модификатор, изберете го и натиснетеEDIT file->load - заредете предварително запазенияunwrap.
6. Сега вrender to texture щракнете върхуrender. Той ще изобрази текстурата в предварително определената папка.
7. Сега в главния прозорецfile->export selected поставете отметка в квадратчето и OK.
Ако това е ниво, тогава всъщност се оказва, че след като сме събрали нивото в max, ние го разделяме на съставни обекти и го съставяме отново в играта. Естествено местоположението на обекта спрямо центъра на сцената ще бъде записано в 3ds, така че това трябва да се вземе предвид, тъй като тази точка ще бъде поставена в програмата на определеното място.
Всичко! Сега имаме обект и текстура към него (между другото е удобно да обработваме такива текстури във Photoshop, например да добавяме графити към стените). Тази последователност, разбира се, не е единствената вярна, но е вярна!
![]() | ![]() |
В някои игри сенките се изчисляват в самата игра или можете да ги изчислите на максимум, така че ще има по-малко натоварване на компютъра, но ще има по-малко реализъм.
Ако цялото ниво е създадено в един max файл, тогава е удобно да промените настройките вcustomize -> настройки за решетка и прилепване -> homegr >
Сега за софтуерната част от работата.
Реших да програмирам в Delphi, защото го познавам добре (въпреки че, разбира се, нещо като C ++ е за предпочитане за наистина мощни игри, но е наистина трудно :-)))
Първо, започнах да търся компоненти, които да го улеснятработа с 3d графики, т.к работата с вградените функции на Delphi би била трудна за работа поради трудния достъп до тези функции (поне според мен :)). И редица такива компоненти бяха открити, но повечето от тях бяха с ограничени възможности и следователно не дадоха необходимото поле за размисъл. Затова беше избрана библиотека, нареченаGLScene, която дава достъп до много от функциите наOpenGl. Можете да получите тази библиотека от www.glscene.org (тя е абсолютно безплатна). Такава схема на проекта е измислена (давам я само като пример).
По тази схема са създадени основните форми и модули в проекта.
След създаването на нивото беше необходимо да се създадат обекти, с които може да се взаимодейства, което означаваше създаване на модул за обработка на скриптове, което беше взето предвид на ранен етап. Тук не е използвано нищо необичайно - просто четене ред по ред на скрипта, предаван от параметрите (*.txt) и неговата обработка. Също така беше решено някои обекти да предават някои параметри вместо скрипт (растения, анимирани обекти и стени).
Отделно за стените (не знаех как да ги нарека, затова станаха стени) - тези обекти са невидими, но героят взаимодейства с тях. Имаме нужда от такива предмети, за да ограничим пространството за движение около нивото. Втората област на тяхното приложение са стълбите. Факт е, че би било трудно да се приложи изкачване на стълби, тъй като всяко от тях би създало пречка за движение, така че героят се изкачва по наклонена повърхност (в края на краищата не героят всъщност взаимодейства, а невидима сфера).
Е, по принцип завърших урока. Надявам се да ви е харесало.
Реших да не напрягам урока със скрийншоти от моята игра, можете да ги видитекато моята работаиграта.
Въпроси и желания на сапун [email protected] или на ICQ 297-984-288, но по-добре на сапун (рядко влизам в Интернет).
Повече подробности за програмирането или моделирането за игри може би ще бъдат обсъдени в следващия урок, ако, разбира се, има интерес към урока :-), но засега това е всичко.