Результаты поиска
| |
Alkosha | Дата: Вторник, 20 Января 2015, 00:19 | Сообщение # 81 | Тема: Code::Blocks + irrlicht |
участник
Сейчас нет на сайте
| Цитата set16 ( ) Как исправить?
пересобрать исходник под ту версию GCC, то работает в твоём код-блоксе. Не?
|
|
| |
Alkosha | Дата: Суббота, 17 Января 2015, 16:50 | Сообщение # 82 | Тема: Концепт-арт |
участник
Сейчас нет на сайте
| Концепт к игре на хз-спектрум.
Сама игра: http://www.worldofspectrum.org/infoseekid.cgi?id=0027211
Добавлено (15 января 2015, 22:51) --------------------------------------------- Пропорции головы, кистей рук сейчас бы подправил. В 2011-ом ещё жутко косячил с человекоподобными пропорциями.
Добавлено (17 января 2015, 16:50) --------------------------------------------- 4 года назад назад рисовал концепты к игре, где в главной роли была бы тёлочка киборг. Но в тридэ даже спустя такое время не могу ничего толкового замоделить.
В частности застопорился на текстурировании, риггинге.
Сообщение отредактировал Alkosha - Суббота, 17 Января 2015, 16:50 |
|
| |
Alkosha | Дата: Воскресенье, 11 Января 2015, 21:42 | Сообщение # 83 | Тема: Моделирование "волос". (3ds max) |
участник
Сейчас нет на сайте
| Как замоделить волосы полигонами ? А самое главное, правильно затекстурить с альфа-каналом. И так, чтоб импортировать в дальнейшем в Юньку. Или может есть уже готовая модель волосни с ригом?
Волосы хочу примерно такие (только в 3д, разумеется):
|
|
| |
Alkosha | Дата: Воскресенье, 11 Января 2015, 14:51 | Сообщение # 84 | Тема: Сегментная анимация. |
участник
Сейчас нет на сайте
| Разбил персонажа на отдельные спрайты-сегменты. Теперь надо бы заставить их слаженно двигаться. На мегадрайве зачастую была подобного рода анимация. Особенно в играх от Treasure: видео №1, видео №2 Или Konami: Видео №1, видео №2
На самом деле примеров куча. Но мне хотя бы без вращений осилить анимашку, и с гораздо меньшим количеством спрайтов.
Пока вот что получается (пока лишь на примере двух ключевых кадров): ГИФ
Мне кажется, сам подход не корректный. Код class myKingOfHell { SDL_Rect Dest; SDL_Texture* molottex; float molotx,moloty; SDL_Texture* torsotex; float torsox,torsoy; SDL_Texture* jawstex; float jawsx,jawsy; SDL_Texture* hooktex; float hookx,hooky;
int animkey; float dx,dy;
void endpoint(float nowX, float nowY, float endX, float endY, float speed) { auto angle=-atan2(nowX-endX,nowY-endY)/3.14*180; dx=sin(angle*3.14/180)*speed; dy=-cos(angle*3.14/180)*speed; }
public: float x=400,y; int state=1; // состояние 0=disable 1= idle 2= ползёт 3= атака
myKingOfHell() { animkey=0;
torsox=0; torsoy=0; molotx=15; moloty=190; jawsx=25; jawsy=100; hookx=110; hooky=100; }
void update() { if(state==1) { if(animkey==0) { endpoint(jawsx,jawsy,37,107,0.2); jawsx+=dx; jawsy+=dy;
endpoint(molotx,moloty,15,190,0.4); molotx+=dx; moloty+=dy;
endpoint(hookx,hooky,128,140,0.5); hookx+=dx; hooky+=dy; if(hookx>=128)animkey=1; }
if(animkey==1) { endpoint(jawsx,jawsy,25,100,0.2); jawsx+=dx; jawsy+=dy;
endpoint(molotx,moloty,20,200,0.2); molotx+=dx; moloty+=dy;
endpoint(hookx,hooky,110,100,1); hookx+=dx; hooky+=dy;
if(hookx<=110)animkey=0; }
} }
void display() { if(molottex==NULL) { molottex = IMG_LoadTexture(renderer, "img//koh1.png"); } if(torsotex==NULL) { torsotex = IMG_LoadTexture(renderer, "img//koh2.png"); } if(jawstex==NULL) { jawstex = IMG_LoadTexture(renderer, "img//koh3.png"); } if(hooktex==NULL) { hooktex = IMG_LoadTexture(renderer, "img//koh4.png"); }
Dest.x=molotx-cum.x+x; Dest.y=moloty-cum.y+y; Dest.w=341; Dest.h=208; if(Dest.x>-341&&Dest.x<800) { SDL_RenderCopy(renderer, molottex , NULL, &Dest); }
Dest.x=torsox-cum.x+x; Dest.y=torsoy-cum.y+y; Dest.w=554; Dest.h=453; if(Dest.x>-554&&Dest.x<800) { SDL_RenderCopy(renderer, torsotex , NULL, &Dest); } Dest.x=jawsx-cum.x+x; Dest.y=jawsy-cum.y+y; Dest.w=143; Dest.h=142; if(Dest.x>-143&&Dest.x<800) { SDL_RenderCopy(renderer, jawstex , NULL, &Dest); }
Dest.x=hookx-cum.x+x; Dest.y=hooky-cum.y+y; Dest.w=393; Dest.h=275; if(Dest.x>-393&&Dest.x<800) { SDL_RenderCopy(renderer,hooktex , NULL, &Dest); }
}
}; myKingOfHell KOH;
animkey = номер ключевого кадра. Функция endpoint() отвечает за перемещение отдельно взятого спрайта. Тут ещё вручную задаю скорость перемещения каждого. Было бы неплохо, если б скорость сама определялась между ключевыми кадрами. Добавлено (11 января 2015, 14:51) --------------------------------------------- Там когда сегмент достигает до конечной - дрожит. Размах этого дрожания зависит от скорости. Вот эту траблу надо бы убрать.
Сообщение отредактировал Alkosha - Воскресенье, 11 Января 2015, 13:54 |
|
| |
Alkosha | Дата: Пятница, 09 Января 2015, 20:06 | Сообщение # 85 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) projection matrix
И ? чего-то не встречал в SDL-е ничего связанного с матрицами.
Цитата HPlusDiese ( ) Ты ещё наверное и на FFP всё делаешь?
Что за аббревиатура? Fixed Function Pipeline ?
Сообщение отредактировал Alkosha - Суббота, 10 Января 2015, 17:24 |
|
| |
Alkosha | Дата: Четверг, 08 Января 2015, 13:07 | Сообщение # 86 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата DungeonLord ( ) чтобы отражение не наползало на оригинал
Не в этом дело. Я не планирую делать так, чтоб рокИр окунался по пояс в воду. Там просто когда камера двигается по Y само отражение немного тоже двигается.Добавлено (08 января 2015, 13:07) --------------------------------------------- Да ладно. И так сойдёт. Слишком много времени уделяю обычному не геймплейному декору.
|
|
| |
Alkosha | Дата: Четверг, 08 Января 2015, 11:38 | Сообщение # 87 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) Весело.
Не пойму иронии. Вам известен иной метод? Изначально я зумил рендерер, но он масштабируется относительно начала декаротвых координат (левого верхнего угла), то есть мне нужно было дополнительно смещать объекты на игровом поле. Рендерить всё в текстуру и после этого извращаться с ней как угодно - гораздо проще.
|
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 23:47 | Сообщение # 88 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| dstrect.y= dstrect.y + 10 * cum.z * cum.y - cum.y * 2 * cum.z;
ГИФ
dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2;
ГИФ
dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2 * cum.z;
ГИФ
|
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 20:09 | Сообщение # 89 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата DungeonLord ( ) dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2;
В этом случае есть смещение при зуме.
|
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 19:17 | Сообщение # 90 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Хыыы... Прикольная апичатка в названии темы. Добавлено (07 января 2015, 19:17) --------------------------------------------- По совету Снэйка уже более-менее нормально работает. Только когда камера двигается по Y, отражённая текстура немного "плывёт". Зато по Z строго на фиксированном месте , как и положено. Может на текстуре "воды" нормально будет смотреться.
|
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 19:00 | Сообщение # 91 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Для ясности картины, попытаюсь пояснить подробнее:
Есть текстурка texTarget2 размером на весь экран (800*600), на неё рендерятся спрайты с координатами x=x-cum.x и y=y-cum.y. Эту же текстуру флиппаю по вертикали. Но так как "отражение" должно быть в той системе координат, к которой привязана камера, надо учитывать ещё смещение камеры по Y при выводе отражённой текстуры.
Приближение\удаление камеры происходит за счёт изменения размеров этого самого texTarget2.
Сообщение отредактировал Alkosha - Среда, 07 Января 2015, 19:01 |
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 18:35 | Сообщение # 92 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Цитата dstrect.y = dstrect.y+dstrect.h*3/4; попробуй Не. Всё равно чего-то не то.
Сообщение отредактировал Alkosha - Среда, 07 Января 2015, 18:35 |
|
| |
Alkosha | Дата: Среда, 07 Января 2015, 15:10 | Сообщение # 93 | Тема: Помогите рачитать оффсет отражённой текстуры. |
участник
Сейчас нет на сайте
| Вроде сперва не в тот раздел сунулся с данным вопросом. -> http://gcup.ru/forum/45-42481-1 Там относительно высокоуровневые движки обсуждаются. А я шаманю на SDL2.
Так вот, проблема в том, что не могу расчитать координаты отражённой текстуры.
Получается так, что при масштабировании отражения "съезжают"
Гиф-анимашка
Код SDL_Rect dstrect; dstrect.w=800*cum.z; dstrect.h=600*cum.z; dstrect.x=400-400*cum.z; dstrect.y=300-300*cum.z; SDL_Point center; center.x=400; center.y=300;
SDL_SetTextureBlendMode(texTarget,SDL_BLENDMODE_BLEND); SDL_SetTextureBlendMode(texTarget2,SDL_BLENDMODE_BLEND);
SDL_SetRenderTarget(renderer, NULL); SDL_RenderCopyEx(renderer, texTarget, NULL, &dstrect, cum.angle, ¢er, SDL_FLIP_NONE);
SDL_RenderCopyEx(renderer, texTarget2, NULL, &dstrect, cum.angle, ¢er, SDL_FLIP_NONE);
dstrect.y= dstrect.y+200-cum.y*2; dstrect.h/=2;
SDL_SetTextureAlphaMod(texTarget2,100); SDL_RenderCopyEx(renderer, texTarget2, NULL, &dstrect, cum.angle, ¢er, SDL_FLIP_VERTICAL);
Где texTarget - бэграунд, texTarget2 = передний план, который выводится дважды, в нормальном и в зеркальном виде. cum - класс камеры. Вот тут нужно подобрать оффсет: dstrect.y= dstrect.y+200-cum.y*2;
И ещё. dstrect.h/=2; - это плющит отражённую текстуру по вертикали вдвое.
Сообщение отредактировал Alkosha - Среда, 07 Января 2015, 15:21 |
|
| |
Alkosha | Дата: Вторник, 06 Января 2015, 13:37 | Сообщение # 94 | Тема: Работы новичков |
участник
Сейчас нет на сайте
| фан-арт.
А это выжигал на ДВП, только тогда ещё калечный фотик был на телефоне (сфоткано на сименс ц75, хыыы).
|
|
| |
Alkosha | Дата: Понедельник, 05 Января 2015, 16:19 | Сообщение # 95 | Тема: Работы новичков |
участник
Сейчас нет на сайте
| От концепта к пиксель-арту.
Добавлено (03 января 2015, 01:28) --------------------------------------------- В память о моих преподавателях по электронике.
P.S. я 1 минуту рисовал одной левой не судите строго
Добавлено (05 января 2015, 16:19) --------------------------------------------- Снова Metalix Zone.
Сообщение отредактировал Alkosha - Понедельник, 05 Января 2015, 16:19 |
|
| |
Alkosha | Дата: Воскресенье, 04 Января 2015, 23:44 | Сообщение # 96 | Тема: Нужны 2д художники и аниматоры |
участник
Сейчас нет на сайте
| Цитата Alter_Rhyme ( ) Ну в прицепи вектор - гораздо легче растра.
Если собираешься нарисовать один лишь эллипс с градиентом, то да.
Но хотелось бы посмотреть, как ты бы повторил такое, например.
|
|
| |
Alkosha | Дата: Воскресенье, 04 Января 2015, 19:51 | Сообщение # 97 | Тема: Нужны 2д художники и аниматоры |
участник
Сейчас нет на сайте
| Ну а само очертание "игры" хоть есть?
Цитата DEMON51 ( ) , похожей на World Of Goo.
Ни разу не пробовал подобное рисовать. Да и не играл я в неё. Видел лишь скриншоты. Судя по всему, там векторно рисовалось всё. В corel draw, например.
|
|
| |
Alkosha | Дата: Суббота, 03 Января 2015, 01:21 | Сообщение # 98 | Тема: Нужны 2д художники и аниматоры |
участник
Сейчас нет на сайте
| Заманчиво. Но увы, мой скилл пока ещё слабоват.
|
|
| |
Alkosha | Дата: Четверг, 01 Января 2015, 15:46 | Сообщение # 99 | Тема: Работы новичков |
участник
Сейчас нет на сайте
| Несколько дней назад приобрёл диджитайзер. Пока вот такая мазня получается.
Набросал концепт-арт к "Металикс-Зоне"
|
|
| |
Alkosha | Дата: Суббота, 27 Декабря 2014, 15:25 | Сообщение # 100 | Тема: "Отражения" SDL2. |
участник
Сейчас нет на сайте
| Цитата Snake174 ( ) Можно в принципе ещё делать всё на чистом OpenGL, а SDL использовать только для создания окна и обработки ввода.
Про это я знаю. А я говорил про чистый SDL2.
Добавлено (24 декабря 2014, 11:51) --------------------------------------------- Когда-то давно пытался настроить проект кодблокса на openGL+SDL, так ничего и не получилось. Раздельно openGL-проект и SDL-проект пашут, а в одном проекте - шляпа. С тех пор я и забил.
Добавлено (24 декабря 2014, 11:54) --------------------------------------------- Цитата Snake174 ( ) а SDL использовать только для создания окна и обработки ввода.
По сути, тот же glut можно использовать, не обязательно SDL
Добавлено (27 декабря 2014, 15:25) --------------------------------------------- никак не могу расчитать оффсет при масштабировании.
Textarget - нормальное изображение, Textarget2 - отзеркаленное.
(cum - класс камеры) Спрайты на textarget размещаются по X-cum.x, Y-cum.y
Код SDL_Rect dstrect; dstrect.w=800*cum.z; dstrect.h=600*cum.z; dstrect.x=400-400*cum.z; dstrect.y=300-300*cum.z; SDL_Point center; center.x=400; center.y=300;
SDL_SetTextureBlendMode(texTarget,SDL_BLENDMODE_BLEND); SDL_SetTextureBlendMode(texTarget2,SDL_BLENDMODE_BLEND);
SDL_SetRenderTarget(renderer, NULL); SDL_RenderCopyEx(renderer, texTarget, NULL, &dstrect, cum.angle, ¢er, SDL_FLIP_NONE); //БЭКГРАУНД (1-ый план)
SDL_RenderCopyEx(renderer, texTarget2, NULL, &dstrect, cum.angle, ¢er, SDL_FLIP_NONE); // НОРМАЛЬНОЕ ИЗОБРАЖЕНИЕ (2-ой план)
dstrect.y=-300*cum.z; // ВОТ ТУТА НАДО КАК-ТО РАСЧИТАТь ПОЗИЦИОНИРОВАНИЕ ТЕКСТУРЫ ПО Y
SDL_SetTextureAlphaMod(texTarget2,100); SDL_RenderCopyEx(renderer, texTarget2, NULL, &dstrect, cum.angle, ¢er, SDL_FLIP_VERTICAL); // ОТРАЖЕНИЕ
effects.shading(); gui.display(); dialog.display(); SDL_RenderPresent(renderer); SDL_DestroyTexture(texTarget2);
Сообщение отредактировал Alkosha - Суббота, 27 Декабря 2014, 16:02 |
|
| |
|