|
|
|
Канал Orbiter: «Блок Л для семерки» |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Я начинаю думать в сторону блока Л для семерки. Пока о срокахо говорить рано, так что если кто успеет раньше - милости прошу. Но вообще я планирую оператично докладывать о прогрессе, так что можно будет вносить идеи и варианты по ходу.
А пока - первый вопрос, про поворотные камеры. Поскажите, кто может. Я в первый раз сделал аппарат с поворотной камерой (один маленький персональный проектик, надеюсь за месяц закончить). Но вот что мне непонятно. Управляю направлением тягой я функцией SetThrusterDir. Она использует только направление, значит, я должен при создании движка указывать точку его подвески - вокруг которой движок будет вертеться. ОК, указал. чтобы движок отслеживал тягу визуально - верчу его анимацией вокруг той же точки. ОК, сделано. Но дальше я хочу, чтобы вертелся и факел! Однако, вилы: чтобы факел вертелся, я должен НЕ указывать его пространственное положение в явном виде, только тогда он "привяжется" к тяге. Но если я НЕ указываю его положение, он начинается прямо в точке подвески, а не на срезе сопла, где мне надо! Идеи? Может, я что-то не заметил?
|
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Да, Андрей, не заметил
Посмотри прототипы метода AddExhaust (файл vesselapi.h)
Так вот их не 2 варианта, как документировано, а три. Третий вариант позволяет указать смещение текстуры выхлопа относительно точки подвески, вот он:
UINT AddExhaust (THRUSTER_HANDLE th, double lscale, double wscale, double lofs, SURFHANDLE tex = 0) const;
Обрати внимание на параметр lofs - это и есть смещение. Положительные значения - это вдоль по направлению выхлопа. Я у себя, на "Энергии" и в пректе Space Tugs использую именно этот вариант. Направление не задано, задана только привязка к thruster, соответственно, текстура будет поворачиваться вслед за двигателем. А смещение lofs надо указать таким, чтобы текстура начиналась на срезе сопла.
Вообще, надо просматривать заголовочные файлы - Мартин много чего забыл задокументировать.
_________________ Юрий Кульчицкий aka Kulch |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Вот спасибо! Я, конечно, знаю, что не все функции документированы, и заглядываю иногда в заголовочные файлы, но редко и нерегулярно. Я ж минималист, у меня любой проект использует дай бог 3% всей функциональности API. Так что заметить функцию, да еще сообразить, что она отличается... фактически, для этого нужно с самого начала сильно подозревать, что она там должна быть Ну или помнить API, как ты его должен помнить: Энергия наверняка напрягает его сильно больше чем на 3%, плюс работаешь ты с Орбитером регулярно, а не набегами, как я.
А тут еще совершенно новое дело для меня было, качающаяся основная камера. До этого не делал таких - ну и проблемы не возникало . А у блока Л она как раз тоже качаться будет.
|
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
igel : |
Так что заметить функцию, да еще сообразить, что она отличается...
|
Просто она была мне очень нужна, искал целенаправленно
igel : |
работаешь ты с Орбитером регулярно
|
уже нет, увы
igel : |
А тут еще совершенно новое дело для меня было, качающаяся основная камера.
|
Хочешь, свои исходники пришлю с этими делами?
_________________ Юрий Кульчицкий aka Kulch |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
igel : |
Я начинаю думать в сторону блока Л для семерки.
|
Несказанно рад, что разработчики ориентируются на этот аддон. Спасибо за доверие.
Kulch : |
UINT AddExhaust (THRUSTER_HANDLE th, double lscale, double wscale, double lofs, SURFHANDLE tex = 0) const;
|
Хм, интересно... Ведь у меня факелы тоже из точки крепления рулевиков выходят!
Удачи проекту! Буду ждать с нетерпением.
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Хе-хе! Доверие доверием (семерка и впрямь крутая!) - но вообще-то я хочу (попробовать) сделать блок Л максимально независимым изделием (аддоном). Чтобы его можно было с чем угодно применять. Хоть с любой семеркой, хоть с любой другой ракетой
Я еще не работал с аттачментами, но, насколько я помню, при аттачменте нагрузка создается в сценарии прямо с самого начала, из файла сценария. И можно ей передать все нужные параметры из сценария. Тогда основная ракета должна просто реализовывать прицепление "чего угодно" через аттачмент, и отделять это "что-то" после выведения. А как я понимаю, большинство носителей в Орбитере сейчас так и делаются.
Верные допущения, или где-то есть незамечаемые грабли?
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
igel : |
но вообще-то я хочу (попробовать) сделать блок Л максимально независимым изделием (аддоном).
|
Ну, это понятно. Кроме того, сделать это не так и сложно.
igel : |
Я еще не работал с аттачментами, но, насколько я помню, при аттачменте нагрузка создается в сценарии прямо с самого начала, из файла сценария.
|
Можно и так. Сточки зрения универсальности, так лучше и делать. Но возможно и программное приаттачивание, птем динамичекого создания точек крепления и вызова соответствующего метода.
igel : |
И можно ей передать все нужные параметры из сценария. Тогда основная ракета должна просто реализовывать прицепление "чего угодно" через аттачмент, и отделять это "что-то" после выведения.
|
Именно так моя "семерка" и делает. Просто в сценарии прописывается имя прикрепляемого объекта, параметры точки крепления, которая будет создана ракетой (или ступень) на нем, даже если на ПН нет ни одной тчки крепления.
При таком подходе, правда, нужно обеспечить, чтобы ПН сама реагировала на оделение. А для этого нужно работать с указателями точек крепления, что создает трудности при восстановлении состояния аддона после загрузки из сохранения.
igel : |
Верные допущения, или где-то есть незамечаемые грабли?
|
Целое поле граблей при работе с указателями на точки крепления. Механизм гибкий и мощный, но требующий внимания при отслеживании пустых указателей.
igel : |
А как я понимаю, большинство носителей в Орбитере сейчас так и делаются.
|
Вот этого не знаю. Точно знаю, что так делают Юрий Кульчицкий, Роман Васильев (aka Bloodest) и я, пошедший по их стопам .
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Спасибо за подсказки, сразу буду знать, где соломку стелить. И потом, если окажется, что универсальность слишком сложна и не стоит выделки - всегда можно пойти по пути наименьшего сопротивления и сделать только под конкретную семерку. И вот тогда точно нет сомнения, под чью именно
|
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
astronavt : |
Целое поле граблей при работе с указателями на точки крепления. Механизм гибкий и мощный, но требующий внимания при отслеживании пустых указателей.
|
а зачем с ними работать вообще?
astronavt : |
При таком подходе, правда, нужно обеспечить, чтобы ПН сама реагировала на оделение. А для этого нужно работать с указателями точек крепления, что создает трудности при восстановлении состояния аддона после загрузки из сохранения.
|
непонятно. мне непонятно, зачем указатели? неужели не хватает штатных методов и функций API? то ли я не понимаю о чем речь...
_________________ Юрий Кульчицкий aka Kulch |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Kulch : |
а зачем с ними работать вообще?
|
Kulch : |
непонятно. мне непонятно, зачем указатели? неужели не хватает штатных методов и функций API? то ли я не понимаю о чем речь...
|
Указатели я использую, чтобы, например третья ступень читала параметры второй ступени, но не те, что входят в структуру класса VESSEL2, а добавленные лично мной. Для этого необходим указатель на корабль, а его я получаю через точку крепления. Сделано так, чтобы не зависеть от имен объектов, чтобы можно было спокойно переименовывать их в файлах сценария (например, делая несколько столов/ракет в сценари).
Может я конечно изобретаю велосипед . Такое бывает .
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
ясно. ну я в работе с указателями не силен, но вот такие вещи делаю постоянно:
это функция, которая посылает управляющие сигналы с РН на башню (об отводе ферм, например):
void EnergyC::SendMessageToTower(int signal){
if(tower == NULL)
return;
VESSEL *towerV = oapiGetVesselInterface(tower);
OverShip *tow = (OverShip*)towerV;
tow->SendSignal(signal);
}
здесь tower - это OBJHANDLE, а OverShip - базовый класс, от которого наследуются и башня и ступени ракеты. Таким образом, через виртуальный метод SendSignal базового класса OverShip я могу управлять другими кораблями.
_________________ Юрий Кульчицкий aka Kulch |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Вопрос-уточнение по размерности блока Л, для мешей и ОСОБЕННО для точного сопряжения с блоком И (и с выводимыми нагрузками). Точной цифири достать не могу, да и картинок не очень, хотя есть кое-что. Промеры очень приблизительные, с крупномасштабных разрезов всей семерки. Посему если у кого-то есть уточнения цифр - буду рад! Также, прошу прощения за несколько криворучный эскиз (кульманов, циркулей, транспортиров не держим).
http://members.shaw.ca/atil11/singles/LDraft.gif
|
|
|
Bloodest
155 EGP
![Бронзовая звезда (+25 EGP)](/conference/images/ranks/medals/bronze.gif) ![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
На счет циркулей. MS Visio рулит.
Берешь фотку ( много фоток)). Для начала одну. Брешь в визио лист - изменяешь масштаб под обект. Вставляешь фотку в лист. Обводишь линиями, кругами и проч фотку. Фотку удаляешь. Конвертишь-сохраняешь полученный набросок в кад-формат.
Кад форматку вставляешь в макс.
Получается нечто вроде пластины на которой выступы - вмятины - дырки = барельеф объекта (хаос - импрессонизмус - ужо само по себе произведение исскуства). Залезаешь в свойства барельефа - назаначаешь не отображать серым во фризе. Фризишь и просто ваяешь по нему как по шаблону.
Получается - супер!
Второй метод - быстрее но гоморней. Делаешь материал с текстурой - фоткой, в его свойствах ставишь - отображать текстуру на виде. На виде - делаешь пластинку размером в фотку - на нее кладешь этот мат и ставишь на виде 3D отображение . Вуаля - мона рисовать по фотке.
Минусы - качество отображения фотки на виде желает лудшего - прямо скажу полное г. Наровит отображать ваяемые объекты тож в 3D - перекрывают\скрываются (за) картинку. Зафризишь пластинку - пропадет текстура - чуть зацепишь - сдвинется - гомор одним словом.
Плюс - мона прямо ваять объект который сфоткан под углом - пластинку надоть развернуть под этот угол (хотя ни что не мешает поступить так с барельефом)...
|
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Роман, можно поподробней про размещение фона на виде в Максе? Я таким способом пытаюсь сделать байконуровский УКСС со всеми причиндалами. Так вот при попытке подложить фон bmp 6000 на 6000, макс безбожно огрубляет имидж (словно уменьшает его) и он, имидж, становится непотребным. Есть здесь какой-нибудь выход?
_________________ Юрий Кульчицкий aka Kulch |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Kulch : |
Есть здесь какой-нибудь выход?
|
Есть. Настройте макс таким вот образом.
http://texband.nm.ru/pub/dimonspage/orbiter/3dsmax.JPG
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
astronavt, так как насчет сопрягаемых с блоком И рамеров? Какого диаметра там опорное кольцо, с учетом площадки под обтекатель?
...А моделировать я все равно сам люблю, из примитивов. В GMax-e. И не люблю детализировать слишком уж глубоко, только то, что характерно, что бросается в глаза или важно по функции. И текстуры не люблю (потому что не умею с ними работать, а может и наоборот, не успел научиться, потому что не люблю )
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
igel : |
Какого диаметра там опорное кольцо, с учетом площадки под обтекатель?
|
2.8 метра внешний диаметр, 2.74 - внутренний.
igel : |
И текстуры не люблю
|
Иногда без них не обойтись...
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Вот спасибо!
_________________ Юрий Кульчицкий aka Kulch |
|
|
igel
100 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
astronavt, вы меня слегка надули . 2.74 - это диаметр по расширеной обратной юбке Союза. А у Молнии ее не было, там весь цилиндр одного диаметра, как у Востока. Сделал я фермочку блока Л, начал примеривать в тестовом сценарии - и очень удивился
Впрочем, это фигня. Фермочку я масштабом уменьшу "по месту", пока не влезет, для этого мне даже размер точный уже не нужен. А вот что хотелось бы - в какой-нибудь полседующей бете, как будет время, добавьте pls опцию МОЛНИЯ в конфигурацию блока И, чтобы она по ней вообще не грузила меш этого обратно-конического адаптера. Я и сам могу, но лучше, когда за код отвечает один человек, разработчик. Тем более это не срочно, у меня только ранние пробы, а для них конус не мешает.
Ну и наверное вторую половинку востоковского обтекателя без дырки под люк - он вполне должен подойти для Молнии. Или там уже есть без дырки, только я не заметил? Мне-то пока для тестов с дыркой даже прикольнее, видно, что внутри
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
igel : |
добавьте pls опцию МОЛНИЯ в конфигурацию блока И, чтобы она по ней вообще не грузила меш этого обратно-конического адаптера.
|
Ну это, естественно, сделаю.
igel : |
Ну и наверное вторую половинку востоковского обтекателя без дырки под люк - он вполне должен подойти для Молнии. Или там уже есть без дырки, только я не заметил?
|
Конечно есть и без дырки. А в сценарии можно настроить обтекатель так, что будет грузиться меш без дырки
Половинка обтекателя:
Код: |
Fairing01:fairingProgress
STATUS Landed Earth
POS 63.33 45.92
HEADING 0
NAVFREQ 94 481
FTYPE 1
MESHNAME r7_fairing_vostok_01
APOINT 0.02 0.0 -1.45
ATTACHED 0:0,Stage3
END
|
Параметр MESHNAME опрделяет что будет грузиться в качестве меша. И вообще, пользователь волен перекрашивать и переделывать меши как заблагорассудится, созраняя только положение центра масс. Я вот толькоа не помню что без дырки r7_fairing_vostok_01.msh или r7_fairing_vostok_02.msh. Ну это нетрудно посмотреть методом тыка
P.S.: Ну, собственно, проверил. Меш без отверстия - r7_fairing_vostok_02.msh
Пишем в сценарии:
Код: |
Fairing01:fairingProgress
STATUS Landed Earth
POS 63.33 45.92
HEADING 0
NAVFREQ 94 481
FTYPE 1
MESHNAME r7_fairing_vostok_02
APOINT 0.02 0.0 -1.45
ATTACHED 0:0,Stage3
END
Fairing02:fairingProgress
STATUS Landed Earth
POS 63.33 45.92
HEADING 0
NAVFREQ 94 481
FTYPE 0
MESHNAME r7_fairing_vostok_02
APOINT 0.02 0.0 -1.45
ATTACHED 0:1,Stage3
END
|
И получаем
_________________ Я бы изменил этот мир, но Бог не дает мне исходников...
Последний раз редактировалось: astronavt (22:24 26-02-2007), всего редактировалось 2 раз(а) |
|
|
|
|
|
Канал Orbiter: «Блок Л для семерки» |
|