Визуальная среда моделирования различных систем

Литература

1. Аксенов С.В., Новосельцев В.Б. Организация и использование нейронных сетей (методы и технологии) / под ред. В.Б. Новосельцева. Томск: Изд-во науч.-техн. лит., 2006. 128 с.

2. Дружинин В.Н. Экспериментальная психология: учеб. пособие. М.: ИНФРА-М, 1997. 256 с.

3. Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6 / под ред. В.Г. Потемкина. М.: ДИАЛОГ-МИФИ, 2002. 496 с.

4. Славутская Е.В. Факторный анализ психологических качеств, определяющих «дезадаптационный синдром пятого класса» // Психология обучения. 2008. № 12. С. 103-112.

5. Славутская Е.В. Экспериментальное изучение гендерных различий в развитии эмоционально-волевых и интеллектуальных свойств младших подростков // Вестник ТГПУ. 2009. Вып. 9 (87). C. 127-129.

6. Хайкин С. Нейронные сети: полный курс: пер. с англ. 2-е изд. М.: ООО «ИД Вильямс», 2006. 1104 с.

7. Cattell R.B. Advanced in Cattelian Personality Theory. Handbook of Personality. Theory and Research. N.Y.: The Guilford Press, 1990.

КУЗИН АЛЕКСАНДР ЮРЬЕВИЧ - студент V курса, кафедра управления и информатики, Чувашский государственный университет, Россия, Чебоксары (kuzm@list.ru).

KUZIN ALEXANDER YURIEVICH - student, Management and Informatics Department, Chuvash State University, Russia, Cheboksary.

СЛАВУТСКАЯ ЕЛЕНА ВЛАДИМИРОВНА - кандидат психологических наук, доцент кафедры психологии и социальной педагогики, Чувашский государственный педагогический университет, Россия, Чебоксары (las_co@mail.ru).

SLAVUTSKAYA ELENA VLADIMIROVNA - candidate of psychological sciences, associate professor of Psychology and Social Pedagogic Department, Chuvash State Pedagogical University, Russia, Cheboksary.

СЛАВУТСКИЙ ЛЕОНИД АНАТОЛЬЕВИЧ. См. с. 115._______________________________________

УДК 004.048

Я.В. ШЕВЧЕНКО, П.В. ЖЕЛТОВ ВИЗУАЛЬНАЯ СРЕДА МОДЕЛИРОВАНИЯ РАЗЛИЧНЫХ СИСТЕМ

Ключевые слова: моделирование, язык программирования, виртуальная среда, системы различного генеза.

Представлен новый продукт — интерпретируемый язык программирования виртуальных миров Open Code Effects. Рассмотрены структура и инструментарий, принцип организации сценариев.

Ya.V. SHEVCHENCO, P.V. ZHELTOV A VISUAL ENVIRONMENT FOR MODELING DIFFERENT SYSTEMS

Key words: modeling, programming language, a virtual environment, differentl systems.

In the paper is described a new product — the interpretable programming language of virtual worlds Open Code Effects. Are described its structure and toolkit, principles of scripts organization.

При создании нового программного продукта - интерпретируемого языка программирования виртуальных миров Open Code Effects (OCE) - использован удачный опыт разработки других языков. При этом найдены оригинальные решения, которые позволяют по-новому взглянуть на процесс программирования .

Среда программирования OCE. Интерпретируемый язык построения логических связей в виртуальных мирах OCE представляет собой логические конструкции, состоящие из последовательности команд, влияющих на свойства загруженных в память трехмерных объектов, а также на их взаимодействие с пользователем. После задания свойств происходит визуализация всей сцены.

В данном случае интерпретатором является часть основного исполняемого файла, который загружает в себя командные последовательности на языке OCE и одновременно с их загрузкой осуществляет привязывание этих

сценариев к объектам (активация которых происходит в результате выполнения условий). Также на этапе загрузки происходит замена имен объектов на адресные ссылки и другая обработка программных кодов.

OCE - это среда программирования. То есть это программное обеспечение, поддерживающее весь процесс программирования. Среды программирования представляют собой единство средств статической (инструментальной) и динамической (исполнительной) поддержки.

OCE построен на основе визуализатора трехмерной графики Blitz 3D (www.blitzbasic.com) - следовательно, доступны графические возможности платформ DirectX 7.0 и DirectX 8.0.

Blitz 3D является графическим «движком», позволяющим пользоваться удобными функциями загрузки ресурсов, операций над иерархией объектов и над их свойствами.

На Blitz 3D написан интерпретатор логической связи между трехмерными объектами, создана обработка действий пользователя. Кроме того, даны редактор виртуальных миров и редактор программного кода.

Перемещение по виртуальному миру по умолчанию осуществляется по принципу, использованному в классических, привычных для обычного пользователя ПК, компьютерных играх жанра 3d-Action. Пользователь управляет виртуальной конструкцией, словно находясь в ней и обозревая сцену через «камеру», изображение с которой «разворачивается» на экран.

Структура и инструментарий. OCE - это открытые (доступные для изменения) программные коды, выполнение которых происходит путем интерпретирования их основным программным модулем, и результатом их выполнения является изменение свойств трехмерных объектов, загруженных в память.

OCE представляет собой интерпретатор сценариев и обработчик действий пользователя, входящих в состав исполняемого дистрибутива (exe и дополнительные файлы), и устанавливается на компьютер пользователя.

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

Свойство модульности и возможности присоединять новые элементы в «коллекцию» сцен выгодно выделяет данную разработку и делает ее привлекательной как для конечных пользователей (которые могут сами выбирать себе сцены), так и для разработчиков, которым не обязательно ждать полного завершения работы над проектом. Они имеют возможность сразу публиковать готовые элементы своей работы и уже на этапе разработки иметь обратную связь с пользователями.

Файл сцены (являющийся zip-архивом) состоит из файлов *.list, *.script и служебных каталогов, в которых хранятся трехмерные объекты, текстуры и звуки.

Главный файл - Objects.list - определяет список загружаемых объектов, их основные свойства. Этот файл формируется в программе-редакторе, в которой можно загружать и располагать трехмерные объекты в пространстве.

Редактор MAPEditor является только менеджером готовых объектов, т.е. он может указывать их расположение и масштаб, угол поворота и т.д. Трехмерные

объекты создаются в 3D Studio Max. В проекте поддерживаются такие форматы трехмерных объектов, как 3ds и b3d. Первый из них «родной» для 3D Studio Max, второй становится доступным при установке специальной надстройки для него и открывает более широкие возможности в интеграции OCE и 3DMax’ а.

AMTParticles.list и Particles.list - файлы, отвечающие за подключение источников частиц (особый вид объектов для создания эффектов дождя, огня и т.д.). Содержат список настроенных файлов источников частиц. Сами источники частиц настраиваются в соответствующем редакторе частиц. В нем настраиваются законы поведения частиц, загружаются графические составляющие.

Могут быть двух видов - объектные (служебные) и декоративные (AMT). Объектные частицы могут быть спрайтами1, а могут быть и неанимированными 3d объектами. Могут взаимодействовать с окружающим миром. Они более ресурсоемкие, чем декоративные. Декоративные служат просто для украшения сцены, т.е. прямо с ней не взаимодействуют. Они быстрые и красивые, однако имеют ряд ограничений. Можно привязывать три декоративных источника частиц к одному служебному.

Оставшиеся * .list файлы настраиваются вручную. Это Sounds.list - список звуковых эффектов, Variables.list - инициализация переменных, Static.list -список исключений некоторых объектов из обработки (также может быть Col-lisions.list, определяющий столкновения между объектами, т.е. их вещественность по отношению друг к другу).

Файлы *.script содержат в себе наборы команд, написанных по правилам языка OCE. Каждый файл соответствует либо какому-то конкретному объекту, либо определенному классу объектов. Скрипты редактируются в удобной среде (ScriptEditor), напоминающей расширенный по функциям блокнот с возможностью автоподстановки команд многострочным поиском-заменой, системой помощи по параметрам команд и системой контекстной справки. Среду редактирования скриптов можно связать ассоциацией с файлами *.script, и она будет загружаться автоматически с открываемым файлом.

С помощью всех имеющихся средств в системе программирования OCE и необходимых программ (3DMax, Photoshop, Maya и т.д.) осуществляется полная детальная разработка виртуального мира, начиная с подготовки и планирования, заканчивая организацией связей между объектами и внедрением интерактивных элементов в объекты сцены.

Принцип организации сценариев. Вся работа с трехмерными сценами происходит на основе заложенных в них сценариев на языке OCE. Загрузка файла-архива виртуального мира начинается с анализа его структуры. Из главного файла Objects.list считываются ссылки на трехмерные объекты, затем через эти ссылки объект загружается в память и ему дается уникальный идентификатор. Для каждого загружаемого объекта проверяется наличие файла *.script с именем его объекта или указанием его класса. При наличии такого файла он также загружается в память.

Далее все идентификаторы объектов и все загруженные скрипты подаются в интерпретатор, который, анализируя синтаксическую структуру сце-

1 Однополигональный трехмерный объект с текстурой, обращенный всегда к камере.

нариев, производит соответствующую обработку: заменяет имена объектов (3d-объектов, звуков, переменных, подпрограмм, событий) их адресами во внутренней памяти программы.

В результате получается подготовленный для исполнения код, который подается в главный цикл, где происходит взаимодействие между сценариями, объектами и пользователем.

Код на языке OCE представляет собой блоки последовательностей команд. Каждый блок имеет собственное, уникальное имя и некоторое условие активации, так называемое событие. Когда активизируется некоторое определенное событие, начнут исполняться связанные с ним команды.

Рассмотрим, как выглядит некоторое событие и сопутствующий код на OCE. Предположим, что есть сцена, в которой существует объект Sphere, создадим в корне этой сцены файл Sphere.script (он будет загружен автоматически при запуске сцены вместе с самим объектом). В этот файл запишем такие строки:

[ Комментарий: событие при наведении указателя на объект ]

ONOVEREVENT_MYFIRST 3 0 TRUE

Hide _me

Wait 3000

Show _me

Complete

END

Итак, взятое для примера событие OnOverEvent активируется, если пользователь, будучи на расстоянии 3 единиц (первый параметр), наведет мышь на объект Sphere. Объект исчезнет, а затем, через 3 с, снова появится.

Второй параметр (0) - означает, что событие можно активировать бесконечное число раз. Если поставить значение 2, то событие активируется два раза.

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

Таким образом, всю сцену можно представить как иерархию объектов, в которой у каждого объекта есть своя модель поведения и реакции на различные «раздражители», будь то действия пользователя или поведение самих объектов.

Команды обрабатываются при помощи парсинга строк для формирования нового кода с оптимизацией для последующего его исполнения в процессе главного программного цикла. Важно отметить, что исполнение команд происходит с применением технологии распределения нагрузки.

В проекте реализована необычная авторская технология, позволяющая распределять сценарии на такты программы. То есть выполнение команд сценариев выполняется не блочно (не по командам события). Команды выполняются в порядке: команда, вывод на экран, следующая команда, вывод на экран и т. д.

Однако распределение нагрузки можно настраивать или исключать совсем при помощи ряда специальных команд:

[ Комментарий: событие при наведении указателя на объект ]

ONOVEREVENT_MYFIRST 3 0 TRUE

Hide _me

Wait 3000

Sync 2

Show _me

PlaySoundOn _me Beep TRUE

Complete

END

Команды:

Show _me

PlaySoundOn _me Beep TRUE

Выполнятся за один и тот же такт программы.

Таким образом, создан новый язык для проектирования виртуальной реальности. Главное направление развития - создание более удобных и доступных средств разработки, входящих в разрабатываемую систему программирования. В данной статье ввиду её ограничения по объему не вошли исходные коды и некоторые технические приемы, использованные при создании языка.

Литература

1. Андреев А. Эволюция современных языков программирования // Мир ПК. 2001. N° 3.

2. АхоА., Ульдман Дж. Теория синтаксического анализа, перевода и компиляции: в 2 т. М.: Мир, 1978.

3. Бен-Ари. Языки программирования. Практический сравнительный анализ. М.: Мир, 2000.

4. Вельбицкий И.В. Технология программирования. Киев: Техника, 1984.

ШЕВЧЕНКО ЯН ВЛАДИМИРОВИЧ - аспирант кафедры компьютерных технологий, Чувашский государственный университет, Россия, Чебоксары (asoiu23@mail.ru).

SHEVCHENCO YAN VLADIMIROVICH - post-graduate student of Computer Technologies Department, Chuvash State University, Russia, Cheboksary.

ЖЕЛТОВ ПАВЕЛ ВАЛЕРИАНОВИЧ. См. с. 136.

УДК 004.942

Д.Л. ШПИЛЕВСКИЙ, Т.М. ГУСАКОВА

РАЗБИЕНИЕ ОБЪЕКТОВ С ПОМОЩЬЮ ПЛАГИНА В ПАКЕТЕ ТРЕХМЕРНОГО МОДЕЛИРОВАНИЯ AUTODESK 3DS MAX

Ключевые слова: объект, плагин, трехмерное моделирование, диаграммы Вороного, имитационное моделирование.

Исследована проблема создания дополнительного программного обеспечения (плагина) для реализации разбиения объектов в пакете трехмерного моделирования 3ds Max на основе диаграмм Вороного.

D.L. SHPILEVSKYI, T.M. GUSAKOVA BREAKING THREE-DEIMENSIONAL OBJECTS USING PLUGIN IN AUTODESK 3DS MAX Key words: object, plugin, three-dimensional modeling, Voronov diagrams, imitational modeling.

Article is dedicated to the problem of creating additional software (plugin) for breaking threedimensional objects in Autodesk 3ds Max using Voronov diagram.

Проблема моделирования физических процессов в наше время приобретает широкое распространение. Одна из задач - описать и смоделировать действие на объекты и их модели таких физических сил, как тяжесть, трение или инерция, а также имитировать результаты столкновений объектов. Для этих целей используется имитационное моделирование.

Имитационное моделирование - метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и для заданного их множества. При этом результаты будут определяться случайным характером процессов, например случайным взаимодействием осколков объектов под действием физических сил. В представленной работе