Модели

Автор Chuzhoi, 11 июля 2009 17:46:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

XendroX

Нет предметы на столах внутриигровые. Лампа на рабочем столе на туалетном свечка %)

nemyax

[off]Ага, ок. А то там беда с тенями — повключай-повыключай лампу и увидишь медленную финскую тень.[/off]
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

XendroX

Да видел, она чего-то притормаживает..

XendroX

Решил чуток разобраться со скриптами сделал анимированный грамафон из существующей модели, прикольная штука скрипты правда Ду Вайл у меня как я хотел так и не заработал )))

http://www.youtube.com/watch?v=GE6aopgS-7Q&feature=youtu.be

nemyax

Цитата: XendroX от 14 марта 2014 01:26:48
Ду Вайл у меня как я хотел так и не заработал
А как ты хотел и как он работал? Например, в C++ дувайл безусловно отрабатывает первый раз, а потом уже по условию.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

XendroX

Так я знаю как он работает, я базовый курс по с ++ проходил, просто для этого скрипта за базу я взял скрипт от электростанции из тренировочной миссии, там 3 функции: запуск, остановка и главная которая устанавливает переменную вращение в 1 если 0 и в 0 если 1, вообщем через иф елс работет по переменной вращение. Само вращение реализовано в функии через аксел, дексел, ротэйт, сис.вейт предмет. Я хотел чтоб головка на граммофоне раз в период поднималась и опускалась типа кривая пластинка ну и делала это пока вращение 1, написал через ду вайл но она все равно либо один раз поднимается и один раз опускается - на чем я и остановился, либо продолжает опускаться то есть лупится только последняя функция ротейт, а не весь цикл может крнечно надо в самой функции старт реализовать момент м дефайном переменной и возвратом значения в главную функцию которая отвечает за старт стоп, вчера мне эта мысль в голову не пришла.

nemyax

Цитата: XendroX от 14 марта 2014 09:49:20
устанавливает переменную вращение в 1 если 0 и в 0 если 1, вообщем через иф елс работет по переменной вращение
[off]А как это выглядит?[/off]
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

XendroX

#217
ifndef __NEW__
#define __NEW__

//global variables

float machine_rotating;

void stop_machine ()
{
// Stop rotating the machine in the lockpicking room
   
   $generator_barrel1.accelTime( 0 ); //Разгон
   $generator_barrel1.decelTime( 1 ); //Плавная остановка
   $generator_barrel1.rotate( '0 0 3' ); //Поворот
   sys.trigger($machine_loop); //Осовной звук
   sys.trigger($machine_stop); //Звук остановки
   //sys.wait(0.7); Пауза
   $generator_barrel2.accelTime( 0 ); //Разгон
   $generator_barrel2.decelTime( 1 ); //Остановка
   $generator_barrel2.rotate( '0 -20 0' ); //Поворот
   //sys.waitFor($generator_barrel2);

}

void start_machine ()
{
// Start rotating the machine in the lockpicking room
   
   sys.trigger($machine_start); //Звук пуска
   sys.wait(0.3); //пауза
   $generator_barrel2.accelTime( 1 );// Разгон
   $generator_barrel2.decelTime( 0 ); //Остановка
   $generator_barrel2.rotate( '0 50 0' ); //Поворот
   sys.wait(0.5); //Пауза
   //sys.waitFor($generator_barrel2);
   sys.trigger($machine_loop); //Основной звук
}

void start_machine2 () //Сделал отдельную функцию для головки грамофона, должна двигать головку туды сбды но срабатывает один раз
{
// Start rotating the machine in the lockpicking room
   

   do
   {
   $generator_barrel1.accelTime( 1 ); //разгон
   $generator_barrel1.decelTime( 0 ); //остановка
   $generator_barrel1.rotate( '0 0 3' ); //Поворот
   sys.wait(0.5); //Пауза
   $generator_barrel1.accelTime( 0 ); //Разгон
   $generator_barrel1.decelTime( 1 ); //Остановка
   $generator_barrel1.rotate( '0 0 -3' ); //Поворот обратно
   }
   while (machine_rotating!=0);
}

void trigger_machine ()      //Меин фанкшн  для тригера %)
{
   if (machine_rotating == 0) //Если выключено- включаем
   {
      start_machine ();
      start_machine2 ();
      machine_rotating = 1;
   }
   else if (machine_rotating ==1) //Если включено выключаем
   {
      stop_machine ();
      machine_rotating = 0;
   }
}

#endif // __NEW__

В целом вот так %)

XendroX

Решил снова окунуться в моделирование для дарк мода -

http://forums.thedarkmod.com/topic/15931-builders-bedroom-set/page__pid__355613__st__75#entry355613

MoroseTroll

Так держать :)!

Soul_Tear

Цитата: Chuzhoi от 23 мая 2012 02:15:54
Модель нужно сохранить в ase или lwo. Второй формат предпочтительнее, т. к. меньше весит и чуть быстрее загружается.

Карту нормалей сохраняют в tga, диффузную и спекулярную текстуры - обычно в dds (но если требования к качеству очень высоки, то можно также в tga). Текстуры, как обычно, кладутся  в textures/... и dds/textures/... Как обычно, нужно прописать материал в mat-файле.

Кстати, текстуру (если она предназначена исключительно для модели) можно положить прямо в папку с моделью (models/... и dds/models/...) - главное, чтобы пути в материалах были правильно прописаны. Но мне кажется, это создает путаницу, и я обычно кладу все текстуры в папки textures и dds/textures.

Перед экспортом модели нужно назначить материал. Я не знаю, как это делать в твоей проге, но в Максе это делается так: создается материал и ему назначается диффузная текстура, которая уже должна лежать в нужном месте (в твоем проекте). Затем материал присваивается модели и можно сохранить модель в ase.

Затем этот ase открывается текстовым редактором, в нем ищется строчка типа:
*BITMAP "e:/games/doom3/твой_проект/dds/textures/подпапка/текстура"
и заменяется на:
*BITMAP "//base/textures/подпапка/текстура"
Подразумевается, что имя материала в mat-файле совпадает с именем диффузной текстуры. Если же нет, то после //base/ должно просто следовать имя материала.

После этого можно запускать DR и искать там свою модель.

При сохранении в lwo (я это делал через Lightwave, Макс напрямую не поддерживает) делается проще: модели просто присваивается материал, имя которого совпадает с именем материала в mat-файле. Подробностей не помню, но вроде все работает.

Назначил материал: перетащил свою текстуру на шарик. Выглядит она вот так:



Должно быть вот так:




Chuzhoi

А текстура одна на весь стул? Тогда тащи шарик на стул и нажимай кнопку Show map in viewport (шахматный кубик в панели под шестью шариками). Или можно сразу перетащить текстуру извне (из папки Проводника) прямо на стул.

Soul_Tear

Chuzhoi, в том-то и дело, что текстура уже на стуле и ее перестаскивание непосредственно на модель ничего не меняет.

С Блендером дело обстоит лучше. Нашел скрипт импота/экспорта ASE. Насколько я понял в Блендере не надо назначать матералы и текстуры им, если в исходном 3ds это все было прописано. Эспортировал модель и вписал в файл путь, как ты говорил. Собственно теперь в Радианте стул появился в том виде, каким его нарисовал Элвис. В иерархии объектов он тоже появился на превьюшке и его можно вращать.
Проблема в том, что в игре его не видно, то есть на этом месте пусто и можно даже пройти сквозь него (разумеется я сохранил карту)  :(


Может посмотришь на своей карте? Появится у тебя или нет. Я бы тебе прислал архив со своими папками текстур и файлом материалом.





Soul_Tear

Сделал в Блендере трубу, экспортировал плагином в АСЕ, прописал материалы. Труба появилась в Радианте (такая и должна быть):





Захожу в игру и вижу такое:



Что это за баг?

Подробности: у трубы было две текстуры: одна для трубы, вторая для колец. Обе прописал в материалы и в модели. В игре на месте основной текстуры отображается текстура колец, а основная - стала черной, то есть ее вообще нет.

Поплясал с бубном и получил нормальную, но как решение не годится:



Суть пляски такая: присвоил основной текстуре имя текстуры колец, и последнюю удалил; в моделе, в блокноте, на место пути для основной текстуры повторил путь для текстуры колец. Однако в обратную сторону это не работает, то есть если переименовать текстуру колец в основную текстуру - она будет невидимая.
Что это за бред? Баг плагина или Радианта?

Есть ли ограничение на разрешение текстур моделей или их количество?

Попробовал еще несколько моделей, все в таком же духе.

nemyax

Цитата: Soul_Tear от 18 января 2016 01:01:21
Труба появилась в Радианте (такая и должна быть)
...
Захожу в игру и вижу
То есть в игре и радианте текстурится по-разному?

Цитата: Soul_Tear от 18 января 2016 01:01:21
Баг плагина или Радианта?
А чем экспортируешь?
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!