К каким только ухищрениям не прибегают разработчики программного обеспечения с целью повышения популярности своего продукта среди пользователей. В этом деле все средства хороши: кто-то делает продукт дешевле (а кто-то и вовсе freeware), кто-то снабжает его невиданной доселе функциональностью. Кто-то обращает внимание на скорость работы, кто-то - на интерфейс. Вот на последнем сейчас и остановимся, потому что, как известно, по одёжке встречают. И не только людей, но и программы.
Сложно будет вспомнить список ухищрений, к которым проектировщики интерфейсов ещё не прибегали. Список самых оригинальных из них составить будет, конечно же, полегче, однако самые оригинальные - не всегда самые лучшие. Впрочем, оригинальность - вещь недолговечная. Если раньше знаменитый помощник-скрепка из ранних версий Microsoft Office был чуть ли не визитной карточкой пакета, то волшебник из новых версий этого пакета уже доступен во многих приложениях благодаря технологии, о которой расскажет эта статья. Хотя сам бы я предпочёл не использовать столь громкое слово, как технология, однако, раз его выбрала корпорация "Майкрософт", то и мы с вами следом за ней будем его использовать.
О скрепке из Microsoft Office в не столь давние от нас времена не слышал только тот, кто ни разу не садился за персональный компьютер. Сколько эмоций вызывал этот легендарный персонаж у пользователей - просто словами не описать. Однако, странное дело, большая часть этих эмоций, вопреки ожиданиям создателей "Скрепыша", оказалась негативной. Впрочем, особенно странного в этом ничего нет, поскольку скрепка-помощник местами была излишне навязчивой, а убрать её с экрана начинающему пользователю было просто не под силу. Кроме того, помощник изрядно отвлекал пользователя во время набора текстов или работы с таблицами, что также не способствовало улучшению впечатления от программы.
Вот так отрекомендовав помощников из "Офиса", я предвижу вопрос: "Так ежели они портят впечатление от программы, на кой чёрт они нужны-то?". Вопрос логичный, однако, не стоит забывать, что программа программе рознь. Например, в замечательном чистильщике системного реестра NBG Clean Registry помощник ничуть не мешает, поскольку от пользователя там не требуется такого сосредоточения внимания при работе с программой, как при работе с документами в Microsoft Office. Опять-таки, и помощники тоже бывают разными. Не зря же "Мелкомягкие" заменили скрепку в новых версиях на добродушного волшебника в синей мантии со звёздами. Пользователям он ближе и приятнее, чем кривляющаяся скрепка. А уже почему так происходит, вопрос не ко мне и не к другим программистам, а к психологам.
Поэтому, обдумав вопрос о том, стоит ли добавлять помощников в программу, можно переходить, наконец, к технической части задачи. То есть, как это сделать по возможности наименьшей кровью. Как я уже говорил, корпорация "Майкрософт" готова поделиться своими помощниками с каждым программистом. Использовать его смогут те, кто пользуется языками программирования, программы на которых могут работать с ActiveX-компонентами. То есть, это практически все языки и системы программирования под Windows. Пишите ли вы программу с помощью Visual C++, Visual Basic, Delphi, WinDev'а или ещё какого-либо средства - у вас есть возможность украсить программу помощником-агентом.
Каким образом добавить в программу агента? Это специфично для той среды разработки, которой вы пользуетесь. Но MS Agent ничем не отличается от других ActiveX-компонентов, поэтому работать с ним можно точно так же, как и с ними. Полное название компонента звучит так: Microsoft Agent Control 2.0. На вопрос, где взять агента, следует простой и понятный ответ от корпорации Microsoft: "Microsoft Agent 2.0 has been designed to be a Microsoft operating system component". То есть, говоря по-русски, агент должен быть в каждой системе, если она зовётся Windows. А если его почему-то нет - значит, либо вы под Linux'ом, либо под DOS'ом. Собственно, под Windows XP и 2000 я лично проверял наличие агента - да, он там действительно есть. За 95-ю и 98-ю поручиться не могу, но раз "Майкрософт" утверждает, что он должен там быть, почему бы нам в это не поверить? Тем не менее, если его там всё же нету, можно зайти по адресу www.microsoft.com/msagent/downloads/user.asp, и скачать там все компоненты, нужные для работы агента.
Сам персонаж-агент всегда демонстрируется в окне, находящемся поверх всех окон в системе. Пользователь может перемещать окно с агентом при помощи мыши. Само приложение тоже может менять координаты окна. Помимо окна, которое содержит непосредственно изображение персонажа, есть ещё окно с подсказкой, в котором должны отображаться реплики помощника. Также имеется иконка в трее (рядом с часами), которая отображается для того, чтобы пользователь, скрыв агента, имел возможность снова вызвать его на экран, при этом не затрачивая на тот самый вызов сколь-нибудь значительного времени. При наведении курсора мыши на иконку будет всплывать подсказка с именем персонажа.
Интересна возможность агента интегрироваться с движком вывода речи агента. То есть, если добавить к изображению и репликам агента ещё и голосовое сопровождение, то эффект усилится вдвойне. Нужно только не забывать, что для успешного прочтения голосовым движком реплик агента их следует строить специальным образом. Например, все числительные должны быть записаны только словами.
Корпорация "Майкрософт" предлагает пользователям четырёх персонажей собственного изготовления. С одним из них пользователи уже знакомы по "Офису": это волшебник (как выяснилось впоследствии, не просто волшебник, а Мерлин). Он, к слову, изображён и на скриншоте к статье. Ещё троих персонажей можно скачать по указанному выше адресу и посмотреть в действии. А для просмотра можно воспользоваться бесплатной программой Agent Viewer, которую в интернете можно отыскать по адресу pestretsov.narod.ru. Работать с программой очень просто: загружаете файл с персонажем, выбираете любое действие из списка всех доступных, нажимаете "Проиграть" и наслаждаетесь зрелищем.
Если же персонажи от Microsoft не придутся вам по душе или же если захочется чего-то более оригинального, чем волшебник Мерлин, то есть возможность создать своих собственных персонажей, наилучшим образом подходящих к стилю данного конкретного приложения. Для этого нужно скачать программу Microsoft Agent Character Editor с сайта Microsoft (адрес, по которому нужно скачивать все связанные с агентом вещи, я уже указывал). Работа в программе не отличается особой сложностью: указываете название (или, лучше сказать, имя?) своего персонажа, а после этого создаёте анимацию для каждого действия. Анимация осуществляется покадрово, то есть каждый кадр нужно сначала подготовить в каком-либо графическом редакторе. Правда, глядя на агентов производства MS и на предлагаемый способ создания собственных персонажей, само собой просится предложение по использованию в деле создания агентов какого-нибудь пакета трёхмерного моделирования вроде 3DS MAX. Там и анимацию красивую сделать можно, и по кадрам её отрисовать будет несложно. Правда, никто не говорит, что процесс создания трёхмерной модели самого персонажа будет простым и лёгким. Скорее, даже наоборот, особенно для тех, у кого навыков работы в трёхмерных дизайнерских средах нет.
Использовать агент в программах достаточно просто с точки зрения программирования. Например, следующий ниже код на Visual Basic'е показывает, как загрузить персонаж из файла и отобразить его на экране:
Dim WithEvents MyAgent as Agent ' объявление переменной, содержащей объект-агента Set MyAgent = New Agent ' инициализация объекта MyAgent.Characters.Load "Genie", " Genie.acs" ' загрузка персонажа Genie из файла Genie.acs MyAgent.Characters("Genie").Show ' отображение агента на экране
Конечно, если ограничиться только этим кодом, то нет особого смысла внедрять в программу агента-помощника. Агент должен быть интерактивным, то есть должен постоянно как-то реагировать на действия пользователя и предлагать ему совершить ещё какие-то действия, которых пользователь не совершил. Но при этом, как я уже говорил, нельзя перегибать палку, а то вашего агента постигнет печальная участь скрепки из "Офиса", популярность которой у пользователей была просто ниже некуда.
В общем-то, поведение агента - это именно то, что и придётся программировать. И над ним надо очень обстоятельно думать, чтобы не вызвать у пользователя негативной реакции. Лично мне кажется, что наилучшим образом агент подходит для проведения обучающего тура по программе во время её первого запуска. Можно "повесить" на агента функцию "советчика дня", который выдаёт советы при каждом запуске программы. Правда, теперь всё меньше остаётся программ, которые имеют эту функциональность (я имею в виду "Советы дня", демонстрируемые при запуске). В общем, найти применение агенту не так уж сложно, как и внедрить его в программу. Другое дело, что это может сильно сказаться на её размере (файлы с изображениями персонажа, с голосом и обновления системы, чтобы всё работало как надо). Поэтому в небольших утилитах агента вряд ли имеет смысл использовать.
Вот, собственно, и всё, что я хотел рассказать вам о Microsoft Agent. Использовать его или нет - это уже ваше решение. Надеюсь, сумел вам дать достаточно информации для того, чтобы вы могли решить, имеет ли смысл использовать эту технологию в своих приложениях.
Вадим СТАНКЕВИЧ
Горячие темы