[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Результаты поиска
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
нет не исправлю, т.к. не знаю причины ошибки

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (AlexBond)
Worms 4 -> fopen -> msvcr71.dll -> TextureLoader -> fopen -> msvcr72.dll

решил проверить эту штуку на деле... получился облом... Они оказывается в этой библиотеке используют функции как переменные, поэтому переадресация не работает... Жаль... Хотел сделать загрузчик для Лицензии...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Получилось!!! Теперь карты будут работать на всех версиях и на лицензионных тоже!!!

Создал три файла:
msvcr7.dll
msvcr71.dll
w3dmapper.dll

И никакой загрузчик не нужен!!!!
Всё прекрасно работает!!!


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
насобираю несколько карт и выпущу новую версию загрузчика

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8

Делаю =)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
это еще почему?

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Дабы не мучатся при создании пака карт я решил создать W4ScriptsEditor
Как доделаю выложу =)



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Cezar)
но зачем скрипты?

Список карт которые загружаются в игру находятся в файле Scripts.xml
Моя программа редактирует (Edit) файл с именем Scripts
Отсюда и название ScriptsEditor....

P.S. Интеллект это умение промолчать.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Держи
Code
    <w4worm.xom>
   XAnimClipLibrary [277]
   "XCULLEDboggyb" KeyTypes[232]
   Clips[329]
   AnimName = "A" (0.04s)
   AnimName = "AT_FB" (2.00s)
   AnimName = "AT_LR" (2.00s)
   AnimName = "Abductee" (0.33s)
   AnimName = "Activate" (1.00s)
   AnimName = "AimBazooka" (2.00s)
   AnimName = "AimBow" (2.00s)
   AnimName = "AimFP" (2.00s)
   AnimName = "AimGrenade" (2.00s)
   AnimName = "AimHomingMissile" (2.00s)
   AnimName = "AimLockHomingMissile" (1.08
   AnimName = "AimNinjarope" (2.00s)
   AnimName = "AimPipe" (2.00s)
   AnimName = "AimShotgun" (2.00s)
   AnimName = "AimSniper" (2.00s)
   AnimName = "Angry" (2.00s)
   AnimName = "AngryMouth" (2.00s)
   AnimName = "Awestruck" (2.00s)
   AnimName = "AwestruckMouth" (2.00s)
   AnimName = "Backflip" (0.75s)
   AnimName = "Base" (2.00s)
   AnimName = "BeamUpLoop" (2.92s)
   AnimName = "Blank" (2.00s)
   AnimName = "BlankMouth" (2.00s)
   AnimName = "Blastflight2" (1.00s)
   AnimName = "Blastflight3" (0.50s)
   AnimName = "Blastflight4" (1.00s)
   AnimName = "Blastflight5" (1.00s)
   AnimName = "Blink" (0.21s)
   AnimName = "Blow" (4.67s)
   AnimName = "Bored" (12.79s)
   AnimName = "Brake" (3.63s)
   AnimName = "BringItOn" (2.92s)
   AnimName = "CantLook" (2.00s)
   AnimName = "CantLookMouth" (2.00s)
   AnimName = "Chat" (8.33s)
   AnimName = "ChatEmote" (8.33s)
   AnimName = "ChatEmoteMouth" (8.33s)
   AnimName = "Cheer" (2.58s)
   AnimName = "Chew" (7.00s)
   AnimName = "Chuckle" (3.13s)
   AnimName = "Chuckle2" (3.13s)
   AnimName = "ClaspHands" (3.58s)
   AnimName = "ClutchChest" (7.08s)
   AnimName = "Cons" (0.04s)
   AnimName = "CountFingers" (8.00s)
   AnimName = "Cover_Head" (3.13s)
   AnimName = "Cower" (3.83s)
   AnimName = "CowerEmote" (3.83s)
   AnimName = "CowerEmoteMouth" (3.83s)
   AnimName = "Curious" (2.00s)
   AnimName = "CuriousMouth" (2.00s)
   AnimName = "Daft" (2.00s)
   AnimName = "Daft2" (2.00s)
   AnimName = "Daft2Mouth" (2.00s)
   AnimName = "DaftMouth" (2.00s)
   AnimName = "Disbelief" (4.25s)
   AnimName = "Disgust" (2.00s)
   AnimName = "DisgustMouth" (2.00s)
   AnimName = "Doh" (1.25s)
   AnimName = "DrawAirstrike" (0.50s)
   AnimName = "DrawBT" (1.08s)
   AnimName = "DrawBat" (1.33s)
   AnimName = "DrawBazooka" (0.58s)
   AnimName = "DrawBow" (0.67s)
   AnimName = "DrawDynamite" (0.58s)
   AnimName = "DrawFirepunch" (0.50s)
   AnimName = "DrawGirder" (0.08s)
   AnimName = "DrawHomingMissile" (1.00s)
   AnimName = "DrawLandmine" (0.25s)
   AnimName = "DrawNMN" (0.67s)
   AnimName = "DrawNinjarope" (0.63s)
   AnimName = "DrawOldWoman" (1.25s)
   AnimName = "DrawProd" (0.50s)
   AnimName = "DrawRainDance" (1.08s)
   AnimName = "DrawRedbull" (0.50s)
   AnimName = "DrawScouser" (0.25s)
   AnimName = "DrawSentrygun" (0.50s)
   AnimName = "DrawSheep" (0.54s)
   AnimName = "DrawShotgun" (0.75s)
   AnimName = "DrawSkipGo" (0.25s)
   AnimName = "DrawSniper" (0.50s)
   AnimName = "DrawStarburst" (1.08s)
   AnimName = "DrawSurrender" (0.33s)
   AnimName = "DrawThrown" (0.58s)
   AnimName = "DrawWFGun" (0.75s)
   AnimName = "Drunk" (2.00s)
   AnimName = "DrunkMouth" (2.00s)
   AnimName = "EI" (0.04s)
   AnimName = "EmoteBlend" (1.00s)
   AnimName = "Empty" (2.00s)
   AnimName = "EmptyMouth" (2.00s)
   AnimName = "EvilGrin" (2.00s)
   AnimName = "EvilGrinMouth" (2.00s)
   AnimName = "Eyes_LR" (2.00s)
   AnimName = "Eyes_UD" (2.00s)
   AnimName = "FP" (0.04s)
   AnimName = "FPX" (2.00s)
   AnimName = "FPY" (2.00s)
   AnimName = "FPZ" (2.00s)
   AnimName = "FV" (0.04s)
   AnimName = "FakeShotgun" (2.50s)
   AnimName = "Fall" (0.25s)
   AnimName = "FallDrown" (2.00s)
   AnimName = "Fire1Bat" (0.58s)
   AnimName = "Fire1Firepunch" (0.17s)
   AnimName = "Fire2Bat" (1.04s)
   AnimName = "Fire2Firepunch" (9.17s)
   AnimName = "FireBT" (0.79s)
   AnimName = "FireBazooka" (1.00s)
   AnimName = "FireBow" (1.00s)
   AnimName = "FireDynamite" (1.04s)
   AnimName = "FireHomingMissile" (1.00s)
   AnimName = "FireLandmine" (0.83s)
   AnimName = "FireNMN" (2.13s)
   AnimName = "FireNinjarope" (0.50s)
   AnimName = "FireOldWoman" (0.54s)
   AnimName = "FireProd" (0.67s)
   AnimName = "FireRainDance" (6.42s)
   AnimName = "FireRedbull" (2.17s)
   AnimName = "FireScouser" (0.83s)
   AnimName = "FireSentrygun" (0.50s)
   AnimName = "FireSheep" (0.67s)
   AnimName = "FireShotgun" (0.67s)
   AnimName = "FireSniper" (0.50s)
   AnimName = "FireStarburst" (3.50s)
   AnimName = "FireThrown" (0.71s)
   AnimName = "FireWFGun" (1.00s)
   AnimName = "FlickBogey" (4.79s)
   AnimName = "FlyRedBull" (1.00s)
   AnimName = "FlyStarburst" (1.00s)
   AnimName = "Frown" (2.00s)
   AnimName = "FrownMouth" (2.00s)
   AnimName = "Fwdflip" (0.75s)
   AnimName = "Gasp" (2.50s)
   AnimName = "Glide" (0.50s)
   AnimName = "Grumpy" (2.00s)
   AnimName = "GrumpyMouth" (2.00s)
   AnimName = "Guilty" (4.17s)
   AnimName = "Gunslinger1" (8.54s)
   AnimName = "Gunslinger2" (10.96s)
   AnimName = "Happy" (2.00s)
   AnimName = "HappyMouth" (2.00s)
   AnimName = "HeadRotX" (2.00s)
   AnimName = "HeadRotY" (2.00s)
   AnimName = "Hit_Back" (3.17s)
   AnimName = "Hit_Front" (0.83s)
   AnimName = "Hit_Left" (1.33s)
   AnimName = "Hit_Right" (1.33s)
   AnimName = "HoldAirstrike" (4.00s)
   AnimName = "HoldBT" (1.96s)
   AnimName = "HoldBat" (2.00s)
   AnimName = "HoldBazooka" (2.00s)
   AnimName = "HoldBow" (1.83s)
   AnimName = "HoldDynamite" (2.00s)
   AnimName = "HoldFirepunch" (1.33s)
   AnimName = "HoldGirder" (8.67s)
   AnimName = "HoldHomingMissile" (2.00s)
   AnimName = "HoldLandmine" (2.00s)
   AnimName = "HoldNMN" (2.00s)
   AnimName = "HoldNinjarope" (2.00s)
   AnimName = "HoldOldWoman" (0.50s)
   AnimName = "HoldProd" (2.00s)
   AnimName = "HoldRainDance" (2.00s)
   AnimName = "HoldRedbull" (2.00s)
   AnimName = "HoldScouser" (2.00s)
   AnimName = "HoldSentrygun" (1.00s)
   AnimName = "HoldSheep" (2.00s)
   AnimName = "HoldShotgun" (1.00s)
   AnimName = "HoldSkipGo" (0.50s)
   AnimName = "HoldSniper" (2.00s)
   AnimName = "HoldStarburst" (1.79s)
   AnimName = "HoldSurrender" (1.67s)
   AnimName = "HoldThrown" (2.17s)
   AnimName = "HoldWFGun" (1.00s)
   AnimName = "HopLeft" (0.33s)
   AnimName = "HopRight" (0.33s)
   AnimName = "Ill" (1.00s)
   AnimName = "IllMouth" (1.00s)
   AnimName = "Inactive" (2.00s)
   AnimName = "InactiveMouth" (2.00s)
   AnimName = "Incredulity" (2.00s)
   AnimName = "IncredulityMouth" (2.00s)
   AnimName = "Indicate" (5.83s)
   AnimName = "InspectHair" (4.00s)
   AnimName = "InspectHands" (6.46s)
   AnimName = "InspectHandsStart" (0.58s)
   AnimName = "Interested" (2.00s)
   AnimName = "Interested2" (2.00s)
   AnimName = "Interested2Mouth" (2.00s)
   AnimName = "InterestedMouth" (2.00s)
   AnimName = "JetpackBump" (0.58s)
   AnimName = "JetpackFly" (2.00s)
   AnimName = "JetpackRotLR" (2.00s)
   AnimName = "Jump" (0.25s)
   AnimName = "Jump_Start" (0.29s)
   AnimName = "L" (0.04s)
   AnimName = "LRNinjarope" (2.00s)
   AnimName = "Land" (0.42s)
   AnimName = "LeftArmRotX" (2.00s)
   AnimName = "LeftArmRotY" (2.00s)
   AnimName = "LiveLongAndProsper" (2.83s)
   AnimName = "LobThrown" (1.00s)
   AnimName = "MBP" (0.04s)
   AnimName = "Nailed" (2.50s)
   AnimName = "NailedDrawSkipGo" (0.50s)
   AnimName = "NailedFireSkipGo" (8.50s)
   AnimName = "NailedHitBack" (0.92s)
   AnimName = "NailedHitFront" (0.92s)
   AnimName = "NailedHitLeft" (0.92s)
   AnimName = "NailedHitRight" (0.92s)
   AnimName = "NailedHoldSkipGo" (2.00s)
   AnimName = "Nervous" (2.00s)
   AnimName = "NervousMouth" (2.00s)
   AnimName = "NoEyebrows" (2.00s)
   AnimName = "Nod" (1.33s)
   AnimName = "Normal" (2.00s)
   AnimName = "NormalMouth" (2.00s)
   AnimName = "O" (0.04s)
   AnimName = "ParachuteLR" (2.00s)
   AnimName = "ParachuteWobble" (0.50s)
   AnimName = "Patronising" (2.00s)
   AnimName = "PatronisingMouth" (2.00s)
   AnimName = "Peep" (2.33s)
   AnimName = "Point" (26.67s)
   AnimName = "PointAndLaugh" (5.83s)
   AnimName = "Poke" (2.00s)
   AnimName = "PolishEyebrow" (6.25s)
   AnimName = "PoseBlend" (1.00s)
   AnimName = "Pray" (4.42s)
   AnimName = "PullNinjarope" (2.00s)
   AnimName = "Puzzled" (2.83s)
   AnimName = "QUW" (0.04s)
   AnimName = "RecoverBack1" (6.00s)
   AnimName = "RecoverBack2" (6.00s)
   AnimName = "RecoverBurried1" (2.63s)
   AnimName = "RecoverFront1" (9.50s)
   AnimName = "RecoverFront2" (1.67s)
   AnimName = "RightArmRotX" (2.00s)
   AnimName = "RightArmRotY" (2.00s)
   AnimName = "Sad" (2.00s)
   AnimName = "SadMouth" (2.00s)
   AnimName = "SadSigh" (3.00s)
   AnimName = "Salute" (3.00s)
   AnimName = "ScaleHandsUp" (3.00s)
   AnimName = "Scared" (2.00s)
   AnimName = "ScaredMouth" (2.00s)
   AnimName = "Scoreboard" (2.83s)
   AnimName = "ScratchHead" (2.17s)
   AnimName = "Search" (3.54s)
   AnimName = "SeeImpact" (1.00s)
   AnimName = "ShakeHead" (1.50s)
   AnimName = "Shake_Fist" (2.08s)
   AnimName = "Shriek" (1.25s)
   AnimName = "SighAndShakeHead" (5.54s)
   AnimName = "Skid" (1.00s)
   AnimName = "SkidArms" (1.00s)
   AnimName = "SlightlyInterested" (2.00s)
   AnimName = "Sneer" (4.17s)
   AnimName = "Sneeze" (1.67s)
   AnimName = "Sneeze2" (0.58s)
   AnimName = "Squish" (1.00s)
   AnimName = "StartRedBull" (1.00s)
   AnimName = "Startled" (0.83s)
   AnimName = "SwingNinjarope" (2.00s)
   AnimName = "TailAngle" (2.00s)
   AnimName = "TailLag" (2.00s)
   AnimName = "TailLagLeft" (0.21s)
   AnimName = "TailLagRight" (0.21s)
   AnimName = "Tantrum" (2.00s)
   AnimName = "Taunt1" (2.00s)
   AnimName = "Taunt2" (2.50s)
   AnimName = "Taunt3" (6.29s)
   AnimName = "TauntAirstrike" (4.00s)
   AnimName = "TauntBT" (1.96s)
   AnimName = "TauntBat" (2.00s)
   AnimName = "TauntBazooka" (2.00s)
   AnimName = "TauntBow" (2.17s)
   AnimName = "TauntDynamite" (2.42s)
   AnimName = "TauntFirepunch" (3.13s)
   AnimName = "TauntHomingMissile" (2.00s)
   AnimName = "TauntNMN" (2.00s)
   AnimName = "TauntNinjarope" (2.00s)
   AnimName = "TauntOldWoman" (2.00s)
   AnimName = "TauntProd" (1.33s)
   AnimName = "TauntRainDance" (2.00s)
   AnimName = "TauntRedbull" (2.00s)
   AnimName = "TauntScouser" (2.00s)
   AnimName = "TauntSentrygun" (1.00s)
   AnimName = "TauntSheep" (1.96s)
   AnimName = "TauntShotgun" (2.00s)
   AnimName = "TauntSniper" (2.00s)
   AnimName = "TauntSurrender" (1.67s)
   AnimName = "TauntThrown" (2.00s)
   AnimName = "TauntWFGun" (2.00s)
   AnimName = "Teeth" (2.00s)
   AnimName = "TelepadAppear" (3.00s)
   AnimName = "TelepadVanish" (3.00s)
   AnimName = "Terror" (2.00s)
   AnimName = "TerrorMouth" (2.00s)
   AnimName = "Thinking" (5.17s)
   AnimName = "ThumbBlank" (2.50s)
   AnimName = "Thumbs_Up" (2.50s)
   AnimName = "TipAngle" (2.00s)
   AnimName = "Titter" (2.83s)
   AnimName = "Vault" (0.42s)
   AnimName = "Victorious_Grin" (2.00s)
   AnimName = "Victorious_GrinMouth" (2.00s
   AnimName = "Vomit" (3.42s)
   AnimName = "Walk" (0.50s)
   AnimName = "WalkTail" (0.50s)
   AnimName = "Watch_Distant" (5.50s)
   AnimName = "Wave" (2.00s)
   AnimName = "WaveAndPoint" (3.54s)
   AnimName = "WhatWereYouThinking" (3.8
   AnimName = "WhatsThatNoise" (3.63s)
   AnimName = "Wiggle" (0.17s)
   AnimName = "WiggleBrows" (1.17s)
   AnimName = "WindupBat" (0.25s)
   AnimName = "WindupBazooka" (0.25s)
   AnimName = "WindupBow" (1.00s)
   AnimName = "WindupFirepunch" (0.33s)
   AnimName = "WindupThrown" (1.50s)
   AnimName = "Wipe_Brow" (4.17s)
   AnimName = "Wounded" (2.00s)
   AnimName = "WoundedMouth" (2.00s)
   AnimName = "Yawn" (3.63s)
   AnimName = "Yawn2" (4.42s)
   AnimName = "YouLookBad" (5.92s)
   <w4worm.xom>

В XomView 2.5 версии анимация боле менее понятна, правда так баг с размером рук, но это ничего.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Хоть что-то сделал в этом году полезного cool Хотел сделать больше, но не вышло... жизненные сложности, но червей я не покинул! =)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Получив следующее ЛС, я задумался, а может и вправду сделать?

Quote (rocketvadim)
Привет! Недавно в какой-то теме мы рассуждали об изменении анимаций оружия. Woitek сказал, что можно как-то декодировать анимации для их редактирования. Вот я и подумал: может ы сможешь написать прогу типо W4AnimEditor или че-то вроде того? Я знаю, это нелегко, да и не факт, что возможно, но все же. Если что, могу попытаться чем-нибудь помочь, тестированием например.

Теория

Анимация в Червяках не так уж и сложна, сложным является перенос ее в другие редакторы, поэтому написания своего редактора анимации - единственный выход.
Анимация состоит из ключей, причем идет набор ключей под каждый объект. Пример, у объекта вращается куб вокруг оси х
значит создается набор из ключей

Объек.куб.вращение.осьX

Набор ключей представляет собой график кривой

Вот как сохраняет анимацию 3DS MAX формат *.xaf

Code
<Controller name="backbone \ Transform \ Rotation \ Z Rotation" classOf="Bezier Float" classID="2007,0" superClassID="9003" subNum="2" numChildren="0" filterType="rotz" outOfRangeBefore="constant" outOfRangeAfter="constant">
<Keys count="7" inRangeLoop="false" outRangeLoop="false">
<Key t="0" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="0.874537 " inTanVal="0.0 " outTanVal="0.0 " inLen="-1.000000 " outLen="0.333300 "/>
<Key t="1333" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="-0.022299 " inTanVal="0.0 " outTanVal="0.0 " inLen="0.333300 " outLen="0.333300 "/>
<Key t="5333" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="0.874537 " inTanVal="0.0 " outTanVal="0.0 " inLen="0.333300 " outLen="0.333300 "/>
<Key t="8000" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="0.874537 " inTanVal="0.0 " outTanVal="0.0 " inLen="0.333300 " outLen="0.333300 "/>
<Key t="9333" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="-0.022299 " inTanVal="0.0 " outTanVal="0.0 " inLen="0.333300 " outLen="0.333300 "/>
<Key t="13333" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="0.874537 " inTanVal="0.0 " outTanVal="0.0 " inLen="0.333300 " outLen="0.333300 "/>
<Key t="16000" xB="false" yB="false" zB="false" wB="false" cVel="false" unconHan="false" inTan="flat" outTan="flat" v="0.874537 " inTanVal="0.0 " outTanVal="0.0 " inLen="0.333300 " outLen="-1.000000 "/>
</Keys>
</Controller>

Итак, XomView у нас есть, в котором анимация проигрывается, остается лишь создать удобный редактор этой анимации, жду предложений, все рассмотрю, когда будет время.

Прикрепления: 0062181.png (35.3 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Люди вырубите снег, очень прошу, невозможно работать проц на 100%
Или расскажите способ вырубить чисто для меня =)

P.S. Уже решил. Отрубил сам, в Adblock Plus
http://w4tweaks.ru/snowstorm.js


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Итак первое задание для всех кто желает помочь:

Попробовать все возможные редакторы с анимацией и выбрать наиболее подходящий и удобный. Жду ответов.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Значит реализовать редактирование как в W3DMapEditor ?

В принципе все реально, только вот нужно время и не мало... 10

Что выбрать?
1. Переделываю XomView в W4AnimEdit.
2. Добавляю в XomView функцию редактирования анимации.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кое как упростил интерфейс XomView, думаю понравится =)

Прикрепления: 3969689.png (83.3 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Не возникнет, т.к. это будет XomView с функциями редактирования анимации. Это еще один шаг к XomEditor'у который и был первоначальным проектом, еще в 2007 году... Но очень сложным оказался...

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
3DS формат плох тем что в нем нету нормалей, а писать генератор нормалей мне лень... Да и групп в 3DS нет, а без групп никак не организовать структуру Xom3D файла... Да и смысл пообъектно вставлять?

Могу лишь создать нормальный Xom3D формат с плагинами для всех известных 3D редакторов (если свои плагины там поддерживаются), если хотите =)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
+ добавь время которое AlexBond будт сдавать сессию....
+ лень AlexBond'a

12

Только что тестировал Xom3D для объектов с костями в 3DSMAX

Пока лишь работает в одну сторону 2

Прикрепления: 5279406.png (75.0 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (rocketvadim)
в какую?

В Экспорт...

Obj... Ну не знаю, мне Obj не нравится, там слишком мало функций, нету матриц трансформации, групп и относительного позиционирования...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Только XomView имеет доступ к w4worm.xom и вроде бы любая версия выше 2.0 может импортировать текстуру. Не вижу сложностей.

 
Поиск: