forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Обсужение учебника по PhysX Wrapper для Blitz3D (http://forum.boolean.name/showthread.php?t=7569)

Diablomania 16.07.2009 02:20

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Тоесть, как я понял, физика движения чувака будет заменятся физикой капсулы?

ABTOMAT 16.07.2009 02:23

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Ну, это самый растространённый вариант: жрёт немного, пользы много.
А что, ящики пихает - и не скажешь, что капсула.
Круче - тольк оEuphoria, но такое раскурить трудновато будет =\

Diablomania 16.07.2009 02:30

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Полностью согласен с тобою, это хорошый способ. Я даже уже начинаю понимать как будет работать переход через бордюры и ступеньки. Методом скольжения вверх, да? Но всьоже описание профессионала надо. Жду следюющего урока. Когда он будет выпущен в свет?

ABTOMAT 16.07.2009 02:38

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Но всьоже описание профессионала надо.
:rolleyes:
Цитата:

Когда он будет выпущен в свет?
Времена нынче тяжёлые. Как только - так сразу :-)

Diablomania 16.07.2009 02:42

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Лады, как скажеш, будем ждать.

Данил 16.07.2009 11:49

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
ололо, я, как идиот, делал физику игрока обычным кубиком, а потоам еще удивлялся- че-эт он так тупит-то на подъемах :-)

xsnakes 17.07.2009 18:48

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Нашёл эту тему про физик, все файлы скачал, засунул всё в Блитз(из папки bin в bin, из userlibs в userlibs), запускаю пример например 1ый и выдаёт ошибку, даже 2 ошибки:

::::::::::::::::::::::::::::::::::::::::::::::::::
Error has occured at (ТУТ время ошибки)
File name:.\Blitzpx.cpp
Line: 6917
Function: pxCreateWorld
Error message:

Drivers not found!!!!
::::::::::::::::::::::::::::::::::::::::::::::::::
Runtime Error!
Program: C:\Program Files\Blitz3D\bin\blitzcc.exe

abnormal program termination
::::::::::::::::::::::::::::::::::::::::::::::::::

Что делать?

ABTOMAT 17.07.2009 19:30

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
http://www.rubux.net/index.php?optio... =9&Itemid=53

Nex 17.07.2009 20:02

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Ну а как примерно сделать адекватную физику автомобиля? А то я бьюсь уже долго над этим и не получается нифига. :(

NitE 17.07.2009 20:42

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
изучи повнимательнее пример с машиной, или жди, АВТОМАТ наверное и про это напишет после всего остального

jimon 17.07.2009 20:46

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
имхо проблема симуляции автомобиля состоит не в том как его сделать, а в том какие параметры (собсно числа) подставить, раньше когда этим занимался не видел подробных параметров трения шин и работы амортизаторов

xsnakes 17.07.2009 22:37

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
А что нельзя на блитз сделать так, как в 2 примере (ящики с физикой), без PhysX ?

ABTOMAT 17.07.2009 22:50

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Можно :-)

Nex 18.07.2009 22:49

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
ABTOMAT, скажи пожалуйста, как правильно делать физ. объекты, чтобы "физ. сила" действовала на один объект, а не на все сразу? :)
Я переделал пример где стреляют по кубикам под свою "игру" и если стреляю в какой нибудь объект, то двигаются все сразу, а если не много по другому сделаю, то объекты не двигаются, а двигается игрок. :-D
У меня игрок и кубики занесены в разные типы и луч с камерой занесены к игроку в тип...

NitE 19.07.2009 10:03

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
ну так естественно если ты двигаешь все элементы типа они все и будут двигатся КО!

Nex 19.07.2009 11:24

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
NitE, э..., а как по отдельности двигать? Вроде с обычной коллизией у меня такие образом все нормально работало, а тут че то не так. :(

NitE 19.07.2009 12:27

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
ё-маё забывать я всё стал, кинь исходник - поправлю, но вообщем както так -
if mousehit(1)
camerapick cam,512,512
if pickedentity=box
moveentity pickedentity,1,0,0
endif
endif

ABTOMAT 19.07.2009 13:45

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Я переделал пример где стреляют по кубикам под свою "игру" и если стреляю в какой нибудь объект, то двигаются все сразу, а если не много по другому сделаю, то объекты не двигаются, а двигается игрок.
SkyDream, ты такие ужасы рассказываешь :crazy: Могу только предположить, что при переборе объектов ты сразу их и двигаешь без проверки на пик

Nex 19.07.2009 14:00

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Ну я по примеру делал. :)
А вот еще хотел спросить. Что бы допустим сделать "турбину" для вертолета надо тоже вычитывать вектор как в функции "Shoot" только относительно самой "турбины", а не камеры? :)

ABTOMAT 19.07.2009 14:03

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Немного не понял, что за турбина. Двигатель? Если так, то можно сразу же применять силу на вертолёт ничего не пикая. Если надо, чтоб ящики раскидывало, то лучше магнитом

Nex 19.07.2009 14:08

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Я хотел поизвращаться и сделать, что то типа вертиберда, как во Fallout'е :-D

impersonalis 19.07.2009 15:08

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
блин - нужна "версия для печати". С монитора читать напрягает.

Nex 19.07.2009 15:15

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
А какую команду лучше использовать для создания двигателя для вертолета? :)

ABTOMAT 19.07.2009 15:30

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

блин - нужна "версия для печати". С монитора читать напрягает.
В принципе могу взяться оформить в PDF те статьи, что уже есть, хотя бы 1-2 на пробу. + Исправлю наконец очепятки
Цитата:

А какую команду лучше использовать для создания двигателя для вертолета?
Ну было же ж...

http://forum.boolean.name/showpost.p...17&postcount=8

Nex 19.07.2009 15:46

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Сори, я че то не заметил. И прошу прощения за кучу глупых вопросов. Я сегодня че то туплю сильно, на улице под солнышком долго гулял... :)

Slavik 20.07.2009 22:12

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Подскажите кто нить!Пытаюсь сделать гранату,применил PhysX но ни поиму как привязать-например куб Cube = CreateCube() и его физическое тело Body = pxBodyCreateCube(1,1,1,1) к камере так чтоб объект двигался туда куда смотрит камера.
У меня сейчас так.

Type Px_Cube
Field cube_body%
Field cube_mesh%
End Type

Function Create_Px_Cube()
ocu.Px_Cube = New Px_Cube
ocu\cube_body=pxBodyCreateCube(1,1,1, 3)
ocu\cube_mesh=CreateCube()
ScaleEntity ocu\cube_mesh,1,1,1
EntityColor ocu\cube_mesh,Rand(0,255),Rand(0,255),Rand(0,255)

pxBodySetPosition(ocu\cube_body,EntityX(cam)+Rand(-5,5),EntityY(cam)+Rand(-5,5),EntityZ(cam))
pxBodySetRotation(ocu\cube_body,Rand(-90,90),Rand(-90,90),Rand(-90,90))

pxBodyAddForce (ocu\cube_body,180, 0, 0, 1.5)

End Function

Function Update_Px_Cube()
For ocu.Px_Cube = Each Px_Cube
pxBodySetEntity(ocu\cube_mesh, ocu\cube_body)

Next
End Function
В данном случае она двигается только X-180,Y-0,Z-0 тоесть
pxBodyAddForce (ocu\cube_body,180, 0, 0, 1.5)
но чето не то, при повороте камеры троектория не меняется.
Подскажите как бы это реализовать правильно.

3dr1aN 27.07.2009 11:49

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
pxBodyAddLocalForce
инет включили !!!

3dr1aN 27.07.2009 18:54

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
можно подробней про PhysX Remote Debugger, что за формат .pxd ?
запустил дебагер, прогоняю тот же ragDool, ничего не меняется.

sergman 09.08.2009 05:44

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Помогите, пожалуйста
как сделать генерируемый картой высот терайн в physX?

moka 09.08.2009 06:59

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Есть же в стандартных примерах!
Смотри примеры с машинкой тоже..

sergman 09.08.2009 08:50

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
дело в том, что у меня стоит старый враппер, не требующий ключ
функции pxCreateTerrain там нету
терайн в виде модельки отлично грузится через pxCreateStaticTriMesh
с генерируемыми картами не знаю что делать

ABTOMAT 09.08.2009 12:28

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Поставить др. версию враппера?
Или генерировать сетку для террайна своими силами? (в принципе несложно)

sergman 12.08.2009 12:19

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Сообщение от ABTOMAT (Сообщение 113536)
Поставить др. версию враппера?
Или генерировать сетку для террайна своими силами? (в принципе несложно)

никогда бы сам не догадался))))
вроде алгоритмы не сложные, буду генерировать своими силами)

Diablomania 12.08.2009 20:16

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Парни, а помогите ка сделать физический полет пули. Вот например, у меня эсть координаты, куда лететь и где появлятся, вместо пули возьмем простую сферу. Я уже сделал чтоб при создании она создавалась вместе с боди. Тока как сделать силу которая будет толкать её в нужном направлении. Уже при создании новой пули и задавал ей поворот как у перса, и тогда пихал её но она летит в одну сторону. Вот когда делал с обычным moveentity все работало. Тока moveentity body не пихнет. Короч помогите вы. Я пока безсилен.

NitE 12.08.2009 20:20

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
векторы, локальные силыи т.п.

Mr_F_ 12.08.2009 20:39

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
TFormNormal 0,0,1,cam,0
pxBodyAddForce body,TFormedX()*50,TFormedX()*50,TFormedZ()*50,2

как-то так

токо придётся юзать также CCDSkeleton чтобы пуля не протетала на болшой скорости сквоьзь объекты

PalVitalia 16.08.2009 07:27

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Вопрос Автомату, да и всем) по учебнику по PhysX Wrapper для Blitz3D где спецназ подает при нажатии пробела, ни как не могу сообразить к чему привязывать кости?

Spetsnaz = LoadAnimMesh("Spetsnaz.b3d")
SpetsnazPX = LoadAnimMesh("SpetsnazPX.b3d")

Spetsnaz.b3d- это я так понимаю меш с костями?
SpetsnazPX.b3d- а вот с этим туго, тут я так понял создаешь физ.тело вроде хуллов, а кости надо делать именно в этом файле?

загрузил свои файлы вместо этих) у меня появляется моё статическое тело,а физикой со всем не пахнет((( где затупил???

PalVitalia 16.08.2009 07:58

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
да кстати кто спрашивал про террайн???
вот пожалуйста)))


terrain=LoadTerrain("55555.bmp")
TerrainDetail terrain,5000,True
ScaleEntity terrain,10,300,10


grass_tex=LoadTexture( "555.bmp" )
detail=LoadTexture( "22222.jpg" )
EntityTexture terrain,detail,0,1
EntityTexture terrain,grass_tex,0,2
ScaleTexture grass_tex,256,256
ScaleTexture detail, 1,1

ter# = TerrainCreate#(terrain, 10, 300, 10)





Function TerrainCreate#(terrain%, sx, sy, sz)
nSize% = TerrainSize (terrain)
bank = CreateBank((nSize)*(nSize)*4)
For z%=1 To nSize-1
For x% = 1 To nSize-1
Y# = TerrainHeight(terrain,x,z)
PokeFloat bank,(z*(nSize)+x)*4,y
Next
Next
body# = pxCreateTerrain(nSize,bank, sx, sy ,sz)
FreeBank(bank)
Return body
End Function


смотри примеры! там много всего полезного найдёшь!!!

PalVitalia 16.08.2009 08:00

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Сообщение от PalVitalia (Сообщение 114610)
да кстати кто спрашивал про террайн???
вот пожалуйста)))


terrain=LoadTerrain("55555.bmp")
TerrainDetail terrain,5000,True
ScaleEntity terrain,10,300,10


grass_tex=LoadTexture( "555.bmp" )
detail=LoadTexture( "22222.jpg" )
EntityTexture terrain,detail,0,1
EntityTexture terrain,grass_tex,0,2
ScaleTexture grass_tex,256,256
ScaleTexture detail, 1,1

ter# = TerrainCreate#(terrain, 10, 300, 10)





Function TerrainCreate#(terrain%, sx, sy, sz)
nSize% = TerrainSize (terrain)
bank = CreateBank((nSize)*(nSize)*4)
For z%=1 To nSize-1
For x% = 1 To nSize-1
Y# = TerrainHeight(terrain,x,z)
PokeFloat bank,(z*(nSize)+x)*4,y
Next
Next
body# = pxCreateTerrain(nSize,bank, sx, sy ,sz)
FreeBank(bank)
Return body
End Function


смотри примеры! там много всего полезного найдёшь!!!

ток перемещать видимо его нельзя( или я просто незнаю как)))

Nex 16.08.2009 09:41

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Зачем перемещать терраин? :crazy:

PalVitalia 16.08.2009 10:13

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
В принцепе такой нужды и нет,но было бы удобно если поставить его центр, в 0,0,0 координаты

CRASHER 18.08.2009 01:19

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
У меня вот вопрос по пшизу. Все время не понимал почему сочлененные тела искажают оси сочленения под действием ильных и слабых сил. Я думал этого не избежать, но вспомнил пример с разламываливающейся тачкой. Теперь хочу узнать как достич полной стыковки объектов. Спасыб за внемание))))

Nex 18.08.2009 19:47

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Выложите пожалуйста программу, что бы из обычной модельки делала незкополигональную для физического тела. (Забыл название программы) :)

Mhyhr 19.08.2009 12:29

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Выложите пожалуйста программу, что бы из обычной модельки делала незкополигональную для физического тела. (Забыл название программы)
Blender, 3Ds max, Maya?

Nex 19.08.2009 13:18

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Нет. Вроде есть какая то программа от Rendera.

3ghost 21.08.2009 23:20

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Подскажите пожалуста как сделать физику игрока с Physx.

Nex 22.08.2009 03:35

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
3ghost, с помошью капсулы (и че то еще надо сделать), а вообще вот по этому адресу (ссылка ниже :)) скачай архивы и будет тебе физика игрока.

tjslash 19.09.2009 07:53

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Может кто-нибудь добавит урок PhysX для использования управления в шутерах...

Цитата:

3ghost, с помошью капсулы (и че то еще надо сделать), а вообще вот по этому адресу (ссылка ниже ) скачай архивы и будет тебе физика игрока.
Там нет привязки камеры к сфере. Попробовал сам привязать, но при повороте камеры по оси X, сфера не поворачивается и следовательно не туда скользит...

Код:

pxBodySetAngularSpeed(sphere_body, 0,Float(MouseXSpeed()), 0)
        PositionEntity cam,EntityX(sphere,1),EntityY(sphere,1),EntityZ(sphere,1),1
        RotateEntity cam,EntityPitch(cam)+Float(MouseYSpeed())/3.0,EntityYaw(sphere),0,1
        MoveMouse GraphicsWidth()*0.5, GraphicsHeight()*0.5       
       
        If keydownUP Then pxBodyAddForce(sphere_body,0,0,(max_speed-pxBodyGetLinearSpeedZ(sphere_body))*force,0)
        If keydownDOWN Then        pxBodyAddForce(sphere_body,0,0,-(max_speed+pxBodyGetLinearSpeedZ(sphere_body))*force,0)
        If keydownLEFT Then pxBodyAddForce(sphere_body,-(max_speed+pxBodyGetLinearSpeedX(sphere_body))*force,0,0,0)
        If keydownRIGHT Then pxBodyAddForce(sphere_body,(max_speed-pxBodyGetLinearSpeedX(sphere_body))*force,0,0,0)
        If (Not keydownUP) And (Not keydownDOWN) Then pxBodyAddForce(sphere_body,0,0,-pxBodyGetLinearSpeedZ(sphere_body)*force,0)
        If (Not keydownLEFT) And (Not keydownRIGHT) Then pxBodyAddForce(sphere_body,-pxBodyGetLinearSpeedX(sphere_body)*force,0,0,0)

Может кто подскажет что я делаю не так?

Nex 19.09.2009 08:32

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
tjslash,программировать с помощью ctrl+c,ctrl+v нельзя (c)jimon

tjslash 19.09.2009 11:13

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Согласен.
Ну вот как сделать-то, чтоб при повороте физмодель тоже поворачивалась?

tjslash 21.09.2009 12:10

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Здраствуйте, у меня такой вопрос.
Я создал в максе уровень(к примеру просто террайн и коробку), прописал каждому объекту имя(terrain и box, соответственно), потом в блитце загрузил карту через LoadAnimMesh, перебрал все чилды по имени и каждому прописал физическую модель. Но! Для террайна все получилось нормально, а вот для коробки физмодель получилась какая-то непонятная(ширина, глубина в норме, а высота больше чем надо)... Использовал и BodyCreateHull и BodyCreateMesh, но ни то, ни другое не решает данную проблему...
Может кто сталкивался с данной проблемой? Помогите пожалуйста.

Arles 22.09.2009 00:58

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Сообщение от tjslash (Сообщение 119282)
Здраствуйте, у меня такой вопрос.
Я создал в максе уровень(к примеру просто террайн и коробку), прописал каждому объекту имя(terrain и box, соответственно), потом в блитце загрузил карту через LoadAnimMesh, перебрал все чилды по имени и каждому прописал физическую модель. Но! Для террайна все получилось нормально, а вот для коробки физмодель получилась какая-то непонятная(ширина, глубина в норме, а высота больше чем надо)... Использовал и BodyCreateHull и BodyCreateMesh, но ни то, ни другое не решает данную проблему...
Может кто сталкивался с данной проблемой? Помогите пожалуйста.

Если я правильно понял суть проблемы...
Возвращай координаты чилда с параметром "1" типа: EntityX(box,1)

3ghost 22.09.2009 07:05

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Подскажите в чем проблема: Делал заскиненую веревку и столкнулся с проблемой когда начинаю отпарент?овать кости сама веревка встает в другую позицию и плюс к этому ее всю перекручивает:4to: . Так же и с сэмплом рэгдола из учебника правда там эт прикольно выглядит особено руки аля халк:crazy:.
P.s. Эт все чудо происходит в Xors3D в блитце "веревку" не проверял, а рэгдол работает нормально, думается что где то в ксорсе заковыка,а то есть что то, где то не докрутил.

tormoz 22.09.2009 18:15

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Цитата:

Сообщение от 3ghost (Сообщение 119337)
Подскажите в чем проблема: Делал заскиненую веревку и столкнулся с проблемой когда начинаю отпарент?овать кости сама веревка встает в другую позицию и плюс к этому ее всю перекручивает:4to: . Так же и с сэмплом рэгдола из учебника правда там эт прикольно выглядит особено руки аля халк:crazy:.
P.s. Эт все чудо происходит в Xors3D в блитце "веревку" не проверял, а рэгдол работает нормально, думается что где то в ксорсе заковыка,а то есть что то, где то не докрутил.


А разве у физиксовской веревки есть кости ?
Делал веревки на ксорсе, и выяснил, что нельзя в реалтайме укорачивать, можно только удлиннять. Если нужно укоротить - приходится всю веревку пересоздавать заново.
Вообще крайне капризная вещь - тряпки веревки. Часто беспричинно вываливаются в мав, непредсказуемо дергаются и тд

3ghost 23.09.2009 01:19

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Вложений: 3
я как хотел сделать, есть меш заскиненый, кости и боди для костей. Кости отпарент?иваются и цепляются к соответствующим боди, боди цепляются джоинтами и в принципе должна получиться веревка ну или рэгдол змеи для кого как. Во общем при отпарент?овании меш сдвигается и скручивается.
на скринах все видно:
1й скрин-до,2й-после и 3й если применить xEntityparent ко всему мешу и по моему такого быть не должно.

ABTOMAT 23.09.2009 02:12

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
А что физиксовый дебаггер показывает?
По скрину - явно проблема с костями

3ghost 23.09.2009 04:30

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Вложений: 1
2ABTOMAT физ.дебагер показывает что все нормально. И да вот как выглядит твой сэмпл рэгдола(Xors3d):

ABTOMAT 24.09.2009 02:05

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Ну, это тогда к ксорсу...
Кстати я не уверен, что ты верно перевёл.

3ghost 25.09.2009 06:42

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Вполне возможно что не правильно.
Вот сам код:
Код:

Include "xors3d.bb"
xGraphics3D 800,600,32,0,0
xSetBuffer xBackBuffer()

pxCreateWorld(1,"http://forum.boolean.name/")

Log=xCreateLog(1,0,"log.html")

cam = xCreateCamera()
xPositionEntity cam,0,100,-200
xCameraClsColor cam,128,128,128
xCreateLight()

plane =xCreateCube()
xScaleEntity plane,1000,1,1000
xPositionEntity plane,0,0,0
xEntityColor plane, 0,128,128

Global Spetsnaz = xLoadAnimMesh("Spetsnaz.b3d")
Global Walk = xLoadAnimSeq(Spetsnaz, "Walk.b3d")
Global SpetsnazPX = xLoadAnimMesh("SpetsnazPX.b3d")

xHideEntity  Spetsnaz
xHideEntity SpetsnazPX

Global Kalash = xLoadSound("ak47-1.wav")

Repeat






        If xKeyHit(57) Then CreateMan(Spetsnaz, SpetsnazPX,Rand(-100,100),50,Rand(0,100))
        If xKeyHit(42) Then RagDollAllMen()
       
        If xMouseHit(1) Then Shoot(cam, xMouseX(), xMouseY())
        pxRenderPhysic(30,0)
        UpdateRagdolls()
        xUpdateWorld()
        xRenderWorld()
        xFlip
Until xKeyHit(1)
End

Type Ragdoll
        Field Mesh ; Ìîäåëüêà
        Field Joints[100] ; Õåíäëû äæîéíòîâ
        Field Bodies[100] ; Õåíäëû òåë
        Field Bones[100] ; Õåíäëû êîñòåé
End Type

Function CreateRagdoll(man, px)
        xAnimate man,0,0,1
        R.Ragdoll = New Ragdoll       
                R\Mesh = xGetChild(man,0)
                xEntityParent R\Mesh,0
                xFreeEntity man
        CreateHullsForAllChilds(R\Mesh, px, R)
        DeparentAllChilds(R\Mesh)
End Function

Function DeparentAllChilds(mesh)
        Repeat
                If xCountChildren(mesh)-1 = 0 Then Exit
                DeparentAllChilds(xGetChild(mesh,0))
        Forever
                xEntityParent mesh,0
End Function

Function UpdateRagdolls()
        For R.Ragdoll = Each Ragdoll
                For i= 0 To 100
                        If R\Bodies[i] = 0 Then Exit
                        pxBodySetEntity R\Bones[i], R\Bodies[i]
                Next
        Next
End Function

Function CreateHullsForAllChilds(mesh, pxmesh, R.Ragdoll, batya=0)
        HullMesh = xFindChild(pxmesh, xEntityName(mesh)+"px")
        If HullMesh Then
                Hull = BodyCreateHull(HullMesh, 10);pxBodyCreateSphere(1,10)
                pxBodySetPosition Hull, xEntityX(Mesh,1), xEntityY(Mesh,1), xEntityZ(Mesh,1)
                pxBodySetRotation Hull, xEntityPitch(Mesh,1), xEntityYaw(Mesh,1), xEntityRoll(Mesh,1)
               
                For i=0 To 100
                        If R\Bodies[i] = 0 Then
                                R\Bodies[i] = Hull
                                R\Bones[i] = Mesh
                                Exit
                        End If
                Next               
                If Batya Then
                        Joint = pxJointCreateSpherical (batya,Hull,pxBodyGetPositionX(Hull),pxBodyGetPositionY(Hull),pxBodyGetPositionZ(Hull),0,1,0)
                        pxJointSphericalSetLimitAngle(Joint, 30,1, 0)
                        pxJointSphericalSetLimitTwist(Joint,-10,10,10,1,0)
                        pxJointSphericalSetLimitSpring(Joint, 10, 1, 0)
                        For i=0 To 100
                        If R\Joints[i] = 0 Then
                                R\Joints[i] = Joint
                                Exit
                        End If
                Next       
                End If
        End If
        For i=1 To xCountChildren(mesh)-1
                CreateHullsForAllChilds(xGetChild(mesh,i), pxmesh, R, Hull)
        Next
End Function

Function BodyCreateHull%(mesh,mass)
VB = xGetMeshVB(mesh)
VB_size = xGetMeshVBSize(mesh)

in_mesh%=pxBodyCreateHull(VB,VB_size,mass)
xDeleteMeshVB(VB)
Return in_mesh
End Function

Type Man
        Field Mesh
        Field pxMesh
        Field PickPivot
End Type

Function CreateMan(Mesh, pxMesh, x#,y#,z#)
        M.Man = New Man
        M\Mesh = xCopyEntity(Mesh)
        xPositionEntity M\Mesh,x,y,z
        xAnimate M\Mesh,1,.5,1
        M\PXMesh = PXMesh
       
        M\PickPivot = xCreatePivot()

        xPositionEntity M\PickPivot,x,y+35,z
        xEntityPickMode M\PickPivot, 1
        xEntityRadius M\PickPivot,15,40
End Function

Function RagDollAllMen()
        For M.Man = Each Man
                CreateRagdoll(M\Mesh, M\pxMesh)
                xFreeEntity M\PickPivot
                Delete M
        Next
End Function

Function Shoot(cam, x,y)
        xPlaySound Kalash
        xCameraPick cam, x,y       
        If xPickedEntity() Then
                For M.Man = Each Man
                        If M\PickPivot = xPickedEntity() Then
                                CreateRagdoll(M\Mesh, M\pxMesh)
                                xFreeEntity M\PickPivot
                                Delete M
                                Exit
                        End If
                Next
        End If
End Function


ABTOMAT 25.09.2009 12:20

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Явно где-то какой-то чайлд неотпарентчен (по скрину)
Приду домой - буду пробовать выяснять в чём дело

В принципе у себя в РПГ я юзал способ создания регдолла посложнее - без отпарентивания костей. Дак там никаких проблем не было (при переходе на ксорс). Это единственное принципиальное различие (не считая пре-обработки) - там и буду ковырять

CRASHER 28.09.2009 20:44

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
3ghost, у меня была такая штука. Переустанови блитз и заново закинь в него хорс и физикс. Используй все самое новое!!! это важно!
ЗЫ: Возможно даже придется скачивать инстали для них снова

Slavik 03.10.2009 18:18

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Товарещи у меня такой вапрос.Установил PhysX Wrapper для Blitz3D а через время заметел проблему,что после запуска фаила,примерно через четыре-шесть минут (PhysX-физические тела завесают) тоесть камера вертится а остольные функции не действуют.Может я чето при установке напутал или ключ какой нужен?

ABTOMAT 03.10.2009 18:44

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
Нужен ключ.

soneek 29.10.2009 13:17

Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
 
А где взять то ключик?


Часовой пояс GMT +4, время: 01:30.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot