Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
SoJa
(Pre-)

Зарегистрирован: Nov 2008
Проживает: /
Написал: 3607 сообщений

Оценка: 38 Votes 38 чел.

Developer 
Сообщение #799094
Я замоделил модельку мистера Хэнки (да-да, первая модель ) и вот набежало пару вопросов:

1)как делать анимацию для контры (для хл2 делал). Там непонятно два референса и как их соеденить в один?

2) Как зафиксить такую ситуацию, что оружие и руки развёрнуты на 180 градусов? После компила...
Прикрепленная картинка: [посмотреть в полный размер]
2bf3ba98d3d684f26abd95a2d519402d
Old Post 14-12-2008 10:35
SoJa отсутствует Посмотреть данные 'SoJa' Отправить Приватное Сообщение для 'SoJa' Найти другие сообщения 'SoJa' Добавить SoJa в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
SoJa
(Pre-)

Зарегистрирован: Nov 2008
Проживает: /
Написал: 3607 сообщений

Оценка: 38 Votes 38 чел.

Developer 
Сообщение #799128
Сорри за даблпост, нужно прикрепить вторую картинку.

В общем, со вторым я разобрался, а вот первый вопрос остаётся в силе.
Кстати, я даже не ожидал что так симпотично выйдет
Прикрепленная картинка: [посмотреть в полный размер]
e73d8ae105f6ef473b6c6b4e0cd29f20
Old Post 14-12-2008 13:19
SoJa отсутствует Посмотреть данные 'SoJa' Отправить Приватное Сообщение для 'SoJa' Найти другие сообщения 'SoJa' Добавить SoJa в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Тим
(IceDev)

Зарегистрирован: Dec 2006
Проживает: RUSSIA/Москва
Написал: 2835 сообщений

Оценка: 71 Votes 71 чел.

Developer Старожил 
Сообщение #799134
mr, Говняшка рождественская какашка ! П.с это нож или граната ??
Ambient oclussion
EPIC helicopter crash!
Компиляция моделей
"Меня почти невозможно обидеть. Ложь меня не обижает, а правду я и сам знаю." (C) я
Old Post 14-12-2008 13:31
Тим отсутствует Посмотреть данные 'Тим' Отправить Приватное Сообщение для 'Тим' Найти другие сообщения 'Тим' Добавить Тим в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
SoJa
(Pre-)

Зарегистрирован: Nov 2008
Проживает: /
Написал: 3607 сообщений

Оценка: 38 Votes 38 чел.

Developer 
Сообщение #799140
Граната =)

Сразу вдогонку, хотелось бы оживить скин и сделать ему мигающие глазки. Анимированные текстуры я делал, но мне хотелось бы сделать так:
Первый кадр "Открытые глаза" - 2 секунды
Второй и третий "закрытие-приоткрытие" - секунда/пол.

А в текстурках вроде можно задать только количество кадров в секунду или (оч. надеюсь) я не прав?

Поправил SoJa 14-12-2008 в 13:57

Old Post 14-12-2008 13:49
SoJa отсутствует Посмотреть данные 'SoJa' Отправить Приватное Сообщение для 'SoJa' Найти другие сообщения 'SoJa' Добавить SoJa в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #799150
А что мешает продублировать кадры?

Симпотично выглядит в игре)
Old Post 14-12-2008 14:47
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
SoJa
(Pre-)

Зарегистрирован: Nov 2008
Проживает: /
Написал: 3607 сообщений

Оценка: 38 Votes 38 чел.

Developer 
Сообщение #799171
"А что мешает продублировать кадры?"

А можно поподробней?
Или ссылочку какую-нибудь?
Просто мой вопрос подразумевает, что я "не в теме"
Old Post 14-12-2008 15:36
SoJa отсутствует Посмотреть данные 'SoJa' Отправить Приватное Сообщение для 'SoJa' Найти другие сообщения 'SoJa' Добавить SoJa в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #799179
Нененене... Дублирование кадров приведёт к неоправданному увеличению размера текстуры.
Щас покопаюсь, скажу...
Вот...
Дописываеш в vmt следующее:
code:"Proxies"
{
"AnimatedTexture"
{
"animatedTextureVar" "$basetexture"
//^^ грубо говоря, какой поток текстуры (читай что)
//анимировать. Можно, например, анимировать $bumpmap
//или $envmapmask.
"animatedTextureFrameNumVar" "$frame"
//^^ имя переменной, которую нужно инкрементировать (т.е. +1).
//Судя по всему зарезервирована в коде и автоматически
//перескакивает на нулевой кадр при достижении
//максимального значения + одно. (поправьте если я не
//прав)
//Что ещё сюда можно написать я честно - хз.
//Вообще прокси - большая загадка, разгадать которую не
//хотят более компетентные в таких делах люди, вроде
//Маньяка или Клима...
"animatedTextureFrameRate" "2"
//^^ скорость кадров в секунду.
}
}
О том, как вообще скомпилировать текстуры с несколькими кадрами внутри написано тут.
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"

Поправил FishMan 14-12-2008 в 16:18

Old Post 14-12-2008 15:56
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
SoJa
(Pre-)

Зарегистрирован: Nov 2008
Проживает: /
Написал: 3607 сообщений

Оценка: 38 Votes 38 чел.

Developer 
Сообщение #799186
FishMan, супер! Спс
Old Post 14-12-2008 16:16
SoJa отсутствует Посмотреть данные 'SoJa' Отправить Приватное Сообщение для 'SoJa' Найти другие сообщения 'SoJa' Добавить SoJa в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #799189
Ну не на всю ж модель тукстура-то.. Только на глаза. Если решения не найти другого через прокси например - то берем и дублируем кадры, которые дольше должны отображаться (глаза открыты). ИМХО для текстурки маленького размера не столь принципиально. Только ессно глаза нужно отдельными поликами смоделлить и на них эту текстуру наложить.

ХОХОХО! Порылся в VDC, в разделе про прокси материалов.. Короче что хочешь можно сделать, даже код для собственного прокси написать - только это из пушки по воробьям. Для решения твоей задачи можно например по синусоиде менять частоту кадров - максимум - там где мигание, минимум - там где его нету. И период синусоиде поставить равным количеству кадров. А результирующая переменная - скорость анимации. Но епт, как ты это делать и тестить будешь, если плохо в этом разбираешься - я не знаю

Stone добавил 14-12-2008 в 16:23:51:
Фиш - круто конечно, но по-моему это номер стартового фрэйма. Вряд ли что-то куда-то пропускается, да и как это поможет в нашей задаче с миганием?

Нам ведь частоту кадров менять нужно..
А в прокси никаких загадок как раз и нету Чего там - обычные преобразования над переменными, которыми ты хочешь. Хочешь - альфу в зависимости от чего-нибудь уменьшай/увеличивай, хочешь - цвет, хочешь - степень блеска. Что угодно в общем.. А если нужно еще сильнее задротством пострадать - можно полезть в код и свои преобрвазования добавить. Было б желание)

Вот:
http://developer.valvesoftware.com/wiki/Material_Proxy
http://developer.valvesoftware.com/...aterial_Proxies
Old Post 14-12-2008 16:20
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #799208
Не, ну это-то понятно, я общий смысл тоже понимаю...
Я говорю о конкретных вещах. Т.е. объяснение каждой прокси. Попробуй ченить своё написать, небольшую програмку, которая будет что-то вычислять и кудато передавать значение...
Я лично не смогу, ибо всё это до конца не понимаю.

Цитата:
Фиш - круто конечно, но по-моему это номер стартового фрэйма

Оо что именно?
Вот это: "animatedTextureFrameNumVar" "$frame" ???
Я эту строку не понимаю до конца.
На VDC написано: Frame variable to increment
переводится как Fram'овая переменная для инкремента. =\
Ну как я понял первое слово можно опустить и можно вписать например:
$alpha
$color
$envmapmaskscale
$envmaptint

Хотя не думаю, что проканает. Альфа и envmapmaskscale - флоатовские значения, хотя скорее всего увеличится на целое число, но не факт. А все остальное - одномерные массивы с тремя столбцами, какой из них инкрементировать? Все три?
И! Важный момент, до какого числа инкрементировать? До бесконечности? Зависнет всё нафиг =)
Сколько байт под переменную выделено? Что делать при переполнении? Нету ведь никаких логических функций, вроде если переполнение, то...
Поэтому сюда кроме $frame скорее всего ничего нельзя ничего написать. Ибо у фреймов есть конечное максимальное число, а-ля последний кадр.

Т.е. получается видим AnimatedTexturе (анимированная текстура), а читаем тупо, как инкремент переменной. Т.е. прокся создана для анимации, но по сути это тупой "перещёлкиватель" на единичку (суть инкремента).
Теоретически, то же самое, думаю, можно сделать используя Add... хотя это задротство, даже с точки зрения программирования, к тому же не разумное использование ресурсов.

Странно, а декремента нету О_о
А что если я вдруг захочу анимацию в обратную сторону проиграть?
И что, если мне надо начать анимацию с не с первого фрейма?
Мой текст эти проблемы не решает.

Set $Frame n мб? О_о?!
Хотя нету там такого "set", мб просто "$frame" "n" или $frame=n? Где "int frame", беззнаковое целочисленное то бишь. Синтаксис какой?
А да точно...
Т.е. пишется вот так:
$frame 10
т.е. переменной frame присваеваем значение 10, иными словами устанавливаем стартовый кадр - 10.

To Do: А как проигрывать анимацию в обратном направлении?

Цитата:
Нам ведь частоту кадров менять нужно..

Ну дык:
"animatedTextureFrameRate" "2" я ж написал...
А вот каммент с VDC к этому параметру:
Framerate in frames per second
По сути управляет временным интервалом, между двумя инкрементами, то бишь как часто (в секундах) будет происходить инкремент.

Для незнающих:
Инкремент - увеличение на единицу.
Декремент - уменьшение на единицу.
Грубо говоря эта операция тратит меньше ресурсов чем ручное прибавление единицы, ибо реализована слегка подругому. Я уже не помню, как. На лекциях чета говорили... помоему сдвигами битов в ячейке памяти, чтоли... ааа... не помню... чтото там с битами мутится и получается, что число на единицу увеличивается...
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"

Поправил FishMan 14-12-2008 в 17:28

Old Post 14-12-2008 16:58
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #799229
Балииин... Че-то на меня иногда находит, туплю я..

Короче все правильно - есть переменная $frame, которая задает текущий кадр. Ей можно даже присвоить начальное значение перед входом в прокси (вроде бы 0о), если нет - то будет 0.
Дальше - "animatedTextureFrameNumVar" "$frame", т.е. переменная, котрая задает номер фрэйма в анимированной текстуре.
Потом (или сначала) задаем, что же анимируется:
"animatedTextureVar" "$basetexture" (может быть, например, $bumpmap)
Ну и наконец частота кадров в секунду:
"animatedTextureFrameRate" "2"

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

Кстати $alpha, $color ограничены снизу 0, сверху 1. Видимо, при выходе за пределы этих чисел тупо округляться будет до этих границ, вот и все.
Как известно, $color например - векторная величина. К его компонентам можно по-отдельности обращаться:
"$color[0]"
Короче ман тот многое объясняет, нужно только покурить его хорошенько и потратить N-ное количество времени на тесты (жаль его хватает только чтобы воздух сотрясать тут )


А теперь вернемся к проблеме). Хотелось сделать так, чтобы открытые глаза были долго, а мигание проходило быстро. Понятно, что если два кадра будет в текстуре - то и частота их смены будет постоянной. В общем наилучшее решение на мой взгляд - вынести текстуру глаз в отдельную, и с помощью дублирования фрэймов сделать нечто похожее:
00
00
00
00
00
0_
00

(прикрыт только один глаз, думаю все поймут )
Old Post 14-12-2008 17:42
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #799233
ненене... Сань, точнее будет сказать, что строчкой animatedTextureFrameNumVar мы указываем в какую переменную возвращать значение.

Оппа!
Есть такая штука как Clamp
Которая зажимает значения между минимумом и максимумом! =)
А в resultVar пишется имя переменной, которую надо зажать =)

Т.е. вот так:
"Proxies"
{
"Clamp"
{
"min" "0"
"max" "2"
"resultVar" "$frame"
}
}
И переменная frame будет изменяться только от 0 до 2.
Это я предыдущему вопросу про верхний предел.

Опля!
Думаю помощью LessOrEqual можно добиться нужного результата!..
Нука... Ща чёнить придумаем.

Хм... Ну чтото вроде этого:
code:"$basetexture" "path\texture"

$counter 1
$closeopen 10

"Proxies"
{
"clamp"
{"min" "1"
"max" "10"
"resultVar" "$closecounter"}

"AnimatedTexture"
{
"animatedTextureVar" "$basetexture"
"animatedTextureFrameNumVar" "$counter"
"animatedTextureFrameRate" "1"
}
"LessOrEqual"
{
"srcVar1" "$counter"
"srcVar2" "$closeopen"
"resultVar" "$frame"
}

}


По идее вот так каждые десять секунд какашка должна моргать... Но только при условии, что всего два кадра анимации. Как я понял LessOrEqual возвращает только 0 или 1. И будет работать только в том случае, если первый кадр является нулевым. Хз теоретически должно работать =)
Хотя не... Моргнёт она только 1 раз. Щас... а не... благодаря клампу всё норм... короче... должно работать =)
Ну на всякий случай (просто я хз какие значения возвращает LessOrEqual):
code:"$basetexture" "path\texture"

$counter 1
$closeopen10

"Proxies"
{
"clamp"
{"min" "1"
"max" "10"
"resultVar" "$closecounter"}

"AnimatedTexture"
{
"animatedTextureVar" "$basetexture"
"animatedTextureFrameNumVar" "$counter"
"animatedTextureFrameRate" "1"
}
"LessOrEqual"
{
"srcVar1" "$counter"
"srcVar2" "$closeopen"
"lessEqualVar" "$frame"
"greaterVar" "$frame"
}

}


И всё-таки мне кажется, что LessOrEqual возвращает значения 0, 1, 2 =\ Значит в идеале надо три кадра, чтобы ниче не слетело =)

Хотя, наверное, будет правильнее вот так:
code:"$basetexture" "path\texture"

"$counter 1"
"$closeopen 10"
"$animatedtexturevar" "$basetexture"
"$animatedTextureFrameNumVar" "$frame"
//"$animatedTextureFrameRate" 1

"Proxies"
{
"clamp"
{"min" "1"
"max" "10"
"resultVar" "$closecounter"}

"LessOrEqual"
{"srcVar1" "$counter"
"srcVar2" "$closeopen"
"lessEqualVar" "$frame"
"greaterVar" "$frame"}

LinearRamp
{"rate" "1"
"initialValue" "$counter"
"resultVar" "$counter"}

}


А вот, кстати, как к массивам обращаются...
"resultVar" "$bumpoffset[0]" тут идёт обращаются к первому столбцу, то бишь $bumpoffset[2] - обращение к третьему столбцу.
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"

Поправил FishMan 14-12-2008 в 18:57

Old Post 14-12-2008 17:50
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #799276
Так, про массивы я писал уже))

А вот про моргание ппц ты скриптец извращенский написал - думаешь Painkilla поймет хоть процент от того, что ты написал? По-моему мы тут вообще с тобой беседу не по теме затеяли)))

Слух! Надо в любом случае протестить на реальном примере, давай пока не сделаем этого не будем сюда свои догадки писать, флудеры нах)) Может чуть попозжа потестить удастся, меня одно очень смущает: не совсем понимаю, в какой момент срабатывают эти прокси.. Возможно, они один раз пройдутся и успокоятся, а AnimatedTexture задаст нужные параметры и тоже успокоится. Тогда вся затея рушится как карточный домик, сам понимаешь
Old Post 14-12-2008 18:58
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #799279
Блииииииин! Точняк...
AnimatedTexture и LinearRamp выполняются бесконечно.
А clamp и LessOrEqual сцуко тока 1 раз =( Для первой то это приемлиемо... А вот LessOrEqual нада тоже бесконечно, при каждом изенении значения...
То бишь то, что я написал не будет работать =(
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 14-12-2008 19:02
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #799280
> прокси - большая загадка, разгадать которую не хотят более компетентные в таких делах люди
Достаточно в раздел по текстурированию заглянуть, там - одна из более-менее свежих тем.

> по сути это тупой "перещёлкиватель" на единичку
Именно) А максимум тупо берётся из кол-ва кадров в указанной текстуре.

> если я вдруг захочу анимацию в обратную сторону проиграть?
Фиш, включай моск. =)) Отрицательный фреймрейт никто не отменял)

Что касается мигания, тут можно вообще обойтись без AnimatedTexture) Просто менять $frame по синусоиде где-то в диапазоне [0, 1.1]. Я не помню, округляется $frame или от него просто отбрасывается дробная часть.. Вроде последнее. (Учитывая, что 0-й кадр - открытые глаза, а 1-й - закрытые.)
Old Post 14-12-2008 19:04
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 21:35.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены