GPCracker Posted July 7, 2016 Author Share Posted July 7, 2016 (edited) По коробочке, из наблюдений, такое ощущение что идёт какое то смещение центра танка, то есть, грубо, отсчёт идёт от конца дула, именно дула, причём размер модели относительно соблюдён, потому и разница по смещениям в танках относительно дула (учёт идёт по колижну скорей всего). Спотер вроде пофиксил свои коробочки, но это только "вроде" потому как, как уже выше сказали, не произвольные вылеты без какой либо закономерности.Ну то что картошка как всегда это уже не удивляет. Насчёт в сторону дула - не подтвердилось, у меня на ручном тесте вообще разнобой какой-то был, зависимости смещения бокса модели от разворота частей танка я не увидел. Насчёт пропорции - да, вроде совпадают. Как время появится может еще раз загляну в это дело. Бокс без пушки можно и влоб посчитать по 8-16 точкам, только матричных операций будет ну уж очень много. Но можно. Есть вариант прикинуть попроще считая танк статичным просто взяв по минмакс aabb, прикинуть оффсет-скейл матрицу и помножить слева на МП танка. Так или иначе, танец с бубном и костылями получается, пока картошка не пофиксит. Кстати, такой момент - ни у кого случаем не завалялась модельки кубика метр на метр с начальной точкой в углу (0,0,0)/(1,1,1) по координатам, желательно полупрозрачного? Ну чисто графически в клиенте отрисовать эту коробочку в 3d,м может тогда какая-нибудь конкретика появится... А смысл? Думаю сейчас уже особо не стоит торопиться с адаптацией модов, т.к. с новым патчем и переходом на AS3 у картохи еще много всяких багов повылезает.Я AS и флешки [пока] не юзаю. Да даже если и буду - то уже сразу на AS3. Так что для меня эта проблема не актуальна. Edited July 7, 2016 by GPCracker 1 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 7, 2016 Share Posted July 7, 2016 (edited) КстатиЯ создал плагин для Blender'а на питоне. Думал зафигачить его прямо в игру, чтобы создавать кастомные 3D модели. Забил на это... cube_000_111.zip P.S. в закладках завалялась библиотека. Порадовал один заголовок - https://well-adjusted.de/~jrspieker/mspace/mspace-module.html#rst-optimization-potential-or-why-the-f-ck-is-this-so-slow Edited July 7, 2016 by ShadowHunterRUS 2 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 , спасибо. Кстати, для тех, кто не совсем в теме всего происходящего, небольшое пояснение, зачем нужен куб и почему именно куб. bounds This read-only attribute gives the bounding box for the model. It returns a MatrixProvider. The matrix specifies what transformation would need to be applied to a 1x1x1 cube placed at the world-space origin to scale, rotate and translate it to bound the model. The bounds themselves are read in from the <boundingBox> property of the .visual file that was used to create the model, and don't update to reflect the current pose of the model.Т.е. если применить MP к модели куба (пока правда не совсем понятно, как) и запавнить такую модель в пространстве, вокруг танка должна появиться эта самая коробка. Смысл полупрозрачности - чтобы лучше было видно сам танк.GUI с уголками выглядит конечно неплохо, но с ним тяжело дебажить, ибо непонятна ориентация коробки. Если удастся повесить MP для контроля над моделью, она сама будет кататься вместе с танком, точнее просто будет показывать его коробку в текущем состоянии. Единственно пока не совсем понятно, как прикрутить MP к модели... Хотя кажется уже понял. The Servo class is a Motor that sets the transform of a model to the given MatrixProvider. As the MatrixProvider is updated, the model will move. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 (edited) ServoЛазерная указка на нем и работает) for _entity in BigWorld.entities.values(): if hasattr(_entity, 'isAlive') and _entity.isAlive(): _laserModel = BigWorld.Model('laser.model') _gunServo = BigWorld.Servo(_entity.appearance.modelsDesc['gun']['model'].node('Gun')) _laserModel.addMotor(_gunServo) _entity.addModel(_laserModel) Edited July 8, 2016 by ShadowHunterRUS 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 (edited) , ага, я как раз и вспомнил что кидали парни что-то подобное. Нашел в доках по BW. За кубик еще раз спасибо, по красоте зашло. Скрины Как видно, габариты толком даже не соответствуют размерам модели. Что будет дальше - посмотрю бой с такими эддонами, может удастся понять логику, если она тут есть. Блин, поначалу забыл про то, что картошка как всегда, и нельзя просто так взять и запавнить без вылета модель через терминал. Походу надо будет в этом деле порыться и сделать обертку в терминал для вызова таких вещей. З.Ы. Так и до графического отладочного режима не далеко... А это мысль, кстати :) З.Ы.Ы. И надо будет "сферу" с точки и радиуса перевести на offset-scale матрицу. Так с ней полюбому будет проще работать в динамическом режиме. Edited July 8, 2016 by GPCracker 2 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 (edited) А это мысль, кстати :)Minecraft получится... ...или тепловая карта Годнота в любом случае. Edited July 8, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted July 8, 2016 Share Posted July 8, 2016 Лазерная указка на нем и работает) Низзя к MP нода компаунда цепляться - будут периодические вылеты в игре и в репках. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 Низзя к MP нода компаунда цепляться - будут периодические вылеты в игре и в репках.Для дебага льзя @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 ...или тепловая картаНее, там просто будет показываться этот самый бокс, об который коллижн считается. Просто он будет следовать за танком. Точнее, он будет как-будто приаттачен к танку. Низзя к MP нода компаунда цепляться - будут периодические вылеты в игре и в репках.Кажется я понял прикол с вылетом. Я поймал вылет... когда танк, на который я повис [внезапно] сдох, точнее вылет был через полсекунды где-то после этого. Тем не менее, прикрутив bounds техники игрока, я наблюдал за коробочкой весь бой, ничего не вылетало. Походу дела прикол с вылетом происходит из-за смены модели, точнее ее принудительной уборки мусорщиком. Модель убивается, а привязанный к ней MP становится невалидным - отсюда краш. Ну по крайней мере я могу это только так объяснить. Возможно, это не единственный момент с крашами, и есть еще какие-то другие причины, но как говорится, говорю что вижу - после смерти отслеживаемого танка словил краш. Кстати, коробочка ведет себя довольно таки странно. Она вроде как следует за танком, но ее размеры зависят от разворота танка, и поворачивается она при повороте танка такое ощущение что вокруг одного угла. Надо в трене смотреть, на боевых репках обычно строго на месте не крутятся, если не ПТ, конечно. И кстати, пушка походу тоже учитывается. Такое ощущение, что картофель просто где-то накосячил в расчетах. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 пушка походу тоже учитывается.для бокса корпуса? wtf? НееЯ просто идею для модов сразу придумал, но они все читерские. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 (edited) для бокса корпуса?Для бокса модели. Компаунд, насколько я понимаю, это целая модель. Они и завезли производительности, выкинув "ненужные" расчеты, но не без косяков, как всегда. Короч, если что удастся понять - отпишусь тут полюбому. Погнал я наверное в треню... Upd. Хмм... А логика все-таки есть. 1. Пушка учитывается. 2. Ось Z танка и карты совпадают (yaw = 0), то матрица совпадает с правильной, т.е. в этом случае мы имеем что нам нужно. 3. Остальные случаи словами описать трудновато. Думаю, какую такую хитрую трансформацию нужно провести, чтобы вернуть матрицу обратно в нормальное положение. Edited July 8, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 (edited) @GPCracker, у WG куча классов с префиксом WG... Edited July 8, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 (edited) WG куча классов с префиксом WG...Короч, чет я не могу вкурить, что за хитрая трансформация там происходит, и самое главное как привести ее в нормальный вид. В общем, на основе имевшегося куска скрипта запилил добавление и удаление бокса по хоткею. Если выходить из боя с отключенным боксом - вылетов не ловил. М.б. кому-то удастся понять, как привести коробку в нормальный вид... Насколько я понял, вращать ее не надо, скорее всего будет достаточно грамотного оффсета и ресайза. bbox_view.zip Edited July 8, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
Scharfhobel Posted July 8, 2016 Share Posted July 8, 2016 Покатал с коробочкой, понял только что положение её относительно танка зависит: 1. От направления дула. 2. От направления танка. Если танк направлен на север, то танк в коробочке. Вот скрины с зажатой ПКМ, чтоб дуло не меняло положение. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 (edited) @GPCracker, получается надо делать зависимость scale от yaw? Может ремодел для теста создать? Edited July 8, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 (edited) Покатал с коробочкой, понял только что положение её относительно танка зависит:Да я и сам уже с самого утра это катаю, как скинул мне этот самый полупрозрачный зеленый кубик. Только вот до сих пор не могу вкурить, как это привести в правильный вид, т.е. сделать так, чтобы танк всегда был в этой коробке. GPCracker, получается надо делать зависимость scale от yaw?Scale и offset. Вообще матрикс состоит из трех частей - scale, rotation, translation. rotation, если судить по осям коробки, правильный, он точно следует за танком, коробка сама не поворачивается, а лишь ресайзится и перемещается. К матрице bounds нужно применить пост-матрицу (т.е. уже на готовой коробке произвести какую-то трансформацию) которая сместит коробку в задний левый угол танка и отресайзит правильным образом. Матрица коррекции (ну это MP, если быть более точным) есть функция угла поворота танка (yaw). И не только. Вопрос в том, как собрать эту самую матрицу. Точнее интересует алгоритм, функции (большинство) уже есть на движке, и перемножить динамически две матрицы это не проблема. Трабла в том, что я не понимаю, что именно нужно сделать. Может ремодел для теста создать?Смысл? Этого достаточно в принципе. Нужен алгоритм. Абстрактный. Т.е. для любого угла поворота танка. И любого угла его наклона на поверхности. Да, кстати. Картофель использует эту штуку для позиционирования камеры аркадного режима относительно танка... Но что-то у них я траблов не замечал. Edited July 8, 2016 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
IzeBerg Posted July 8, 2016 Share Posted July 8, 2016 (edited) Это все баг (?) CompundModel. В кэш мода подгружайте после загрузки танчика (хуком в Vehicle.startVisual например) еще одну модель его шасси (BigWorld.Model(vehicle.typeDescriptor.chassis['models']['undamaged'])) и аттачьте её к ноде-шасси (vehicle.model.node('chassis').attach(model)). Потом, вместо использования bounds (или что вы там используете) из модели танка, используйте bounds из кэшированной модели. Расписывал как мог понятнее. =) P.s. Костыль, да, а по другому никак. Edited July 8, 2016 by IzeBerg @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 моделино модель танка это не модель шасси... @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted July 8, 2016 Author Share Posted July 8, 2016 (edited) еще одну модельАга, создать динамический дубликат (фейк, мгновенно и непрерывно следующий за танком) для всех танков и уронить фпс на дно к ракам. Мне это подсказали еще позавчера. Не, если серьезно, то нужно решение без дополнительных моделей, поскольку используется для коллижн-поиска техники и коллижн-тестов. Edited July 8, 2016 by GPCracker 2 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted July 8, 2016 Share Posted July 8, 2016 (edited) @GPCracker, а если аттачить минимальную модель с одним полигоном и с кастомным bbox? WG не оставляет выбора... Edited July 8, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.