Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2014, 22:25   #1
le@pold
Пользователь
 
Регистрация: 03.01.2014
Сообщений: 14
Смех Нужен совет по программированию

В общем проблема не проблема - решил начать изучать языки программирования (давно учил basic и c++, но все уже забыто). Появилась идея программы, но как осуществить её понятия не имею. Хочу сделать для девушки, программу которая будет сидеть в трее, при этом на рабочем столе отображался анимированный кот (или что то в этом роде), который смог бы бродить по рабочему столу и периодически делать какие-нибудь вещи. Но с чего начать не знаю. Языков программирования - море, самому понять какие тебе языки нужно учить, чтобы сделать такую программу - невозможно, а учить все языки - просто нереально.
Если кто примерно понял о чем я - просто напишите список языков, которые вы бы использовали для написания такой программы. И, если есть возможность, ссылки на учебники.
le@pold вне форума Ответить с цитированием
Старый 03.01.2014, 22:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А может просто скачать этого кота с инета и поставить?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.01.2014, 22:51   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
учить все языки - просто нереально
Совершенно согласен. Но написание подобной программы можно осуществить практически на любом современном языке программирования общего назначения. В том числе на C++.
По C++ очень много самых разнообразных обучающих материалов в том числе и на форуме:
http://www.programmersforum.ru/showthread.php?t=31602
Цитата:
программу которая будет сидеть в трее, при этом на рабочем столе отображался анимированный кот (или что то в этом роде), который смог бы бродить по рабочему столу и периодически делать какие-нибудь вещи
К стати, в своё время уже был разработан ряд подобных программ. Если не секрет, что Вас в них не устраивает?
Streletz вне форума Ответить с цитированием
Старый 04.01.2014, 00:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Совершенно согласен.
Чего так? Вполне реально.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.01.2014, 00:18   #5
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Советую использовать Microsoft Agent. Это та самая технология, которая показывала "помощников" в ворде. Скрепку с глазами, волшебника, кота, собаку, эмблему Microsoft Office. Еще она же рисовала гуся-англичанина в детском переводчике Magic Goody от ПРОМТа.

Надо скачать Microsoft Agent Character Editor (MACE). Нарисовать покадровые анимации ходьбы, сидения, других действий в BMP-кадрах. Записать или взять готовые звуки, сопровождающие эту анимацию (например, кот листает книжку). Все это запихать в редактор MACE.

Заодно нарисовать кота с закрытым, открытым, полуоткрытым и т.д. ртом. (т.к. microsoft agent может использовать движок Microsoft Text-To-Speech, и твой кот сможет не только рисовать balloon с текстом над головом, как в комиксах, но даже говорить через синтезатор речи прям в колонки).

В итоге персонаж компилируется в ACS файл и кладется, например, в папку рядом с exe-шником твоей программы.

Вот я в 2000 году рисовал челюсть и паука:





Потом, используя ActiveX, нужно вставить на форму компоненту Microsoft Agent.

А управлять им очень легко. Вот в Visual Basic тогда писал такой код:

Код:
Private Sub Form_Load()
Agent1.Characters.Load "Spider", "c:\md\jaw\spider.acs"
Agent1.Characters("Spider").Left = 100
Agent1.Characters("Spider").Top = 100
Agent1.Characters("Spider").Show
Agent1.Characters("Spider").Speak "Good morning..."
Agent1.Characters("Spider").GestureAt 1000, 1000
End Sub
Можно заставить персонажа указать куда либо в точку экрана (Agent1.Characters("Spider").Gestur eAt), перебежать из точки в точку и т.д. По идее кроме Text-To-Speech есть обратный движок распознавания речи (на первом скрине в списке есть анимация Listening, когда персонаж "слушает" что ему скажут в микрофон, а потом делает ответные действия, например, ищет услышанное слово в словаре и выдает словарную статью по нему или еще что нибудь), но это все уже более сложно.

А т.к. в персонаже заложены картинки на произношение гласных звуков А, О, И, Е и т.д., то когда TTS произносит английские или русские слова - сам персонаж рот открывает достаточно реалистично.

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

Последний раз редактировалось blackstrip; 04.01.2014 в 00:27.
blackstrip вне форума Ответить с цитированием
Старый 04.01.2014, 00:58   #6
le@pold
Пользователь
 
Регистрация: 03.01.2014
Сообщений: 14
По умолчанию

blackstrip спасибо, за реально дельный совет - коротко и все понятно
le@pold вне форума Ответить с цитированием
Старый 04.01.2014, 04:35   #7
le@pold
Пользователь
 
Регистрация: 03.01.2014
Сообщений: 14
По умолчанию

Цитата:
Сообщение от blackstrip Посмотреть сообщение
Потом, используя ActiveX, нужно вставить на форму компоненту Microsoft Agent.

А управлять им очень легко. Вот в Visual Basic тогда писал такой код:

Код:
Private Sub Form_Load()
Agent1.Characters.Load "Spider", "c:\md\jaw\spider.acs"
Agent1.Characters("Spider").Left = 100
Agent1.Characters("Spider").Top = 100
Agent1.Characters("Spider").Show
Agent1.Characters("Spider").Speak "Good morning..."
Agent1.Characters("Spider").GestureAt 1000, 1000
End Sub
можешь объяснить этот момент по подробнее? сделал анимацию как ты описал, сохранил этот файл. VB 6.0 поставил (без msdn, мне уже кажется его не существует просто). Но что дальше делать, не пойму... Понимаю, что надо поменять путь и сделать имя моего acs файла
le@pold вне форума Ответить с цитированием
Старый 04.01.2014, 13:33   #8
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

У меня VB6, к сожалению, уже не установлен. Поэтому покажу как это делать в Visual Basic for Applications, встроенном в MS Word.

1) Создал новую форму UserForm.

2) Правой кнопкой кликнул по панели компонент и выбрал там Additional Controls (т.е. Дополнительные компоненты)

3) В списке компонент выбрал activex-компоненту MS Agent и поставил напротив нее флажок.



4) Компонента появилась на панели компонент. Добавил ее на форму



5) В процедуру активации формы закинул этот код



6) Запустил по F5, паук загрузился и как положено сказал Good Morning (но не указал на 1000,1000, т.к. я эту анимацию в него не добавлял, см. скрины выше, должны быть анимации GesturingUp, Down, Left, Right, чтоб персонаж мог указывать в точки экрана)



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

Вот паук когда будет просто стоять на месте, то сначала он будет делать IdlingLevel1, потом IdlingLevel2, а потом IdlingLevel3.

У меня в IdlingLevel1 значатся все три его анимации, они будут рандомно выбираться и показываться.



Потом по прошествии некоторого времени пауку "станет скучнее" (никто на него кликать не будет), и он будет показывать анимации IdlingLevel2, а потом когда еще дольше на него никто кликать не будет - будет показывать анимации IdlingLevel3.

Последний раз редактировалось blackstrip; 04.01.2014 в 13:37.
blackstrip вне форума Ответить с цитированием
Старый 04.01.2014, 13:34   #9
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

И еще насчет разговора персонажа - надо пометить ту анимацию, в которой будет всего один кадр (паук с закрытым ртом).



А в самой анимации на вкладке Overlays назначить свои кадры персонажа с разным ртом:
Closed - закрытый рот
С Wide1 по Wide4 - все шире рот открывается (внизу справа на вкладке Overlays будет картинка как примерно рот должен быть открыт на кадре), по типу все более громкого произношения буквы И или А
Medium - средней открытости рот, как при произношении чего-то между А и О
Narrow - круглый рот, как при произношении О



Я подозреваю что Overlays кладутся поверх основной анимации персонажа (которая в Speaking у меня была из 1 кадра). Поэтому можно сделать чтоб персонаж не просто стоял во время разговора, а, например, подергивался. А рты из Overlays с прозрачным фоном накладывались бы поверх его головы. Но я делал так, что вместо ртов с прозрачным фоном целого паука поверх накладывал, потому что так легче, хотя он во время разговора при этом стоял на месте, а мог бы еще двигаться или чесаться) Тогда в States у Speaking надо назначить несколько анимаций (на почесывание, подергивание и т.д.), но каждой из этих анимаций в Overlays дать рты различной открытости.

Последний раз редактировалось blackstrip; 04.01.2014 в 13:45.
blackstrip вне форума Ответить с цитированием
Старый 04.01.2014, 17:13   #10
le@pold
Пользователь
 
Регистрация: 03.01.2014
Сообщений: 14
По умолчанию

все, разобрался.
Только 2 момента - хоть делал bmp файл 256, все равно есть задний белый цвет, чего не хотелось бы. Это раз. Во вторых, не могу понять как из этого сделать программу, а не так чтобы он запускался в MS офисе

Последний раз редактировалось le@pold; 04.01.2014 в 18:00.
le@pold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен специалист по программированию AVRок Intern Фриланс 3 05.02.2013 01:04
Нужен совет по программированию Ден81 Microsoft Office Excel 1 31.03.2012 09:02
Нужен совет... Finadel Общие вопросы C/C++ 4 06.05.2011 16:57
Нужен совет, просто совет kardinal94 Общие вопросы Delphi 7 16.12.2010 22:16