WIP by Flogger-K.Создание аркады в БГЕ.

Список разделов Склады работ и W.I.P Ход создания работ (W.I.P)

Описание: Делитесь с другими процессом создания в Blender Вашего шедевра
Модератор: exooman

  • 1

Сообщение #241 Flogger-K » 18.02.2016, 16:35

Идет создание окружения - а именно - ландшафтов и архитектурных объектов. Конкретно, на данный момент сделал один ландшафт - "Великая Пустыня" (условное название - горно-пустынная местность, причем большая часть ее ровна, как стол). Разбираюсь в своих старых наработках (а их миного,как ни странно), отыскиваю свободные модели (в основном на гугле скетчапе), увеличил арсенал для ЛА (сейчас порядка 120 разновидностей ракет и бомб). На данный момент идет возня с авиабазой. Планирую для начала сделать три-четыре "стандартные" базы, разместив их в изолированных папках. На каждой базе - свое расположение объектов (скриптом). Кроме того, относительно недавно навели на статью по иповоду использования dds в качестве текстур для экономии места в памяти при игровом сеансе. Прочитав ее, решил попробовать использовать этот формат. Особенно это касается наземных объектов и ландшафта. Посмотрю потом, как будет дело с прозрачностью обстоять. Если и там не окажется подводных камней, то, скорее всего, dds вытеснить остальные форматы. в общем, там видно будет. По поводу ракет и бомб. Вероятно, часть оружия (причем большая), будет текстур лишена и вместо них будут использоваться материалы, посокольку я смотрел на количество полигонов - увеличивается оно не слишком сильно, а учитывая то, что абсолютное время место детализированный моделей в игре будут занимать ЛОДы (точнее, плейны-треугольники , ибо ту же "Спэрроу2 даже с полукилометра рассмотреть трудновато, не говоря уж об Р-60), сильно на производительности сказаться не должно. Да и отыгрыш за счет dds должен сыграть свою роль. в данный момент идет "строительство" аваиабазы. Две ВПП - по три км, рулежка магистральная, вдоль прямых участков которой расположены малые рулежки к укрытиям для ЛА. Сбоку от ВПП - посадочные площадки для вертолетов. Необходимо нарастить "перемычки" между ВПП и определиться с расположением прочих строений.
Вложения
AirBaseVar1.jpg
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #242 Flogger-K » 20.02.2016, 14:07

https://www.youtube.com/edit?o=U&video_id=RP_1QJEdLaM

Работа кабины Миг-29А и стрельба ракетами. надо было бы раньше сделать, но лучше поздно, чем никогда. Во второй версии работа кокпитов меняться будет незначительно - они тоже будут взаимозаменяемыми блоками, как и остальные юниты. пока режу ландшафт на кусочки. Размеры 1200 на 1200 км, блоки пока по 150 км, будут разрезаны еще на пару "уровне". Этак 37,5 км будет один блок. В самой игре будут постоянно присутствовать где-то максимум дюжина - район БД - чтобы техника "не проваливалась" - плюс подгрузка блоков вокруг камеры ЛА - 9 штук, должно по идее хватить... Правда, все это еще надо прописать скриптом и отрегулировать "взаимосвязи". Сразу это вряд ли выйдет, сначала подгрузка ландшафта целиком, вероятно, будет, ну а потом - от простого к сложному. Вероятно, куски ландшафта получат еще и свои исполняемые "сценарии" - они будут при своем появлении на себе же расставлять строения, растительность и прочее. Деревья, скорее всего будут делаться блоками (меньше объектов будет), и, скорее всего будут иметь примитивный ЛОД для вида сверху - много с километровой высоты не увидишь - сойдет и плоскость с текстурой имитирующей "зеленое море тайги". То же касается и городов - плоскости "моря крыш", бггг - наше все. Главное не торопиться и не наломать дров, а то потом все переделывай и вспоминай, где чего...
P.s. Что-то меня послали с урлом видео: "Извините, этот url не поддерживается", так что теги "медиа" убрал.
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #243 zloy_pingvin » 20.02.2016, 14:20

Flogger-K писал(а):Что-то меня послали с урлом видео: "Извините, этот url не поддерживается", так что теги "медиа" убрал.

Ссылка неправильная. Она ссылается на редактирование вашего видео. Но поскольку оно принадлежит только вам,то кидает на личный канал того кто по ней проходит.
zloy_pingvin M
Аватара
Откуда: Саратов
Сообщения: 266



  • 5

Сообщение #244 Flogger-K » 20.02.2016, 14:38

phpBB [media]

ага, теперь правильно.
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #245 stark » 20.02.2016, 18:00

Да, богатый у тебя уже набор платформ, засветились МиГ-23, МиГ-29, F-16 и F-15. Но кокпиты, если я правильно уследил, только к первым двум и к Су-25? Что тоже немало, конечно.

AIM-120 AMRAAM под крылом F-16 выглядит такой нереально длинной рельсой :)

А немцы после объединения Германии покритиковали МиГ-29А, что с их-то дальностью и возможностями пилота отслеживать ситуацию им трудно найти применение в НАТО кроме точечной обороны и управляемого с земли перехвата. Хотя хвалили за отличную аэродинамику и high-off-boresight ракеты. Благодаря этим преимуществам командир эскадрильи вроде смело заявлял что внутри радиуса в 14 морских миль его просто невозможно победить.
stark M
Сообщения: 1053

  • 2

Сообщение #246 Flogger-K » 20.02.2016, 19:23

Да, так и было. "Козырной картой" МиГ-29А были ракеты Р-73. Считалось, что МиГ-29 должен применять ракеты Р-27Р, дабы заставить противника занервничать, не дать ему возможности выстрелить первым, сблизившись же с противником, который выполнял уклонение от р-27Р, обстрелять его Р-73. Тут уже действительно у оппонента шансов было маловато. Отмечу, что у Ф-16 маневренность ничуть не хуже Миг-29, на форуме ЛокОна ED Forums выкладывалось сравнение по характеристикам самолетов. МиГ-29 и Ф-16 - равны. На момент своего появления в 1980-е, Миг-29 и Су-27 однозначно крыли натовские самолеты - особенно это касалось Ф-16а, которые УРСД нести вообще не могли (и имели большие неприятности при встрече с МиГ-23МФ в 1982, в Ливане, 23-и за счет УРСД Р-23Р имели преимущество по открытию огня, хотя Р-23Р считается не слишком точной, но две ракеты у МиГ-23МФ против "Сайдуиндеров" - увесистый аргумент, при встрече с МиГ-23МС, которые не могли нести ракет средней дальности, израильтяне выиграли на ф-16 "всухую" - 2:0, расстреляв МС из пушек и точно так же всухую проиграли МиГ-23МФ Ф-15 - дальность у "Спэрроу" уже тогда была 70 км, а у Р-23Р - в лучшем случае - около 30, и в итоге - разгром 0:6, добавлю, это все же скорее мое личное мнение, потому что ругань по поводу успехов и неудач Сирии и Израиля идет до сих пор, и, что самое удивительное, внятных фото-видео-доказательств нет - пара фото с обломками МиГ-23, причем один вообще БН - истребитель-бомбардировщик, а второй - понять сложно, обломок крыла Су-22, сбитый израильский вертолет и обломки А-4 "Скайхок"- все... Израильтяне признают только А-4, хотя и на Западе бытует мнение, что полтора десятка машин ВВС Израиля все же потеряли, хотя на фоне ВВС Сирии с их 68 самолетами за 5 дней...).
Тут был еще один весьма неприятный для НАТО нюанс. Когда натовцы испытывали МиГ-29А бывших ГДР (если точнее - Миг-29Б - экспортный вариант), то неожиданно выяснилось, что РЛС МиГ-29, хотя и более примитивная и хуже по ТХ, за счет своих особенностей и близкой с РЛС "Игла" Ф-15 частотой, просто "глушит" американскую РЛС. В ВВС США расчитывали, что Ф-15 за счет лучших РЛС, откроют огонь первыми, выбив большую часть Мигов на дальней дистанции, а погтом реализуют преимущество в ближнем бою. Закончилось бы все расстрелом Ф-15, потому что их РЛС при облучении радаров с МиГ-29 "слепли" и не могли обеспечить захват и сопровождение МиГ-29, зато советские РЛС в этих же условиях работали прекрасно. Американцы, разумеется, сделали из этого выводы и модернизировали свои Ф-15. А потом появились AIM-120, и наше преимущество по ракетам было утрачено.

По поводу "рельсы" - это да. На законцовках крыла - тоже - дрыны здоровенные... И добавь к арсеналу МиГ-27К (с кокпитом). Плюс Ми-24 и F-5E(без кокпитов, к сожалению). Во второй версии я планирую делать кокпиты всем. И юниты можно будет быстро добавлять отдельными блоками, кто - захочет - тот и сам сможет сделать свою версию любого ЛА. Просто первая версия во многом тупиковая - очень много надо менять при появлении новых объектов. Во второй версии, надеюсь, все будет автоматизировано.


Кстати, коллеги - два вопроса:
1. Пробовал ли кто-нибудь запустить мое творение на виндовс 8 и 8.1 и будет ли ошибка?
2. Есть ли в Блендере команда, сделать каждый полигон объекта отдельным объектом? (мне это надо, чтобы разбить большой плейн на множество мелких блоков)
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #247 stark » 21.02.2016, 13:11

Flogger-K, если в Editmode выбрать всё и нажать P, то во всплывающей менюшке будет вариант By Loose Parts.
Осталось разбить твой меш так чтобы каждая грань была Loose Part, т.е. отдельно. Используй для этого Edge Split.
Спойлер
Выбери все рёбра, пометь их как Sharp (Ctrl+E -> Mark Sharp). Назначь модификатор Edge Split. Примени его (Apply). Снова в Editmode выбери всё и убери пометки Sharp (Ctrl+E -> Clear Sharp). Теперь P -> By Loose Parts. Расписать это было дольше чем сделать :)
stark M
Сообщения: 1053

Сообщение #248 Flogger-K » 21.02.2016, 13:36

stark, с меня бутылкаплюс. :-D То, что надо. Взял плейн, подразделил его на 1024 плейна, Edge Split, потом еще подразделил до 150 килополиков примерно, выделил все - нажал P - loose party, получил 1024 куска, с поликами. Теперь осталось выяснить - как себя поведет меш после дисплейса (будут ли "прорехи"), если все в норме, останется решить вопрос с названиями мешей и объектов и что-то придумать с координатами объектов. Можно просто все выделить и через Transform - центр по геометрии, но там из-за разности высот центры неравномерно будут распределяться. Хотелось бы, чтобы у все координата Z была нулевой. Ладно, посмотрим...

Добавлено спустя 30 минут 20 секунд:
Пока ландшафт "Великой Пустыни2 выглядит так (wireframe). Множество относительно крупных квадратов - это порезанные Edge Split группы полигонов. Ровных областей много, однако "горы" тоже есть - максимальная их высота - около 2 км. Надо накладывать нодовый материал и смотреть, что выходит.
Вложения
BigDesert.jpg
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #249 Mihanik » 21.02.2016, 14:10

stark,Flogger-K, Вы по моем усложняете, зачем Edge Split. Всё выделили, Ctrl+E, разделить рёбра и всё, далее Р.
Mihanik M
Аватара
Сообщения: 673

Сообщение #250 stark » 21.02.2016, 14:58

Mihanik, это как в анекдоте про математика и чайник.
На самом деле посмотрел что никто ничего не пишет и поделился первым решением что на ум пришло.
Есть сразу операция Edge Split - хорошо, буду знать.
stark M
Сообщения: 1053

Сообщение #251 Flogger-K » 21.02.2016, 15:33

Насчет усложнения - не знаю, вроде бы все просто и быстро. Просто мне нужна была более-менее равномерная сетка с блоками из некоторого количества полигонов. Сначала я просто получил требуемое число блоков - 1024 и разделил ребра этих блоков (не разделяя их на отдельные меши). Потом выделил еще раз все большие грани и подразделил их несколько раз, чтобы потом применить Дисплейс (до этого ландшафт был просто плоским плейном). И вот уже когда неровности на террайне проявились я уже и использовал P - по уже разрезанным ребрам. Вы представьте на секунду, что будет, если ландшафт будет разбит на 150 тыщ ячеек!!! А так у меня получилось 1024 блока со стороной 37.5 км. Пока должно устроить. Разберусь с террайном - выложу - посмотрите, из чего он состоит.
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 4

Сообщение #252 Flogger-K » 25.02.2016, 15:04

Небольшой скрин с кусочком террайна. от греха подальше я удалил большую часть блоков и оставил небольшой участок, чтобы посмотреть с высоты полета (7.5 км, расстояние - точно не скажу - км где-то 30-40). Нодовый материал еще можно покрутить по высоте наложения и смешиания текстур.
Сами же характеристики террайна под условным названием "Великая Пустыня" на данный момент таковы:
Число полигонов - 640 тысяч.
Размеры - квадрат со стороной 1000 на 1000 км, высота максимальная - около 2 км.
Террайн разрезан на 2500 блоков, 50 на 50 блоков, которые будут грузиться по мере необходимости.
Размера блока - 20 км на 20 км, примерная величина одной ячейки сетки - 125 на 125 метров, в одном блоке - 256 полигонов.
Моему компу понадобилось что-то около часа, чтобы порезать весь ландшафт на блоки, потом еще минут 15 блоки приводилдись в соотетствии по именам - объекты и меши, плюс выравнивались центры геометрии. Посмотрим, как будет в игре - будут или нет "прорехи".
Все блоки будут находиться на неактивном слое и оттуда - вызываться по мере надобности (перемещения камеры). Максимально это 9 или 25 блоков (если еще ввести и подгрузку только тех блоков, которые находятся в поле зрения камеры, должно быть и того меньше). Район БД должен грузиться исходно и оставаться на месте (это если у техники на земле будет физика, если нет, то можно и обойтись). собственно, остался алгоритм этой самой подгрузки блоков... И алгоритм движения наземки - недавно denis8424 создал алгоритм движения объектов без физики по пересеченной местности и выложил хорошее видео в своем блоге. Это должно сильно сэкономить ресурсы БГЕ. У меня большая часть местности ровная, как стол, а учитывая то, что у denis8424 ландшафт куда как "пересеченнее"... Надеюсь, мне не придется много раз переделывать свой ландшафт, хотя делать это научился довольно быстро. После доделки подгрузки блоков ландшафта можно начинать сборку тестового "пускача" игры - сначала просто полет - с отладкой оверлейных сцен, и проверкой работы ЛОДов, а потом уже все остальное.
Вложения
DesertTerrain.jpg
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 3

Сообщение #253 Flogger-K » 29.02.2016, 11:01

Пандшафт побежден. Алгоритм генерации его отдельных блоков в зависимости от положения активной камеры создан. Осталось все это оформит в виде классов, условия их срабатывания и обеспечить выбор из множества террайнов в игре. Насчет множества - громко сказано, пока был создан только один, "для опытов". Но создать сколь угодно большое количество террайнов и сунуть их в папку с названием Terrain - не так сложно и даже не так долго. Закавыка лишь в организации выбора в меню или редакторе миссий и кампаний. Тем боле, что в будущем можно и еще оптимизировать этот процесс, не перетряхивая все файлы в игре.
Процесс собственного "взлома открытой двери" я описал в своем блоге - так что с предварительными результатми можете ознакомиться там. Когда с классами будет покончено, выложу код с пояснениями и в блоге и здесь. Во всяком случае, генерация только нужных блоков террайна работает и на данный момент - это самое главное.
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 2

Сообщение #254 Flogger-K » 01.03.2016, 19:50

Пейзаж с подгруженными блоками и скайбоксом. Скрипты для скайбокса и его самого я использовал из старой версии, потому что он себя вполне оправдал, а в написании шейдеров я пока ноль без палочки, так что пришлось использовать доработанный под себя пример шейдер а(которому уже скоро как три года). Но работает - и хорошо. Проверку на наличие или отсутствие нужных блоков ландшафта я ввел, в классы оформил. Завтра выложу описание кода, многим может пригодиться, ландшафт - дело чрезвычайно нужное (если связь не подведет в связи с погодой). Пока пейзаж выглядит уныло и однообразно, в связи с отсутствием там чего-либо, но это уже вопрос технический. Надо брать и перетряхивать старый скрипт движения ЛА, потому что есть в нем подводные камушки (особенно пресловутый ноль - так и не сделали для динамических объектов нулевую скорость, придется сверхмалую везде проставить при отпускании клавиш). Кроме того, введу жесткое ограничение по вертикальной скорости (скороподъемности) - у разных машин она резко отличается. Я знаю, что величина эта много от чего зависит, но на первое время хватит пока и простого ограничения по вертикальной скорости. Управление изначально буду рассчитывать на клавиатуру, джойстик и мышь (в смысле - курсор, но там будет один нюанс, вроде я еще не встречал подобного в играх, но я все же не геймер- "чукча не читатель - чукча - писатель") - может и было. Если требуемая плавность и отсутствие подергивания у юнита будут обеспечены, не говоря уж о работоспособном управлении, то тогда можно и кокпитом заняться, точнее алгоритмом добавления-удаления оверлейных сцен.
Вложения
TerrainSkybox.jpg
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #255 Flogger-K » 06.03.2016, 18:48

Как и обещал, пусть и с опозданием, но выкладываю код для блоков ландшафта.



Спойлер
Код: Выделить всё
# -*- coding: utf8 -*-
import bge
scene = bge.logic.getCurrentScene()   
cont = bge.logic.getCurrentController()
own = cont.owner
#Загрузка выбранного ландшафта - временно закомменченная
terrain = bge.logic.globalDict['terrain']
         
class terrain(bge.types.KX_GameObject):   
    def __init__(self, old_owner):   
       
        #Список необходимых в данный момент блоков
        self.listBlock = []
   
        #Вычисление нужного квадрата, центрального блока ландшафта под камерой, целочисленные значения
        #20 - размер блока в км, 490 - поправка сдвиг влево и вниз на "начало отсчета" от левого нижнего угла
        #1000 - чтобы было меньше возни, отбрасываем метры, нас интересуют целые числа в диапазоне от 0 до 49
        activeCam = scene.active_camera
        quadroX = int((int(activeCam.worldPosition[0]/1000)+ 490)/20)
        quadroY = int((int(activeCam.worldPosition[1]/1000)+ 490)/20)
       
        #Отыскиваем и открываем нужный нам текстовый файл с названиями, координатами и значениями квадратов для блоков ландшафта
        #print('//Terrain/' + terrain + '_/Block' + terrain + '.txt')
        #brikeLand = open(bge.logic.expandPath('//Terrain/' + terrain + '_/Block' + terrain + '.txt'),'r')
        brikeLand = open(bge.logic.expandPath('//Terrain/Terrain_2_/BlockTerrain_2.txt'),'r')
   
        #Дальше по маркерам смотрим, что нам нужно
        for string in brikeLand:
            if string[0] == '#':
                continue
            elif string[0] == 'b':
                tempList = string.split('|')
                X = int(tempList[1])
                Y = int(tempList[2])
           
                #Вычисляем индексы квадратов, нужных для вызова
                #Если индексы квадрата по ХУ находятся внутри требуемого диапазона - добавляем название блока ландшафта в список
                #нужных для появления блоков
                if quadroY-2 < Y < quadroY+2 and quadroX-2 < X < quadroX+2:
                    self.listBlock.append(tempList[3])
                   
                    #Обратная проверка - если объекты есть в списке, но их нет в сцене - добавляем (не хватало еще дублей наплодить)
                    for blockLand in self.listBlock:
                        if blockLand not in scene.objects:
                            blockLand = scene.addObject(tempList[3], self)
                            blockLand.worldPosition = [float(tempList[4]), float(tempList[5]), float(tempList[6])]
                           
            #Проверка на наличие лишних блоков ландшафта в сцене
            for landBlock in scene.objects:
                if "Terrain" in landBlock.name:
                    if landBlock.name not in self.listBlock:
                        #Если есть таковые - ликвидируем
                        landBlock.endObject()
                       
        #Закрываем текст с данными террайна           
        brikeLand.close()
       
def mutate(cont):
    old_object = cont.owner
    mutated_object = terrain(cont.owner)
   
    assert(old_object is not mutated_object)
    assert(old_object.invalid)
    assert(mutated_object is cont.owner)

# Called later - note we are now working with the mutated object.
def update(cont):
    cont.owner.update()

Это был сам класс ландшафта - выборка нухных названий блоков и их выставление, уборка лишнего и тд. Сам же класс работает в составе другого скрипта.

Спойлер
Код: Выделить всё
# -*- coding: utf8 -*-
import bge

def keyButton():
    scene = bge.logic.getCurrentScene()
    cont = bge.logic.getCurrentController()
    own = cont.owner
    sens = cont.sensors['keyButtonCam']
   
    if sens.positive:
       
        for key,status in sens.events:
           #Клавиши переключения камер
            if status == bge.logic.KX_INPUT_JUST_ACTIVATED:
                #Импорт класса террайн - для замены или подгрузки блоков террайна
                if key == bge.events.F1KEY or key == bge.events.F2KEY or key == bge.events.F3KEY or key == bge.events.F4KEY or key == bge.events.F5KEY or key == bge.events.F6KEY or key == bge.events.F7KEY or key == bge.events.F8KEY or key == bge.events.F9KEY or key == bge.events.F10KEY or key == bge.events.F11KEY or key == bge.events.F12KEY:
                    import ClassTerrain
                    blockTerrain = ClassTerrain.terrain(own)

На всякий случай, так сказать - полностью процесс создания террайна и манипуляции с ним я описал в своем блоге, да и здесь найдется кое-что.

Пока идет процесс создания более-менее реалистичного полета ЛА. Фактически заново. Да, некоторые наработки взяты из старого скрипта движения, но отличаться они будут ну очень сильно. Прежде всего, развороты теперь в игре будут задавться через applyTorque, а не через нарастание-убывание скорости разворота. Это позволит сделать крены-рыски-тангажи более плавными и "тягучим" с ощутимой инерцией. Во-вторых уже заранее закладывается более плавное изменение скорости при выпуске-уборке тормоза или шасси, перекладке крыла и прочем. Раньше у меня изменение поисходило почти мгновенно. По-хорошему, следовало бы вообще делать что-то вроде упрощенных аэродинамических формул, наподобие того же FlightGear, но это займет слишком много времени,и ничто не мешает, сделать их в третьей версии, в четвертой - точную аэродинамику и тд (шутка, но в каждой шутке есть доля правды). В-третьих, в новом скрипте идет расчет по изменению массы самолета в зависимости от веса имеющегося топлива, веса подвешенного оружия (можно и вес пилонов тоже учитывать). В-четвертых вводится учет поведения самолета по лобовому сопротивлению подвешенного оружия. К примеру, как я прочел на сайте LockOn, пара подвешенных блоков УБ-32 дает снижение ЛТХ самолета примерно на 0.1 (то бишь 10 процентов, а один блок, значит - 0.05 или 5 процентов).
Все это сделает поведение самолетов и вертолетов пореалистичнее. Разумеется, с "профессиональными" симами мне не тягаться, но по сравнению с версией 1.1 (а тем более еще более древней 1.0) - должен получиться ощутимый шаг вперед.
Ну и еще там мелочи вроде использования классов, новых приемов работы с клавиатурой... Вот с джойстиком, чувствую, будет лютая возня. В АПИ Блендера описан метод использования сенсора always для перехвата команд с клавиатуры. с этим-то справился, относительно быстро, а вот с джойстиком - там свои нюансы. Возможно, наподобие клавитуры удастся сделать и перехват команды с мыши. Есть задумка сделать управление и с помощью мыши. Курсор показывает, куда лететь, а кнопки дают команду н6а крен. Можно было бы и сделать кнопки мыши на прицел или переключение чего-либо, но в свое время, когда играл в "Герои Неба2 (простенькая, но приятная игра), обнаружил, что делать там "бочки" и вообще как-то кренить самолет невозможно в принципе. А иногда это очень нужно. Так что в этом случае получится - одна рука - мышь, вторая - клавиатура. Аналогично для джойстика, но до этого еще дотянуть надо.
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

Сообщение #256 grayich » 06.03.2016, 20:00

# -*- coding: utf8 -*- для питона 3 ненужен вроде
grayich M
Аватара
Откуда: Харьков
Сообщения: 3344

  • 1

Сообщение #257 Flogger-K » 13.03.2016, 18:06

Всем давно уже знакомый вид. Кабина МиГ-23. Только уже не МЛД, а М(МФ). Модель его сделана и недавно почти полностью затекстурена (осталась лишь текстура повреждений) - ливийский вариант камуфляжа вполне соотетствует изготовленному мною пейзажу. Внешне-то кокпит не сильно отличается от бывшего ранее, кроме особенностей, присущих ранним МиГам. Но вот работать кокпит будет несколько иначе. Ранее у меня были куча списков проперти в глобальном словаре, причем некоторые данные в этих списках себя дублировали. Плюс некоторые проперти менялись довольног редко и не имело смысла их постоянно подтверждать. В новом кокпите остались только два текстовых объекта - это наименование оружия и боекомплект - это как раз Text внизу ИЛС. Остальные же "текстовые варианты" - текстура на плейнах. Есть два варианта работы - скроллинг развертки или замена меша. Часть вообще просто видна или не видна. Лампочки и светящиеся индикаторы на приборной доске также получили новые текстуры, текстуры на самом кокпите теперь dds-ные. Текстуры с прозрачностью - стекла и ИЛС с индикацией - tarGA. Стрелки будут работать по тому же принципу, что и ранее - анимация по названию собственного имени и выборка нужных данных из списка. Вот только список в глобальном словаре будет в разы короче и будет содержать только те данные, которые меняются непрерывно - скорость, высота, вращение, скорость, высота и дистанция до цели и тому подобное. Данные же для "высвечивания" на ИЛС или индикации - попробую передавать напрямую в сцену (но не сообщениями). Можно же формировать список сцен, а дальше - данные при их изменении передать на какой-то "центр" оверлейной сцены. А тот уже сам определит, что и где показать или скрыть.
Вложения
cockpitMiG-23MF.jpg
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

Сообщение #258 Flogger-K » 21.03.2016, 18:17

Пока идет бюрократическая работа и кодинг, кодинг, кодинг... Возможно, мне удалось решить одну застарелую проблему - "рывки" анимации аэродинамических поверхностей. Дело в том, что при резком переходе при нажатии клавиш, допустим, наэимал крен-вправо и почти сразу нажал крен влево - происходило "вздрагивание" деталей - они проскакивали "возврат" в нейтральное положение из ранее задействованной анимации и сразу начинали другую. Проблему решил путем добавления трех проперти PITCH-ROLL-YAW (тангаж, крен-рысканье). Эти проперти не зависят от нажатых клавиш, а зависят только от скоростей разворота по осям. Все проперти - это целочисленные значения от 1 до 61. В зависимости от нарастания или падения скорости разворота и ее знака они меняют свое положение, увеличиваясь или уменьшаясь. При нулевой скорости вращения у всех у них значение 31. А сами проперти - это кадры анимации, которые надлежит проигрывать деталям ЛА. При этом проигрывание происходит лишь при высоком уровне детализации и при изменении самих проперти. Пока я тестировал их изменения, проверяя насчет "рывков" и "провалов". Пока все вроде работает, остается посмотреть, будет ли моя догадка верной в самой анимации и сколько она будет кушать ресурсов. Во всяком случае код, который я написал с изменениями проперти и проверкой нарастания-убывания скоростей разворотов прибавки в те три процента логики, которые тратятся сейчас, не привнес. Уже хорошо.
В этом же скрипте пишется код для лбавления-удаления деталей шасси, плюс анимация - сами шасси, тормоза, закрылки и так далее. по большей части код приходится переделывать, да и менять старые принципы построения объектов. В общем, вторая версия во многом делается заново с учетом старых ошибок и промахов (надеюсь, не нагорожу много новых нелепостей).
Смотрю - в 2.77 уже к многопоточности, что есть хорошо, хотя как уже прогнозируют, радикально улучшенная и стабильная версия будет 2.79, и рано пока "пересаживаться", но кто знает...
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 2

Сообщение #259 Flogger-K » 23.03.2016, 19:27

Гримасы игростроения, нда... Только что добился замены мешей на модели при работе с уровнями детализации. Это вот, самая высокая детализация. Без текстур. По какой-то причине затекстуренный мною МиГ-23МФ отказался менять меш фюзеляжа - опять вылезла застарелая ошибка(похоже, догадываюсь, в чем дело - не надо было стекла и "ванну" кокпита соединять с фюзеляжем... Зато временно нетронутый МиГ-23БН нормально материализовался. Картинка заодно демонстрирует то, что "творится за кулисами". )))
Вложения
TestLODSMiG-23BN.jpg
актуальная версия проекта - здесь:
https://yadi.sk/d/Uf_VyC-afW5z7
Мои блоги - здесь. http://flogger-k.blogspot.ru/ http://blogs.privet.ru/user/alexander-wings
Мой ВК: https://vk.com/floggerk
Flogger-K M
авиатор
Аватара
Сообщения: 360

  • 1

Сообщение #260 stark » 23.03.2016, 20:32

А что, в сермате тоже хорошо смотрится.

Иногда стоит смотреть на модели без текстур ИМХО, и, если выясняется что без текстур лучше... хм... думать о том, что надо сделать, чтобы текстуры не портили вид 8-D
stark M
Сообщения: 1053

Пред.След.

Вернуться в Ход создания работ (W.I.P)

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость

cron