XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > StarCraft (только чтение)> StarCraft 2 inside
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.


 
retralko
SHOW TIME
offline
Опыт: 11,669
Активность:
Кабину можно сделать самому, там простое синее стекло (вроде). Анимки можно уже самому замутить, главно геометрия скопировалась!
Старый 02.03.2010, 19:46
Nikikin
Ку-ку
offline
Опыт: 8,994
Активность:
FellGuard, мужик супер))
ваще тащиш, молодец
Старый 03.03.2010, 01:15
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
FellGuard, как его юзать? Кинул в папку с прогой модель, запустил батник - ругается на "параллельную конфигурацию приложения". В том числе и на ассимилятор.
» Журнал событий:
Ошибка при создании контекста активации для "C:\Users\Administrator\Desktop\Новая папка (2)\ModelConverter.exe". Не найдена зависимая сборка "Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e​18e3b",type="win32",version="8.0.50608.0"". Используйте sxstrace.exe для подробной диагностики.

Отредактировано Wolverine, 03.03.2010 в 02:20.
Старый 03.03.2010, 02:15
Кет

offline
Опыт: 111,109
Активность:
Пиначет, какую ошибку? Что "модель повреждена"?
Старый 03.03.2010, 03:45
ScorpioT1000
Работаем
offline
Опыт: отключен
да фг не мог нормально скомпилить тт
Старый 03.03.2010, 11:47
Nikikin
Ку-ку
offline
Опыт: 8,994
Активность:
Вот какая проблема при конвретации
Миниатюры
Кликните на картинку для увеличения
Название:  Безымянный.jpg
Просмотров: 101
Размер:  49.4 Кбайт  
Старый 03.03.2010, 14:05
ScorpioT1000
Работаем
offline
Опыт: отключен
перенёс на динамические массивы) (stl vector)
вот то, что пока работает..
нормали не читаются, просто заполнили вертикальными
ScorpioT1001 добавил:
кстати, ни одна из моих примеров моделей не перенеслась адекватно. но ассимилятор пашет. попробуйте ещё здания
ScorpioT1001 добавил:
новая версия скрипта с starcraft.incgamers.com/forums/showthread.php?p=25589
» code
<?php
# StarCraft 2 M3 to OBJ Converter v0.5
#########################
    $temp = explode(".m3", $argv[1]);
    $file = $argv[1];
    $export = $temp[0] . ".obj";
########################    
function uint32($offset){
  global $file;
  fseek($file, $offset);
  $uint32 = unpack(V, fread($file, 4));
  return $uint32[1];
}
function uint16($offset){
  global $file;
  fseek($file, $offset);
  $uint16 = unpack(v, fread($file, 2));
  return $uint16[1];
}
function uint8($offset){
  global $file;
  fseek($file, $offset);
  $uint8 = unpack(C, fread($file, 1));
  return $uint8[1];
}
function float16($offset){
  global $file;
  fseek($file, $offset);
  $float = unpack(f, fread($file, 4));
  return $float[1];
}
    echo("Exporting Model $path to $path.obj\n\n");
    $file = fopen($file, 'rb') or die("Failed to open $file!\n");
    if(fread($file,4) != "33DM") die("Failed! File is not a StarCraft 2 model!\n");
    fseek($file, 4); # find where tags start
    $tags = uint32(4); //start of tags
    $offset = uint32($tags + 20) + 4*16;
    $flags = uint32($offset);
    if (($flags & 1) == 0) {
      $EOB = 4; 
    } else { 
      $EOB = 8; 
    } # bytes to reach end of vertex block after uv
    $vertLength = uint32($offset+8); # length of vertex block
    $index = uint32($offset+12); # vertex tag index
    $offVerts = uint32($index*16 + $tags + 4); # vertex tag
    if ($EOB == 4) {
      $nVerts = $vertLength / 32;
    } else {
      $nVerts = $vertLength / 36;
    }
    $index = uint32($offset+20); # DIV tag index    
    $offDIV = uint32($index*16 + $tags + 4); # DIV tag
    $k = 0;
    for($i=0;$i<$nVerts;$i++){
      for($j=0;$j<3;$j++){ # read verts
        $vert[3*$i+$j] = float16($offVerts);#$read[1];
        $offVerts +=4;
      }
      # bone weights [4]
      # bones [4]
      $offVerts+=8;
      $w = 2*uint8($offVerts+3)/255-1; // need w to convert to cartesian.
      for($j=0;$j<3;$j++){ # read verts
        $normal[3*$i+$j] = (2*uint8($offVerts)/255-1)/$w;
        $offVerts +=1;
      }
      $offVerts++;
      for($j=0;$j<2;$j++){ # read UV
        $raw = uint16($offVerts);# normal
        if ($raw > 2046){
          $uv[$k] = $raw / 65535;
        } else {
          $uv[$k] = $raw / 2048;
        } 
        $offVerts +=2;
        $k++;
      }
      $offVerts+=$EOB;    
    }
    # Read Face # and offset from DIV
    $nFaces = uint32($offDIV) / 3;
    $index = uint32($offDIV+4); # faces tag
    $offFaces = uint32($index*16 + $tags + 4);
    $nRegions = uint32($offDIV+8);
    $index = uint32($offDIV+12); # Regions Tag
    $offRegions = uint32($index*16 + $tags + 4);
    # Build Regions
    for ($i=0;$i<2*$nRegions;$i+=2){      
      $Region[$i] = uint32($offRegions+8) / 3; # offset
      $Region[$i+1] = uint32($offRegions+12) /3; # count
      $offRegions += 28; #16;      
    }
    # Read faces
    for ($i=0;$i<3*$nFaces;$i++){
      $face[$i]= uint16($offFaces);
      $offFaces+=2;
    }
    $out = fopen($export, 'w+');
    for($i=0; $i<sizeof($vert); $i+=3){ # write out verts
      fwrite($out, "v " . $vert[$i] . " " . $vert[$i+1] . " " . $vert[$i+2] . "\n");
    }
    for($i=0; $i<sizeof($normal); $i+=3){ # write out normals
      fwrite($out, "nv " . $normal[$i] . " " . $normal[$i+1] . " " . $normal[$i+2] . "\n");
    }
    for($i=0; $i<sizeof($uv); $i+=2){ # write uv
      fwrite($out, "vt " . $uv[$i] . " " . (1-$uv[$i+1]) . "\n");
    }
    #iterate through Regions
    for($j=0; $j<sizeof($Region);$j+=2){
      $f = $Region[$j]; // # Face index
      fwrite($out, "g Mesh".($j/2)."\nusemtl Mat" . ($j/2) . "\n");
      for($i=0;$i<$Region[$j+1];$i++){
      fwrite($out, "f " . ($face[3*$f]+1) . "/" . ($face[3*$f]+1) . "/" . ($face[3*$f]+1) . " " . ($face[3*$f+1]+1) . "/" . ($face[3*$f+1]+1) . "/". ($face[3*$f+1]+1) . " " . ($face[3*$f+2]+1) . "/" . ($face[3*$f+2]+1) . "/" . ($face[3*$f+2]+1) . "\n");
      $f++;
      }
    }
    fclose($out);
    echo("Done!\n\n");
?>
ScorpioT1001 добавил:
щас попробую внедрить. тут вон и кости есть)
ScorpioT1001 добавил:
Прикрепленные файлы
Тип файла: rar m3reader.rar (8.9 Кбайт, 51 просмотров )

Отредактировано ScorpioT1001, 03.03.2010 в 17:34.
Старый 03.03.2010, 18:19
SageOne
x
offline
Опыт: 46,054
Активность:
ScorpioT1001, проверил на нескольких моделях:
на скрине дерево =DDDDDD
Миниатюры
Кликните на картинку для увеличения
Название:  lol.jpg
Просмотров: 109
Размер:  17.3 Кбайт  
Старый 03.03.2010, 18:44
ScorpioT1000
Работаем
offline
Опыт: отключен
у меня почти так же на многих.
ScorpioT1001 добавил:
Пиначет, ты пробовал здания ? напр протосов
Старый 03.03.2010, 18:49
SageOne
x
offline
Опыт: 46,054
Активность:
ScorpioT1001, из нескольких только Нексус и (с ошибками) Forge, но это уже прогресс =)
Прикрепляю модели, без текстур пока.
Прикрепленные файлы
Тип файла: rar Forge & Nexus.rar (73.2 Кбайт, 41 просмотров )
Старый 03.03.2010, 18:52
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
ScorpioT1001, гидрал сконвертился, больше мне пока не надо. Буду править косяки на своей модельке
Старый 03.03.2010, 19:11
Свиборг
Поехавший
offline
Опыт: 2,916
Активность:
А можно узнать, каким распаковщиком можно достать ресурсы игры?
Старый 03.03.2010, 19:12
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
в3ме или какой-нибудь мпку-редактор можно использовать для обзора архива из инсталлера

Отредактировано Wolverine, 03.03.2010 в 19:52.
Старый 03.03.2010, 19:14
ScorpioT1000
Работаем
offline
Опыт: отключен
winmpq я юзаю покачто. из карт доставать файллистом:
Прикрепленные файлы
Тип файла: txt (listfile).txt (1.1 Кбайт, 57 просмотров )
Старый 03.03.2010, 19:48
Свиборг
Поехавший
offline
Опыт: 2,916
Активность:
>в3ме или какой-нибудь мпку-редактор можно использовать для обзора архива из инсталлера
То есть это не нужно было устанавливать саму игру, а выдирать из Msi - архивов?
>winmpq я юзаю покачто. из карт доставать файллистом:
Им можно открыть Старкрафт2 карты?
Старый 04.03.2010, 13:36
agentex

offline
Опыт: 34,834
Активность:
А можно узнать, каким распаковщиком можно достать ресурсы игры?
Mpq Editor (by ladik) решает. не нужно ставить дополнительный мусор, в отличие от винмпку
Старый 04.03.2010, 14:19
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
Свиборг:
То есть это не нужно было устанавливать саму игру, а выдирать из Msi - архивов?
ну у меня не мси, у меня ехешник и 3 мпку
Старый 04.03.2010, 16:20
ScorpioT1000
Работаем
offline
Опыт: отключен
Новая версия: 0.0.0.2 ! xD
спасибо FellGuard'у, наконец-то нашли проблему ошибок чтения. теперь открывается гораздо больше моделей)
fastfixed..
Прикрепленные файлы
Тип файла: rar m3reader_0_0_0_2.rar (9.0 Кбайт, 47 просмотров )

Отредактировано ScorpioT1001, 05.03.2010 в 00:22.
Старый 04.03.2010, 17:47
SageOne
x
offline
Опыт: 46,054
Активность:
ScorpioT1001, ну вот, а я только текстуру на Нексус одел Т_Т
Пиначет добавил:
пойду проверять =)
Старый 04.03.2010, 17:55
ScorpioT1000
Работаем
offline
Опыт: отключен
Пиначет, там, кроме того что читает много моделей, ничего нового нет.
Старый 04.03.2010, 18:06

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 11:43.