Render.ru

Прописать пути до текстур

Natrix

Пользователь сайта
Рейтинг
2
#1
Здравствуйте. Очень нужна помощь.
Из 3d max импортировал карту игры STALKER. Импортировал в unity.
Так как unity неадекватно себя ведет с .dds текстурами,я массово конвертировал файлы текстур .dds в .png
Естественно теперь ни unity, ни 3d max эти файлы не видит(был путь ston.dds, а стал ston.png).
В 3dmax прописывается же путь до текстур? Как мне изменить этот путь массово? Файлы лежат так же как и лежали,только у них расширение теперь другое.
 

igorznag

Знаток
Рейтинг
71
#2
Попробуйте такой вариант. Пример:
Открываем сцену. Запускаем скрипт.
В новом окне нажимаем кнопку Apply.
Сохраняем сцену и открываем её снова.
Код:
try destroydialog test catch()
rollout test "bitmap png"
(
    button btn_apply "Apply"
    on btn_apply pressed do
    (
        bms=getClassInstances bitmapTexture
        for bm in bms do
        (
            bm_path=getFilenamePath bm.filename
            bm_filename=getFilenameFile  bm.filename
            bm.filename=bm_path+bm_filename+".png"
            bm.reload();
        )
        completeredraw()
    )
); createdialog test 120 30
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
 

Natrix

Пользователь сайта
Рейтинг
2
#3
Попробуйте такой вариант. Пример:
Открываем сцену. Запускаем скрипт.
В новом окне нажимаем кнопку Apply.
Сохраняем сцену и открываем её снова.
Код:
try destroydialog test catch()
rollout test "bitmap png"
(
    button btn_apply "Apply"
    on btn_apply pressed do
    (
        bms=getClassInstances bitmapTexture
        for bm in bms do
        (
            bm_path=getFilenamePath bm.filename
            bm_filename=getFilenameFile  bm.filename
            bm.filename=bm_path+bm_filename+".png"
            bm.reload();
        )
        completeredraw()
    )
); createdialog test 120 30
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
Можно поподробнее пожалуйста: что делает этот скрипт?
 

Natrix

Пользователь сайта
Рейтинг
2
#4
Здравствуйте. Очень нужна помощь.
Из 3d max импортировал карту игры STALKER. Импортировал в unity.
Так как unity неадекватно себя ведет с .dds текстурами,я массово конвертировал файлы текстур .dds в .png
Естественно теперь ни unity, ни 3d max эти файлы не видит(был путь ston.dds, а стал ston.png).
В 3dmax прописывается же путь до текстур? Как мне изменить этот путь массово? Файлы лежат так же как и лежали,только у них расширение теперь другое.
Огромное спасибо. Прокатило. Можно подробнее,как это работает?
 

igorznag

Знаток
Рейтинг
71
#5
Можно поподробнее пожалуйста: что делает этот скрипт?
Этот скрипт устанавливает расширение png для всех текстур.
У вас в сцене есть текстуры с другими расширениями кроме dds? Например jpg, bmp.
Если да, тогда скрипт установит и для них расширение png.
 

Natrix

Пользователь сайта
Рейтинг
2
#6
Этот скрипт устанавливает расширение png для всех текстур.
У вас в сцене есть текстуры с другими расширениями кроме dds? Например jpg, bmp.
нет нету,а если будут? в будущем? может сможете дать совет(получается скрипт),если будут
 

igorznag

Знаток
Рейтинг
71
#7
нет нету,а если будут? в будущем? может сможете дать совет(получается скрипт),если будут
Я изменил скрипт.
Теперь скрипт устанавливает расширение png только у текстур с расширением dds.
Код:
try destroydialog test catch()
rollout test "bitmap png"
(
    button btn_apply "Apply"
    on btn_apply pressed do
    (
        bms=getClassInstances bitmapTexture
        for bm in bms do
        (
            bm_path=getFilenamePath bm.filename
            bm_filename=getFilenameFile  bm.filename
            bm_filename_type=getFilenameType bm.filename
            if bm_filename_type==".dds" do bm.filename=bm_path+bm_filename+".png"
            bm.reload();
        )
        completeredraw()
    )
); createdialog test 120 30
 

Natrix

Пользователь сайта
Рейтинг
2
#8
Я изменил скрипт.
Теперь скрипт устанавливает расширение png только у текстур с расширением dds.
Код:
try destroydialog test catch()
rollout test "bitmap png"
(
    button btn_apply "Apply"
    on btn_apply pressed do
    (
        bms=getClassInstances bitmapTexture
        for bm in bms do
        (
            bm_path=getFilenamePath bm.filename
            bm_filename=getFilenameFile  bm.filename
            bm_filename_type=getFilenameType bm.filename
            if bm_filename_type==".dds" do bm.filename=bm_path+bm_filename+".png"
            bm.reload();
        )
        completeredraw()
    )
); createdialog test 120 30
от души. Месяц парился. Как + в карму поставить? )
 
Сверху