1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Очень серьезный вопрос. Как из MaxScript в файл скинуть бинарный 0.

Тема в разделе "MAXScript", создана пользователем Stealthy, 27 мар 2006.

Модераторы: Savin Denis
  1. Stealthy

    Stealthy Активный участник

    С нами с:
    23.03.2006
    Сообщения:
    245
    Симпатии:
    0
    Баллы:
    12
    Если кто нормально шарит в МаксСкрипте - плиз хелп!
    Есть необходимость выкинуть в файл бинарный 0. Но Макс отказывается это делать, т.к. весь вывод написан через строковые функции вывода в Си, и, следовательно, 0 он воспринимает как конец строки. Ну и, соответственно, не выводит. А надо. Все остальное вывести можно (правда через одно место).
    Так вот, обращаюсь к экспертам - кто-нить когда-нить такое делал? и оно вообще возможно?
     
  2. master3d

    master3d Активный участник

    С нами с:
    20.04.2006
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    5
    Давай по порядку ! Обрисуй боле точно задачу. Вроде как в скрипет можно делать вывод в файл, причем в любом формате , в том числе и в бинарном.
     
  3. Stealthy

    Stealthy Активный участник

    С нами с:
    23.03.2006
    Сообщения:
    245
    Симпатии:
    0
    Баллы:
    12
    Скрипт я писал под свой графический движок где-то год назад. Т.е. - мне надо было, чтобы он выкидывал сцену в файл в моем формате. Я подумал, что для такой плевой задачи SDK слишком громоздок, хотя там даж есть спец. модули для export. Но мне надо было быстренько, за пару дней набросать, вот и набросал... (тогда у меня стоял еще 5й макс). При этом использовал какую-то жуткую конструкцию с execute из SDK, иначе он непечатаемые символы вообще как-то криво выводил. Через print и format - тем более ничего не получилось.
    Так вот - с помощью этой функции все шло так, как надо (единственное - пришлось через одно место выводить все числа и структуры, чтобы их потом можно было блоками читать из движка в стандартном float или int), однако я вдруг заметил, что выводит она иногда не до конца, т.е. просто обрывает вывод блока данных и все тут! Проведя тщательное исследование, я понял, что весь подобный вывод в максе написан через функцию fputs или подобную. Она выводит не блоком, а строкой, а символ конца строки для этой функции (как в си и принято) - 0. Вот тут-то я и приплыл. Помню, пришлось все равно выводить все в символьном виде и писать свой перекодировщик в нужный формат отдельно. Счас надо будет попробовать в восьмом максе поиздеваться над выводом, авось получится... Я просто подумал, что уже кто-то сталкивался и знает, т.к. в описании MaxScript я решения не нашел.
    Вся суть проблемы - именно в экспорте бинарного ноля из скрипта. Если мне кто-нить покажет хотя бы кусок скрипта, в результате которого в файле оказывается бинарный 0 - буду очень благодарен.
    А почему только недавно вопрос поднял - переделывал движок и подумал, что неплохо было бы заново по-хорошему переписать скрипт.
     
  4. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Почитай главу - BinStream for Binary Reading and Writing
    если нужно добавлять 0 в текстовый поток боюсь прийдется преоткрывать поток как бинарный
     
  5. Stealthy

    Stealthy Активный участник

    С нами с:
    23.03.2006
    Сообщения:
    245
    Симпатии:
    0
    Баллы:
    12
    ок. Блин, как же это я проглядел про существование бинарных потоков-то, а? Все просто как две копейки. Сэнькс!

    2 master3d:
    вот видишь, сам иногда оказываешься в положении нашкодившего школьника ;) Может, мне просто тогда не так сильно приспичило, что я целую главу упустил? ...
     
  6. master3d

    master3d Активный участник

    С нами с:
    20.04.2006
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    5
    Ну вот :) ....

    Я единственно не понимаю .. а почему просто нельзя читать из файла макса , а не экспортить сцену кудато... Есть сохраненый файл , в том же СДК есть его структура .... .. бери и читай из него , зачем велосипед то изобретать??? Может у тебя конечно какие то спецыфичные там параметры нужны :)
     
  7. Stealthy

    Stealthy Активный участник

    С нами с:
    23.03.2006
    Сообщения:
    245
    Симпатии:
    0
    Баллы:
    12
    2 master3d:
    Во-первых, там дофига лишнего (а то бы я из него прям в движок и читал бы %)).
    А во-вторых, перед сохранением надо было делать кучу преобразований (например, тот же UVW-маппинг приводить в божеский вид, да и с модификаторами некоторыми и картами просто беда), так что я решил воспользоваться интерфейсом макса для экспорта (там много полезных функций, которые автоматически преобразуют все, что тебе надо в нужный вид, вплоть до автоматической интерполяции и т.д.).
    Именно поэтому я и не стал юзать максовский файлы.
     
Модераторы: Savin Denis

Поделиться этой страницей