tag:blogger.com,1999:blog-8757025492638667092024-02-06T19:47:12.927-08:00Тайны Second LifeМатериалы о Second Life учебно-технического характера.Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-875702549263866709.post-25070927945552470762016-01-16T01:45:00.000-08:002016-01-16T01:45:37.042-08:00[SL] Популярные скрипты. TIP-JAR<b>TIP-JAR</b><br />
<br />
Не важно, чем бы вы ни занимались глобально, часто возникает необходимость поставить предмет для сбора донаций - тип-джар, а то и не один. Практически всегда существует необходимость оформить его, что называется, "соответствующим образом" и если вы взяли, скажем, покупной тип без прав, то это может стать проблемой.<br />
<br />
Но на самом деле тип-джаром может стать совершенно любой объект (конечно же, с правом modify, чтобы его можно было редактировать), если в него положить нужный скрипт. Такой скрипт можно взять из какого-нибудь бесплатного тип-джара, а можно написать самостоятельно.<br />
<br />
В этом есть свои плюсы - вы будете точно знать, как это работает, да и всегда можно покрасоваться перед своими друзьями - дескать, сам написал! Круто же, не? ;)<br />
<br />
На самом деле любой тип-джар являет собой крайне простой скрипт, основанный на событии <a href="http://wiki.secondlife.com/wiki/Money" target="_blank"><i>money()</i></a>, которое возникает каждый раз, как кто-то заплатит вашему объекту денег. Сами же деньги при этом попадают прямиком владельцу предмета.<br />
<br />
<ul>
<li><b>Здесь нужно быть внимательным, потому что если у вас владельцем тип-джара окажется группа, все деньги будут уходить в группу!</b></li>
</ul>
Но для того, чтобы это событие стало происходить и объект начал принимать деньги, а это свойство, повторюсь, объекту дает только специальная настройка и скрипт, всё это нужно правильно подготовить, то есть инициализировать.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.gyazo.com/9b3914800283013823cecfe31860c628.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://i.gyazo.com/9b3914800283013823cecfe31860c628.png" width="400" /></a></div>
<br />
Создайте объект и назначьте действие по умолчанию при клике на объект - "Платить объекту". В этом случае пользователь будет получать стандартное окошко оплаты с установленными ценами.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.gyazo.com/e135f4b60d8f871e7b435c911aabd64d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://i.gyazo.com/e135f4b60d8f871e7b435c911aabd64d.png" width="400" /></a></div>
<br />
Цена устанавливается при помощи функции <a href="http://wiki.secondlife.com/wiki/LlSetPayPrice" target="_blank">llSetPayPrice()</a> в самом начале. Синтаксис прост:<br />
<br />
<b>llSetPayPrice(</b><i>цена в окошке</i>, <b>[</b><i>цена на кнопке</i>, <i>цена на кнопке</i>, <b><i>PAY_HIDE</i>, <i>PAY_HIDE</i>]);</b><br />
<br />
Собственно всё, уже этого всего вполне достаточно, чтобы объект принимал деньги и передавал их своему владельцу! И весь основной скрипт, реально, несколько строк. Смотрите сами:<br />
<b> </b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.gyazo.com/f4149e84458eede7fa4feef0b6b80c94.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://i.gyazo.com/f4149e84458eede7fa4feef0b6b80c94.png" width="400" /></a></div>
<b> </b><br />
Осталось только сделать интерфейс - то есть чтобы люди понимали, что это тип-джар, выводить какую-то информацию и благодарить донатора. Это делается просто такими функциями, как <a href="http://wiki.secondlife.com/wiki/LlSay" target="_blank">llSay()</a> (сказать в общий чат) и <a href="http://wiki.secondlife.com/wiki/LlSetText" target="_blank">llSetText()</a> (вывести текст над объектом)<b>.</b><br />
<b></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.gyazo.com/621e4b552fef7a3798d76d6bf06a3496.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://i.gyazo.com/621e4b552fef7a3798d76d6bf06a3496.png" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
Усложняем наш скрипт - здесь я не буду досконально рассматривать каждую команду, если что-то не понятно, спрашивайте. А скрипт будет таким:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.gyazo.com/102b51bcbadc261ac0625bbc4680bdc6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="305" src="https://i.gyazo.com/102b51bcbadc261ac0625bbc4680bdc6.png" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
Ради прикола я добавил в конце проигрывание двух стандартных звуков - звонка кассы и телепорта. Типа, тю-тю, улетели денежки ;)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<b><br /></b>
<b> </b>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-65133151447911574342015-09-25T00:48:00.001-07:002015-09-25T00:48:39.938-07:00Говорящий бот с псевдоинтеллектом<i>Надо же, практически год назад я тут писал пост... Все ж в нашем мире любой процесс имеет циклическую природу... Ладно, не будем зацикливаться ;)</i><br />
<br />
Удивительное чудо природы состоит в том, что случается встретить людей, сознание которых настолько примитивно, что без особого труда его можно эмулировать при помощи несложных программных средств. И сегодня я расскажу вам, как сделать для вашего бота, скажем, в <a href="http://secondlife.com/" target="_blank">SL</a>, эмулятор псевдоразума, а также покажу, что получилось у меня.<br />
<br />
<div align="center"><iframe width="420" height="315" src="https://www.youtube.com/embed/LcpABUHLwak" frameborder="0" allowfullscreen></iframe></div>
<br />
<i>По правде говоря, живой прототип настолько примитивен, что пришлось специально вводить погрешность, чтобы была более очевидна природа аватара-бота, но даже эти меры не помогают от того, что некоторые индивидуумы путают его с живым человеком, а реального чувака путают с ботом...</i> <br />
<br />
<i> </i><br />
Сейчас, как всегда, немного теории и немного истории. Но, уверяю вас, это будет познавательно и немного забавно, так что не думаю, что заскучаете. Итак, кто из вас помнит нудные речи на всяческих пленумах, собраниях и заседаниях? Впрочем, современные совещания в корпоративных океанах также могут вполне пользоваться предложенной дедовской технологией.<br />
<br />
Все до невероятного просто - "генератор речей", о котором я говорю, представляет собой таблицу (многомерный массив), в ячейки которой вписаны фразы и словосочетания. Двигаясь по нумерации стобцов вы в произвольном порядке выбираете фразы из рядов и составляете из него предложение.<br />
<br />
Я вот тут положу скан такой таблицы (да-да, они реально существовали!), попробуйте сами, это, по крайней мере, довольно весело ;)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://s00.yaplakal.com/pics/pics_original/5/0/0/321005.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://s00.yaplakal.com/pics/pics_original/5/0/0/321005.jpg" height="386" width="400" /></a></div>
<br />
Несколькими годами ранее на Плюке Менькой был сделан LSL-бот "Эд", который проигрывал аудиофразы в случайном порядке при возникновении события столкновения с кем-либо и нудел, я вас заверяю, на отлично; было очень похоже на реального Эда в тот период.<br />
<br />
Таким образом, используя этот принцип, мы и будем создавать псевдоразум. Вообще, в прикладном смысле, этим методом можно сильно оживить автоматические эфиры интернет-радиостанций. Чем больше развер массива и чем сложнее структура формирования случайных предложений, тем больше смысла (в условном смысле, конечно же), будет появляться в генерируемом тексте - вопрос количества труда, вложенного в развитие базы. Но это относится к любым интеллектоподобным ботам.<br />
<br />
Вот что я еще хочу сказать, дорогие читатели - в инженерном искусстве важно найти кратчайший путь решения задачи для достижения технической цели. Это очень важно помнить при выборе инструмента, при помощи которого вы хотите ее достичь. В данном случае речь идет о том, какой язык при этом выбрать. Но на самом деле это совершенно не важно до тех пор, пока не конкретизирована цель. Предложенный сценарий несложно реализовать, используя лишь LSL и подход Меньки к вопросу. А можно все написать самому "с нуля" (привет, Вэб!) на C/C++, включая бота и войс для него. Этот путь интересен и познавателен и я, кстати, ходил по нему :D <br />
<br />
Поэтому сейчас предложу короткий - недаром я выше заметил, как можно использовать подобное решение. Поэтому выбор мой пал на несколько странный, как может показаться, инструмент - потоковый стример <a href="http://liquidsoap.fm/" target="_blank">LiquidSoap</a> и его скрипт-язык. Сам по себе стример и является этим самым скрипт-языком, который позволяет работать со звуковыми потоками, как с переменными, со всеми вытекающими отсюда прелестями и удобностями.<br />
<br />
Кроме того, сам стример кроссплатформенный, что позволяет широко использовать подобные решения. Поэтому я не буду углубляться в особенности установки - считаем, что у вас есть и работоспособный бот с войсом и установленный на ту же систему LiquidSoap, а вывод с него настроен как вход для войса.<br />
<br />
В первую очередь необходимо сформировать базу фраз. Если вы делаете автодиджея или рекламного агента, то рекомендую сесть и написать не менее ста предложений примерно одинаковой длины. Затем разбить их на словосочетания и разместить из в таблице. Затем, пробуя таблицу, что-то подкорректировать.<br />
<br />
А затем записать уже голосом, проходя таблицу подряд сверху до низу. Обязательно засеките среднее время звучания предложения, это будет важно! Далее вы разрезаете вашу запись на аудиофразы, при этом не обрезайте тишину - она необходима для правильного восприятия, просто постарайтесь резать посередине.<br />
<br />
Получившиеся файлики разложите по количеству папок, равное кол-ву столбцов вашей таблицы. То есть каждая папка - это столбец таблицы.<br />
<br />
В моем случае я брал готовые аудиозаписи и нарезал на фразы, а затем так же компоновал их в группы - в каком-то смысле это проще, с другой же стороны, весь материал нужно отслушать, чтобы иметь представление, а это ад ;)<br />
<br />
Вот теперь можно перейти к коде этого марлезонского балета - вдохнуть разум и сознание в эту кучку цифрового песка. Ведь чем мы занимаемся? Големов строим! Пусть и виртуальных... ;)<br />
<br />
LiquidSoap, сам по себе, очень мощный пакет для программирования радиоэфиров, так как включает в себя разнообразный инструментарий для работы с источниками и потоками. Источник - это то, что нужно проиграть. Поток - это то, что уже проиграно и нужно это просто транспортировать в эфир. Наша задача - сделать из нашей коллекции файлов источники, который преобразовать в поток, в нашем случае, в прямом смысле в "поток сознания".<br />
<br />
Итак, сперва сделаем источники:<br />
<br />
<pre>phrases1 = playlist(reload = 300, "/home/androbot/phrases1")
phrases2 = playlist(reload = 300, "/home/androbot/phrases2")
phrases3 = playlist(reload = 300, "/home/androbot/phrases3")
phrases4 = playlist(reload = 300, "/home/androbot/phrases4")
</pre>
То есть мы сказали LiquidSoap'у, что нужно рассматривать папки, как плейлисты, а параметр "reload" говорит о том, что каждые 300 секунд нужно перечитывать список файлов. Это позволит вам добавлять новые фразы без перезапуска основной системы - частенько это бывает важно.<br />
<br />
Перемешаем всё:<br />
<br />
<pre>phrases1 = random([phrases1])
phrases2 = random([phrases2])
phrases3 = random([phrases3])
phrases4 = random([phrases4])
</pre>
К слову сказать, по умолчанию плейлист и так рандомизирован, но и LiquidSoap штука сама по себе настолько магическая, что перемешать еще раз не помешает, простите за каламбур ;)<br />
<br />
В результате этих манипуляций мы получили 4 источника, на выходе которых стоят готовые фразы и нужно только склеить из них предложение и проиграть его.<br />
<br />
Создаем очередь:<br />
<br />
<pre>proposal = rotate(track_sensitive = true, weights = [1,1,1,1], [phrase1, phrase2, phrase3, phrase4])
</pre>
Вообще, конечно, этот оператор не для этого, но в данном случае он нам формирует последовательную очередь из четырех треков четырех источников с ожиданием концов треков. Кому интересно подробнее - в документации всё есть ;)<br />
<br />
В принципе, всё, если сейчас отдать переменную proposal проигрываться, мы получим постоянный бубнеж.<br />
<br />
Делаем некие магические пассы (документация!):<br />
<br />
<pre>voice = mksafe(proposal)
</pre>
И отдаем в звуковую карту напрямую (я это делаю при помощи pulseaudio, у вас может быть что-то другое, это при установке выясните):<br />
<br />
<pre>output.pulseaudio(device = "Androbot", voice)
</pre>
Все, можно запускать и наслаждаться непрерывной речью. Кстати, вот она, мечта одной моей учительницы из детства - робот, который бы нам, детям-дебилам, долдонил бы одно и то же, не прерываясь ни на секунду. Чтобы с этим явлением побороться, нужно добавить еще один оператор, который управляет временем.<br />
<br />
Помните, я говорил, что нужно запомнить среднее время звучания предложения? Основываясь на этих данных мы прикинем, когда нашему боту говорить и сколько, скажем... Скажем, в рамках часа - ведь база у нас невелика. Допустим, он должен говорить каждые двадцать минут, сначала две минуты, потом три минуты, потом одну с половиной минуты. Ну и допустим, что одно предложение у нас занимает 10 секунд.<br />
<br />
<pre>voice = fallback(track_sensitive=false, [
switch(track_sensitive=true, [
({(00m05s-02m05s) or (20m20s-22m20s) or (53m40s-54m40s)}, proposal)
]), blank()
])
</pre>
Я также позволю себе не вдаваться в подробности работы этой конструкции - важно лишь понять, как работает синтаксис указания времени. В данном случае в потоке у нас будет либо тишина, либо, если время (глобальное) попадает в указанные интервалы, бот будет говорить. У нас он заговорит в 5 секунд после начала каждого часа, потом в 20 минут 20 секунд и в 53 минуты 40 секунд. Вы можете задавать свои интервалы, разделять предложения паузами, для этого вам и нужно знать, сколько длиться предложение - тут дело тонкой настройки бота, которое напрямую зависит от ваших требований и вашей базы.<br />
<br />
Ну, а дальше, все просто, мы это уже делали раньше:<br />
<br />
<pre>voice = mksafe(proposal)
output.pulseaudio(device = "Androbot", voice)
</pre>
Всё! Когда наступит указанное время, бот заговорит человечьим голосом. Конечно, этого всего еще мало для полноценного автоматического диджея, но никто же не обещал, что я раскрою все секреты, верно? ;)<br />
<br />
До новых встреч, девочки и мальчики.Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-27027997204663165082014-09-26T16:43:00.002-07:002015-06-11T22:27:32.968-07:00«AlphaSMS» - сервис доставки SMS-сообщений<b>UPD: </b><i>В настоящее время сервис закрыт по юридическим причинам (невозможность удовлетворить все требования новых поправок к Закону о связи РФ) и выставлен на продажу в виде исходного кода. По вопросам приобретения кода и прав на него связываться с Manoul Carnell в SL.</i> <br />
<br />
Как видно из названия, «AlphaSMS»доставляет sms-сообщения, отправленные из Second Life на мобильные телефоны. Более того, сервис доставит вам ответное сообщение обратно, в уютненький Second Life. <i>«Надо же, как просто! Но я могу и так отправить sms, с телефона, зачем оно мне нужно?»</i> - спросит иной пользователь и я отвечу.<br />
<br />
Во-первых, API сервиса, которое было разработано, позволяет использовать его в различных прикладных решениях. Например, это может быть нотификация о каких-либо событиях, например, администрации сима о гриферской атаке; или же сообщения, посылаемые вендорами производителей; или же, как сделано сейчас, построен пейджер, который позволяет обмениваться смсками.<br />
<br />
Думаете, это настолько банально? Вот уж, раз отвлеклись изначально от технической стороны, то давайте рассмотрим чисто житейскую ситуацию.<br />
<br />
Мальчику нравится девочка, мальчик дарит девочке пейджер и сообщает свой номер телефона. Теперь девочка, заметьте, не оставляя своего номера мальчику (будем надеятся, до поры), может слать ему всякие романтические глупости. И мальчик может отвечать ей. Не это ли прекрасно?<br />
<br />
Итак, теперь немного картинок, показывающих, как все просто на самом деле.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV6lIe0KAXgbMri4a2rXwR15X0d1Xeet2y8FFDltDCm8_mjon2gDRC3rijWaaEPWgofKfCdRwfuUx_0RE3V4740PslI_Nc1OS4w9XhdZkzqT4M9ph77LpeNvxvYloma3kNGaKgjdMGz0s/s1600/Snapshot_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV6lIe0KAXgbMri4a2rXwR15X0d1Xeet2y8FFDltDCm8_mjon2gDRC3rijWaaEPWgofKfCdRwfuUx_0RE3V4740PslI_Nc1OS4w9XhdZkzqT4M9ph77LpeNvxvYloma3kNGaKgjdMGz0s/s400/Snapshot_001.png" /></a></div>
<div style="text-align: center;">
<i>Рис.1</i><br />
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Итак, HUD очень прост и изящен - функционально мигающая лампочка, показывающая состояние сети и текстовое оповещение. Чтобы отправить сообщение, нужно по нему кликнуть. К слову сказать, пейджер активируется только будучи надетым как HUD. Выложенный на землю он отключается, будучи же приаттаченым к другим частям аватара, выдаст сообщение о правильном расположении, после чего отцепится и упадет обратно в инвентарь.<i> </i></div>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3jTdgVRSQBimpEW4iFZzhX1bVNL4yRIU1S3ZJxmNHhHRuYB2Ku-oeOOS_1bGFSmkgxOpkfCBHICNa1CqcUeEK5dfML2Fpvr0C0PaMPYCTzeNP1hCBnm1yUjCaOe8GHHARZj07oxxVjLI/s1600/Snapshot_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3jTdgVRSQBimpEW4iFZzhX1bVNL4yRIU1S3ZJxmNHhHRuYB2Ku-oeOOS_1bGFSmkgxOpkfCBHICNa1CqcUeEK5dfML2Fpvr0C0PaMPYCTzeNP1hCBnm1yUjCaOe8GHHARZj07oxxVjLI/s400/Snapshot_002.png" /></a></div>
<div style="text-align: center;">
<i>Рис.2</i></div>
<br />
Все меню русифицированы изначально, поэтому сложностей ожидать не приходится - надписи на кнопках говорят сами за себя. "Баланс" показывает текущий баланс, "Обновить" вызывает принудительный сеанс передачи актуальных данных с сервера (в обычном режиме пейджер постоянно, через равные промежутки времени обменивается данными, но мы же понимаем, что SL тормозит там, где не глючит, и наоборот), "Пополнить" - понятно зачем, ну и самая главная кнопка - "Отправить"!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBO1O-H11nTUdEuL3DMbqjuu8bVamk0OJTRkX9AULe0rzyZ0aoezfjlqNDGiseAlO6gZodY10JLYOfkQOURNp2emIrYZv2svyOORMaPmVVkXx1tTI2B2Dd6Y_fsDOy_WXNGA5inm_kqPM/s1600/Snapshot_003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBO1O-H11nTUdEuL3DMbqjuu8bVamk0OJTRkX9AULe0rzyZ0aoezfjlqNDGiseAlO6gZodY10JLYOfkQOURNp2emIrYZv2svyOORMaPmVVkXx1tTI2B2Dd6Y_fsDOy_WXNGA5inm_kqPM/s400/Snapshot_003.png" /></a></div>
<div style="text-align: center;">
<i>Рис.3</i><br />
<br />
<div style="text-align: left;">
При нажатии на нее появляется окно отправки сообщения, где нужно указать телефон и сообщение. К сообщениям применяются все те правила, которые применяются к обыкновенным смс. На этом рисунке я не стал тянуть кота за хвост и сразу разместил скриншот с телефона. Сообщения доставляются относительно быстро, однако следует понимать, что операторов хватает и у каждого свои очереди доставки и другие странности, поэтому на разные операторы сообщения будут ходить каждое по-своему. Да и обычные смски ходят тоже точно таким же макаром.</div>
<div style="text-align: left;">
<i> </i></div>
<div style="text-align: left;">
Ну и хотелось бы коснуться вопроса пополнения баланса. Как все понимают, только коммерческая составляющая заставляет работать что-либо пресловутым "должным образом", поэтому в системе «AlphaSMS» все сообщения платные. Стоимость сообщения вычисляется в реальном режиме на основании запрошенных данных от оператора, сколько будет стоить вот такая длина текста на вот такой номер. Минимальная цена у нас получилась 8 за сообщение на телефон МТС. Однако, я бы все же отдал предпочтение минимальной стоимости в 10 при отправке на телефоны РФ и СНГ, за границу же стоимость может достигать и 40. В дальнейшем, с выпуском международной версии, возможно удастся цены как-то нивелировать.</div>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX2xY3838ZoBwh8ncdEuf5GdaEGpue2_D_OET9Vx1NOAMMoz0iDy80z-KJDP80gTJ6RLRh3WIQrjtsOZEVo-ChinfqyXKA5HFpqAUBk6ubgzrR5W_r7P9Kj-y2krAoEAmpC-QZZ0tA7rs/s1600/Snapshot_004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX2xY3838ZoBwh8ncdEuf5GdaEGpue2_D_OET9Vx1NOAMMoz0iDy80z-KJDP80gTJ6RLRh3WIQrjtsOZEVo-ChinfqyXKA5HFpqAUBk6ubgzrR5W_r7P9Kj-y2krAoEAmpC-QZZ0tA7rs/s400/Snapshot_004.png" /></a></div>
<div style="text-align: center;">
<i>Рис.3</i><br />
<br />
<div style="text-align: left;">
Как же пополнить баланс? Для этого были разработаны специальные карты пополнения баланса на 100, 250, 500 и 1500. Несмотря на номинал, принцип использования карт един - ее просто нужно выложить на землю там, где работа скриптов не запрещена. В углу появится меню, предлагающее пополнить баланс. Если отвечаем положительно, карта превращается в тыкву, а на ваш счет в системе поступает указанная в номинале сумма. Если же вы откажетесь, тогда карта напомнит вам сохранить ее в инвентарь.</div>
<div style="text-align: left;">
<i> </i></div>
<div style="text-align: left;">
Карты можно передавать, поэтому их можно запросто дарить. Как в нашем примере - мальчик дарит карту девочке на 8 марта, а 9 марта она ему выносить мозг смсками ;) Жуть.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Что же касается технологии, будет некрасиво не сказать ни слова о ней... Казалось бы, простая задача за многие годы, которые прошли со времен первых симов, так никто и не представил подобного решения. Видел решения с бесплатными email-sms шлюзами, но это, как вы сами понимаете, совершенно не гарантирует доставку, не говоря уже о каком-то адекватном времени, которое она занимает.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
На проверку оказалось, что анархия с кодировками текста до сих пор, в эпоху интернетов и юникодов, остается проблемой. Поэтому был написан довольно хитрый модуль определения кодировок и превращению зюк в буквы. Еще одна проблема подстерегала на этапе стабильного линка гаджета к серверам системы - все-таки СЛ есть СЛ, сами знаете. Ну и третья, серьезная проблема, с которой пришлось столкнуться, является культура пользователей. Так как законы РФ с некоторых пор ополчились на старый добрый мат, то операторы так и ждут, чтобы оштрафофать контрагента за шалости его клиентов. Так как люди из СЛ очень любят литературно шалить в стиле Луки Мудищева, пришлось поставить мат-фильтр и запретить мат, вкупе с рекламой, пунктом в Договоре-оферте.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Осталось самое-самое - сообщить, где же можно пробрести пейджер. Учитывая гон и фокусы с банами за трансферы с ворованными линден-долларами, продажи пейджера и карт пополнения происходят только через маркет; никаких вендоров in-world, во всяком случае, моих. Поэтому все желающие могут пройти по ссылке и приобрести безопасно и с гарантией через официальный сайт - <a href="https://marketplace.secondlife.com/stores/9085"><b>https://marketplace.secondlife.com/stores/9085</b></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Покупая пейджер, вы уже имеете на счету 50 и сразу можете отправлять сообщения. Пейджер не стоит ничего - вы платите только за свои SMS.</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Наслаждайтесь! ;)</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<i>P.S. Всё-таки этот материал нельзя считать полноценной технической статьёй, понимаю. Что ж, в следующий раз я расскажу тогда что-нибудь более интересное, например, как устроен эпический транклюкатор, который я так и не успел доделать на Плюке, но есть шанс, что сделаю на Техлабе.</i></div>
</div>
Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com6tag:blogger.com,1999:blog-875702549263866709.post-18738602065081402012013-04-29T04:40:00.003-07:002013-04-29T04:48:05.229-07:00Сервис групп (вариант для начинающих администраторов)Кто желает, может подключить на своих симуляторах сервис групп, сейчас я объясню, как это сделать. Рецепт даю для крайней версии сервера, однако полагаю, что на старших версиях все точно так же.
Берем файл OpenSim.ini и находим там секцию [Groups], после чего приводим ее вот к такому виду<br />
<br />
<pre>[Groups]
;# {Enabled} {} {Enable groups?} {true false} false
;; Enables the groups module
Enabled = true
;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {} Default
;; This is the current groups stub in Region.CoreModules.Avatar.Groups.
;; All the other settings below only really apply to the Flotsam/SimianGrid
;; GroupsModule.
;; This module can use a PHP XmlRpc server from the Flotsam project at
;; http://code.google.com/p/flotsam/
;; or from the SimianGrid project at http://code.google.com/p/openmetaverse
Module = GroupsModule
;# {MessagingEnabled} {Module:GroupsModule} {Is groups messaging enabled?} {true false} true
MessagingEnabled = true
;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule} GroupsMessagingModule
MessagingModule = GroupsMessagingModule
;# {ServicesConnectorModule} {Module:GroupsModule} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector} XmlRpcGroupsServicesConnector
;; Service connectors to the Groups Service as used in the GroupsModule. Select one depending on
;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend
ServicesConnectorModule = XmlRpcGroupsServicesConnector
;# {GroupsServerURI} {Module:GroupsModule} {Groups Server URI} {}
;; URI for the groups services
;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc
;; or http://mygridserver.com:82/Grid/ for SimianGrid
GroupsServerURI = "http://virtcons.ru/sl/opengroups/xmlrpc.php"
;# {NoticesEnabled} {Module:GroupsModule} {Enable group notices?} {true false} true
;; Enable Group Notices
NoticesEnabled = true
;; This makes the Groups modules very chatty on the console.
; DebugEnabled = false
;; XmlRpc Security settings. These must match those set on your backend
;; groups service if the service is using these keys
; XmlRpcServiceReadKey = 1234
; XmlRpcServiceWriteKey = 1234</pre>
<pre></pre>
После этого перезапусткаем сервер и наслаждаемся. У меня будет небольшая просьба - если что-то не работает, то пожалуйста описывайте проблему внятно и полно, чтобы можно было разобраться в ней.<br />
<br />
<i><b>P.S.</b> Как одельно поднять всё у себя, например, локально, я расскажу как-нибудь в другой раз, сейчас времени не особо ;( </i>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-1116209856337731752012-06-17T10:48:00.001-07:002012-06-17T10:51:02.581-07:00[OpenSim] В грид!<i>Полагаю, с терраформом все разобрались, ландшафт себе по вкусу создали, чего-нибудь там построили уже наверняка... Пора бы и к гриду подключиться. Сегодня я расскажу, как это сделать, что для этого нужно и что нас там, в этом самом гриде, ждет.</i>
<br><br>
Значится так: мы будем рассматривать только технический аспект подключения к гриду. То, что любой открытый грид - не SL, ваши личные трудности и проблемы, точно так же как и трудности любого грида, за исключением технических, лично меня не тревожат никоим образом. В принципе, лично мне нравится буржуинский <a href="http://www.osgrid.org/" target=_blank><b>«OSGrid»</b></a> потому что там есть всё то же самое, что и в современном SL. Всё - это значит всё, нет только оголтелых адептов совкового менталитета, потому что те русские, кто есть, тщательно шифруются и правильно делают. Никакого «КП», никакого «Дома-3», тишь да благодать в этом плане. А вот населения хватает как такового, скучать не приходится.
<br><br>
Есть и отечественный грид - <a href="http://www.opensim.ru/" target=_blank><b>«OpenSim.ru»</b></a>, я в самой первой статье приводил ссылки на него. Этот грид мне откровенно жалко, потому что из населения одни <a href="http://slbot.net" target=_blank>боты</a> So Hyun'a, правда, живущие полной жизнью и даже лабающие на музыкальных инструментах. Такого ни у кого нет, надо полагать :D К слову сказать, мой сим <i>Kin-Dza-Dza</i> стоит именно в этом гриде в настоящее время, да и островов там хватает, можете <a href="http://opensim.ru/worldmap.php" target=_blank>сами убедиться</a>. Он хороший, но пока что нет войса, зато недавно <a href="http://opensim.ru/viewtopic.php?f=5&t=171" target=_blank>появились группы</a>.
<br><br>
Впрочем, это дело наживное, а вы если посмотрели крайнюю ссылку, можете праведно возмутиться, дескать, чего он гонит, там подавляющее большинство симов в списке находятся в глухом <i style="color: #8A0000;">OFFLINE</i>. Да, увы, это так, на эти симы вы не сможете телепортироваться, но не потому, что они не работают, а потому, что нельзя к ним подключиться. Здесь мы плавно переходим от болтовни к техническим особенностям подключения вашего региона к какому-либо гриду в принципе.
<br><br>
Запомните раз и навсегда: если у вас <b>динамический IP-адрес</b> или же адрес все-таки статический, но провайдер решил «позаботиться» о вашей же безопасности и закупорил фаерволом все порты или, ещё хлеще, и то и другое вместе, то максимум что вы можете получить, так это строчку в этом печальном списке отъявленных «недоподключенцев». Чудес не бывает - если закрыты порты, никто никогда не сможет к вам подключиться, даже если у вас и неизменный IP-адрес, тем паче, если он, вдобавок ко всему, меняется от сессии к сессии. Севисы а-ля «DynDNS», конечно, решат проблему меняющегося адреса, но уж тогда лучше решать проблему комплексно и купить за $2/мес. (а у кого и дешевле) внешний адрес вкупе с открытыми настежь портами. Все остальные кустарные решения будут неизменно приводить к онанизму. Чудес не бывает.
<br><br>
В общем, будем полагать, что с адресом и портами у нас все в порядке, поэтому идем и... Правим конфиги? Увы, нет. Сперва мы сделаем полный бэкап нашего сима, а также тех предметов, которые мы хотели бы взять с собой в грид. Сейчас придётся опять погрузиться в пучины теории, но без этого никак, нужно же понимать, что происходит.
<br><br>
Все предметы сим хранит в так называемых <b>«ассетах»</b>. Логически это ничто иное, как записи в базе данных. Вопрос только - в какой именно. Если симулятор запущен, как <b>standalone</b>, то абсолютно всё хранится в локальных базах, если же сим находится в гриде, то всё, что находится <b>на автатаре</b> и <b>в инвентаре</b> хранится <b>в базе грида</b>, а вот то, что находится <b>на симе - в базе сима</b>. Но есть один нюанс. Всё зависит от настроек конкретного грида. Что там и как, знает только гридмастер. Таким образом, ассеты сима могут храниться и в базах грида совершенно запросто. Именно поэтому идем в консоль нашего сервера и печатаем очень простую команду:
<ol><li>Region (Kin-Dza-Dza) # <b>save oar /home/opensim/kin-dza-dza.backup.oar</b></li></ol>
Вообще архив делать нужно постоянно и как-нибудь я напишу, как этот процесс автоматизировать. А пока выключим сервер и пойдем конфиги править, чтобы подключиться к русскому гриду.
<br><br>
Если помните, <a href="http://russiansecondlife.blogspot.com/2012/06/opensim.html" target=_blank>я упоминал о глобальных координатах</a> в гриде, поэтому еще раз проверьте при помощи <a href="http://opensim.ru/worldmap.php" target=_blank>карты</a>, что они указывают на свободное место, затем просто берем в файле <i>OpenSim.ini</i> закомментируем конфиг одиночного режима и раскомментируем другой, для грида.
<pre>; Include-Architecture = "config-include/Standalone.ini"
Include-Architecture = "config-include/Grid.ini"</pre>
После запуска сервера он будет подключен уже в грид и попасть на сим можно будет только с авторизацией грида, то есть с тем логином и паролем, с которым вы зарегистрировались у них на сайте.
<br><br>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-63043642844122320542012-06-07T14:04:00.002-07:002012-06-07T16:35:30.849-07:00[OpenSim] ТерраформНу вот, у нас есть четыре сима, настало самое время заняться их комплексным терраформированием, чтобы получить единое пространство. Как я уже говорил, я буду моделировать полуостров Крым, для чего иду в <a href="https://maps.google.com/?ll=45.336702,35.491333&spn=2.23187,4.669189&t=k&z=8" target=_blank>«Google Maps»</a>:
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl8qf9KxFZ08YQ55zbFktJMY4Z6gju16dIPkqqhpLe533HaN10QOcs5tBLHbSmAKLaxW2MTxj9J0kOg8uXgKnTpt-70AdXsRxVm24OB4Wk5muQUM07szM-9PCmso8NiN5PpMF4K-xnSn4/s1600/Screenshot+from+2012-06-07+13%253A03%253A05.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl8qf9KxFZ08YQ55zbFktJMY4Z6gju16dIPkqqhpLe533HaN10QOcs5tBLHbSmAKLaxW2MTxj9J0kOg8uXgKnTpt-70AdXsRxVm24OB4Wk5muQUM07szM-9PCmso8NiN5PpMF4K-xnSn4/s500/Screenshot+from+2012-06-07+13%253A03%253A05.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Кстати, кое-какой терраформ можно выполнять и из консоли сервера. Для примера, давайте вместо лысых пятачков на всех четырех регионах сделаем одино большое и ровное плато. Для этого нужно из рута сервера отдать команду на терраформ:
<ol><li>Переходим в корень:<br>Region (Crimea1) # <b>change region root</b></li>
<li>Ровняем землю и поднимаем на уровень 30 метров (вода у нас по умолчанию на 20 метрах):<br>Region (root) # <b>terrain fill 30</b></li></ol>
И все, все четыре сима превращаются в одно большое пространство. Если же нужно с каким-то одним регионом проделать подобное, то... Думаю, вы уже догадались ;D
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvXpBlF2qhQ2uH1Tyuo16oj9Xd2KSwpWqNXtOxKq-kp15eM30tLB8jGq_oWcNPqp8b7Ly6ugYKLz1x69J8nFO4M3oUwpZs3DMgLwypqMPo-hbewdcd_W0ic3c_oL8gYrpf3UtyOPZYGy8/s1600/Snapshot_001.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvXpBlF2qhQ2uH1Tyuo16oj9Xd2KSwpWqNXtOxKq-kp15eM30tLB8jGq_oWcNPqp8b7Ly6ugYKLz1x69J8nFO4M3oUwpZs3DMgLwypqMPo-hbewdcd_W0ic3c_oL8gYrpf3UtyOPZYGy8/s500/Snapshot_001.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Итак, нас есть скриншот, который нужно переработать в битовую карту (RAW) террейна, понятную симулятору. Немного теории. Мы знаем, что регион имеет размеры 256х256 метров. Сетка высот кодируется raw-файлом, размерами 256х256 точек, таким образом получается, что одна точка кодирует высоту одного квадратного метра террейна. Значение точки может лежать в пределах от 0 до 255, что на практике дает нам цвет пикселя в градациях серого. Если это рассматривать в системе цветокодирования RGB, то получается, что мы имеем 4 канала цвета: <b style="color: red;">R</b> (красный), <b style="color: green;">G</b> (зеленый), <b style="color: blue;">B</b> (синий) и <b>A</b> (прозрачный, альфа). Смотрите, как понимает значение этих каналов сервер, потому что если с красным и синим все более-менее понятно, то зеленый канал таит в себе чудеса:
<ol>
<li><b style="color: red;">R</b> (красный) Высота основания точки в метрах от 0 до 255</li>
<li><b style="color: green;">G</b> (зеленый) Множитель к высоте основания точки</li>
<li><b style="color: blue;">B</b> (синий) Высота уровня воды (20 м по умолчанию)</li>
</ol>
Вычисляется окончательная высота точки по специальной формуле, описывающей взаимодействие красного и зеленого каналов карты, к счастью, несложной:
<ol><li><b>Высота (канал <b style="color: red;">R</b>) * Множитель (канал <b style="color: green;">G</b>) / 128</b></li></ol>
Зачем так сделали и что хотели этим достичь, я не знаю, да и не очень хотелось бы знать. Большие знания - большие печали. Просто поступим так, как требуется, чтобы получить то, что мы хотим. Возвращаемся к нашему скриншоту и вырезаем квадрат, равный 512х512 пикселей (2х256, у нас же по два сима на одну сторону) с необходимой территорией внутри:
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3d5nOCg82n3hyphenhyphen2ZUHH69vpyt7xCaJK1vOs08nuvzvbQOdTWvOMUCAts2g8lnz2WoPz9IgmE6YAfurZSRVHDdJ3MjGXAGafK-Awb1iUELEfuQoo-PqU5d9wjN8NrDryb2AiKHTc3kSvQ/s1600/c1.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3d5nOCg82n3hyphenhyphen2ZUHH69vpyt7xCaJK1vOs08nuvzvbQOdTWvOMUCAts2g8lnz2WoPz9IgmE6YAfurZSRVHDdJ3MjGXAGafK-Awb1iUELEfuQoo-PqU5d9wjN8NrDryb2AiKHTc3kSvQ/s500/c1.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
У меня не совсем удачно получилось вырезать с первого раза, так что снизу картинки вылезла подложка, но этим сейчас можно пренебречь, потому что мы все равно будем четко очерчивать береговую линию и, по уму, нужно спозиционировать сушу полуострова в центр квадрата, ведь по сути, полуостров станет островом в этой модели.
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-gFtCZLcj4JUHhNp4ULIf_tKK_gBKywIVCVNknm98O80L9F_UZDPlOmHIeTWJm6lBrOVOa6gnia4d_W0qRkjoxFZuapKiFRpBB3Ihp9LVnyWxspW5UuqAResJD4murPD82zxBFfXZREY/s1600/c2.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-gFtCZLcj4JUHhNp4ULIf_tKK_gBKywIVCVNknm98O80L9F_UZDPlOmHIeTWJm6lBrOVOa6gnia4d_W0qRkjoxFZuapKiFRpBB3Ihp9LVnyWxspW5UuqAResJD4murPD82zxBFfXZREY/s500/c2.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Ну вот, теперь у нас есть материал для терраформирования - установим значения каналов по 128, разрежем на четыре части эту картинку и... Здесь бы написать «и загрузим на сервер», да только обломитесь, девочки и мальчики. Не все так просто. Тут как в сексе - вроде бы ничего непонятного, все предельно ясно, но сноровка требуется :D Короче, разрезаем нашу картинку на четыре равные части и каждую сохраняем как 24-битную TGA, потому что дальше мы пойдем приводить их к общему знаменателю и удобоваримому виду. И вот на что обратите внимание особое - у меня не даром покрашен полуостров в серый цвет, а то место, где должно быть море - в черный. Помните теорию? Вот я таким образом явно разделил высоты.
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv3DtFY3Wz13TJW_R1qomee8v5SOzbxlxySWyNmTnpV7jLU8PknKJ-8IADK-fMlo78P-VSsMXdT1xxGXangIyjXG_O7UkV1JaAOxR5hFfQyfPMkL7N7gRY7MrXXXJpeSNvLtQC710fHBc/s1600/C3.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv3DtFY3Wz13TJW_R1qomee8v5SOzbxlxySWyNmTnpV7jLU8PknKJ-8IADK-fMlo78P-VSsMXdT1xxGXangIyjXG_O7UkV1JaAOxR5hFfQyfPMkL7N7gRY7MrXXXJpeSNvLtQC710fHBc/s500/C3.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Теперь немного пошарим по инету и скачаем вот что:
<ol><li><a href="http://www.planetside.co.uk/index.php?option=com_content&view=article&id=40&Itemid=152" target=_blank><b>«Terragen»</b></a> - генератор ландшафтов.</li></ol>Сегодня мы им воспользуемся для конверсии наших картинок, но вообще рекомендую ее освоить, потому что в ней можно делать весьма прикольные терраформы и потом все это барахло грузить в сим. В конце статьи, в качестве бонуса, я покажу терраформ горного участка местности с озерцами на те же четыре сима, сделанный в ней.<ol><li><a href="http://www.spinmass.com/Software/Bailiwick.aspx" target=_blank><b>«Bailiwick»</b></a> - редактор каналов raw-файлов (требует для работы <a href="http://www.microsoft.com/en-us/download/details.aspx?id=19" target=_blank>.Net 2.0</a>).</li></ol>Эта прога специально написана добрыми самаритянами, чтобы генерировать правильные файлы для SL из того шита, что в нее грузят такие деятели, как мы с вами. Так что ставим все это барахло, курим (программы под Win32, имейте в виду, если что, WINE вас спасет) и делаем четыре raw'чика для наших регионов.
<br><br>
А теперь внимательно следите за руками, кто прощелкает, у того дырки в земле будут! :D
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuVDlCEKOY3vsd5uT3zq3SFfOvjp2_JLFisnKWWK_dZZ8gOA0Jg7doKHxsViy44YiAeAB0PZnsLfoR1xoSOZhfVK7Xq_2cWaZACcS4w1xdm2nY83eb3B01_oGmXzsWK0eo-YZ5M4Q_9go/s1600/C4.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuVDlCEKOY3vsd5uT3zq3SFfOvjp2_JLFisnKWWK_dZZ8gOA0Jg7doKHxsViy44YiAeAB0PZnsLfoR1xoSOZhfVK7Xq_2cWaZACcS4w1xdm2nY83eb3B01_oGmXzsWK0eo-YZ5M4Q_9go/s500/C4.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Итак, берем «Terragen» и, немного поигравшись с ним, как же без этого, начинаем выполнять некие осмысленные действия. Сперва нажимаем кнопку <b>«Import»</b> (1) и в открывшемся окне (опять 1) выбираем первый из подготовленных загодя четырех картинок в TGA. Когда он загрузится, нажимаем кнопку <b>«Modify»</b> (2) И выставляем значения высот, зафиксировав их нажатием кнопки <b>«Set Height Range»</b>. Я выбрал такие, как на скриншоте, у вас могут быть свои, определенные экспериментально. После настройки высот закройте это окошко кнопкой <b>«Close»</b>, иначе все остальные окна будут неактивны. Затем установим необходимый уровень воды - у нас он равен 20 метрам, так как мы его не меняли на своих симах. Окно настроек воды открывается нажатием на квадратную кнопку слева с изображением волн. Значение воды также фиксируем.
<br><br>
Ну вот, основное сделано, теперь можно посмотреть предварительно, как все будет выглядеть. Сбоку на панельке есть большая квадратная кнопа <b>«3D»</b>, жмем:
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE6HdLSc49Dvw3fgdeyHxlsBN7BMUMcIomdySmexQ5Ru4dYJ53pH6VrYc8td5ZCqM05WgjlH9nBbu9q_9D4iLBCxxRbeFRKyuOFBVxaXTPkKJXZmX3djMynnEe7fmcP6AGSSrdbkdKKW8/s1600/C5.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE6HdLSc49Dvw3fgdeyHxlsBN7BMUMcIomdySmexQ5Ru4dYJ53pH6VrYc8td5ZCqM05WgjlH9nBbu9q_9D4iLBCxxRbeFRKyuOFBVxaXTPkKJXZmX3djMynnEe7fmcP6AGSSrdbkdKKW8/s500/C5.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Там есть некое подобие <s>левой руки</s> 3D-камеры, можно посмотреть со всех сторон эскиз, но управление у нее абсолютно нечеловеческое. Впрочем, лучше, чем ничего. Теперь жмем кнопку <b>«Save»</b> (3) и сохраняем то, что у нас получилось, в формате террейна с расширением <b>.ter</b>.
<br><br>
Теперь берем другую софтину, «Bailiwick», и при минимуме телодвижений формируем RAW-файл, годный для сима. Импортируем, проверяем, что все в порядке, сохраняем уже как <b>.raw</b>, все. Стоит обратить внимание, что у этой программы также есть поле с указанием уровня воды. Так как он у нас стандартный, то мы ничего не делаем, если у вас свой, то нужно его перед сохранением изменить в этом поле.
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdckDwo4s4caGlnwHvNCXBkZbM_rTJ2OqXjW0MoVuFej_EAV9JyBtxRdFr_980FgMHhEFW999ZPZENtAhaX9fSEsRjrY0nbj8C2h_KDe0yOG_xVnml_fDtU2dh6lPYez1rv0l0DgtrCME/s1600/C6.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdckDwo4s4caGlnwHvNCXBkZbM_rTJ2OqXjW0MoVuFej_EAV9JyBtxRdFr_980FgMHhEFW999ZPZENtAhaX9fSEsRjrY0nbj8C2h_KDe0yOG_xVnml_fDtU2dh6lPYez1rv0l0DgtrCME/s500/C6.png" style="border: 1px #C0C0C0 solid;" /></a>
<br><br>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmHIxcWPqookaAU7iteS_OGII5YZmF010JRek7ws_MwshqhBPwoxwkRfV_0SzoAXyGwOwWQ7Yo9TKABCo8C-EFxtmfay7x8w8huvVQ5aAhuqA-5f66nJfJbh5Jup8DUI5V3zZYPU0fFiw/s1600/C7.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmHIxcWPqookaAU7iteS_OGII5YZmF010JRek7ws_MwshqhBPwoxwkRfV_0SzoAXyGwOwWQ7Yo9TKABCo8C-EFxtmfay7x8w8huvVQ5aAhuqA-5f66nJfJbh5Jup8DUI5V3zZYPU0fFiw/s500/C7.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
В общем, это финал. Обрабатываем остальные файлы таким же макаром и выгружаем на симы в необходимом порядке. В результате должно получиться то, что мы задумали. У меня вот - полуостров Крым.
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5xefixEunuPSoKh5BpTz-LeSqsbJa8aGc5O5ZegkauFdIH0ZKTevOcggk9rfE2UyoSZrzGdGEzuv9B8SnYeH_Oas_rGX5NKmS50kZo-fCJ3lgJ3dckZ9L5RePgSNN8ufnbDDUgCzg3LQ/s1600/Snapshot_005.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5xefixEunuPSoKh5BpTz-LeSqsbJa8aGc5O5ZegkauFdIH0ZKTevOcggk9rfE2UyoSZrzGdGEzuv9B8SnYeH_Oas_rGX5NKmS50kZo-fCJ3lgJ3dckZ9L5RePgSNN8ufnbDDUgCzg3LQ/s500/Snapshot_005.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
По правде сказать, по уму надо бы еще поработать над рельефом, поскольку в Крыму есть горы, озера и т.п. Но перенос рельефа - это задача, производная от той, которую мы только что решили, стало быть, дело техники. Поэтому я бы вам порекомедовал самостоятельно поработать над этим и задать высоты в своих тераформах, хотя бы ради тренировки. Ну а сейчас обещанный результат работы «Terragen'a»:
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAFzw3MSnbqFu3HsD6UBw8CIqdLtZLqWsyZlXd3JZ-sXuKg1FkxnIUbL8Ok1bounM-GYOh71TWrHXrBPil7e0A888S5jDtQZukbUn1vw3AxmbS7Oexq8juBhgSqFHEbh2jovwpoXyMhgk/s1600/Snapshot_006.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAFzw3MSnbqFu3HsD6UBw8CIqdLtZLqWsyZlXd3JZ-sXuKg1FkxnIUbL8Ok1bounM-GYOh71TWrHXrBPil7e0A888S5jDtQZukbUn1vw3AxmbS7Oexq8juBhgSqFHEbh2jovwpoXyMhgk/s500/Snapshot_006.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Вот и все. Можно, конечно, сказать, что заморочено как-то все, проще по-старинке, in-world при помощи старых добрых Ctrl-5... Болтуны. Уж кто этими «старыми добрыми» что-то и терраформил, такой ереси точно не скажут :D
<br><br>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com2tag:blogger.com,1999:blog-875702549263866709.post-54417922021120284142012-06-06T08:56:00.000-07:002012-06-07T14:17:09.210-07:00[OpenSim] Что от нас скрывают в LindenLab<i>Знаю-знаю, я обещал рассказать, как подключить свой сим к гриду. Но давайте рассуждать здраво - ну вот вы подключили свой сим, позвали туда своих друзей (чтобы забанить, не иначе как ;D ), а у вас на симе - лысина суши торчит из воды и вы там, посередине, криво примостили свой аватар на кубик. В общем, скажут вам друзья "Круто!" из жалости и свалят обратно в SL лясы точить. Оно вам надо?</i>
<br><br>
Сегодня я расскажу, как сделать <i>правильный</i> терраформ, попутно открою святую тайну всех эстейт-администраторов и то, что от вас скрывают от вас в LindenLab по поводу серверов и регионов. Об этом я уже упоминал в прошлой статье, сегодня же мы своими руками проделаем такие же манипуляции, какие проделывают Линдены, когда берут свою $1000 за установку сима очередному незадачливому клиенту.
<br><br>
Итак, давайте сегодня создадим кластер, состоящий из четырех, стоящих рядом, регионов, на которых сделаем комплексный терраформ какого-нибудь реального рельефа Земли.
<br><br>
Для этого, как всегда, <s>расчистим лабораторный стол</s> сделаем несколько подготовительных манипуляций. В прошлый раз мы запустили свой сим с одним единственным регионом, сегодня же мы будем создавать на этом сервере совершенно иную конфигурацию, поэтому будет разумно немного вернуться назад и создать необходимые нам регионы снова прямо из консоли сервера. Для этого мы идем в папку <b>osim</b>, где лежат файлы сервера и ищем там еще одну папку, которая называется <b>Regions</b>. Как можно догадаться, здесь лежат файлы, которые описывают конфигурацию всех наших регионов, которые размещены на сервере, ведь мы уже знаем, что один сервер может обслуживать количество оных числом более единицы.
<br><br>
В нашем случае интересующий файл будет один с интуитивно понятным названием <b>Regions.ini</b>, не перепутайте ;) Если мы его откроем, то увидим переменные, которые описывают те или иные параметры. Я сейчас приведу свой файл, в принципе, там все понятно, что для чего нужно:
<blockquote><pre>[Kin-Dza-Dza]
RegionUUID = 6962ac4b-d8a5-4142-99b6-7dee1f6b0474
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 191.168.0.2</pre></blockquote>
Теперь вы знаете, что почти все ответы на вопросы, которые задавал нам сервер, храняться именно здесь и если что, нужно идти сюда, чтобы что-нибудь поправить или поменять. Но мы к этому еще когда-нибудь вернемся, а пока просто переименуем этот файл во что-либо иное, например:
<ol><li><b>$ mv Regions.ini Regions.ini.old</b></li></ol>
Все, возвращаемся в <b>osim</b> и запускаем сервер. Так как сервер не найдет нужного конфига во время старта, он опять начнет задавать нам все те же вопросы, которые были в прошлый раз. Отвечаем безо всякого стеснения, однако, помня о том, что на этот раз мы создаем не один, а четыре региона, названия будем давать такие, чтобы потом нам было удобно между ними переключаться. В конце концов их всегда легко поменять на любые другие, когда это станет нам нужно.
<br><br>
Лично я буду создавать модель моего родного края - полуострова Крым, поэтому буду называть регионы <b>Crimea1</b>, <b>Crimea2</b>, <b>Crimea3</b> и <b>Crimea4</b>. Первый регион создаем не глядя, просто отвечаем на вопросы. Единственный момент, на который нужно обратить внимание - в какой-то момент сервер спросит, хотите ли вы разместить новый регион в существующем эстейте или нет.
<blockquote><pre>New region name []: Crimea1
Region UUID [8b0c7f33-0e3b-4026-9407-25392fa316c0]:
Region Location [1000,1000]:
Internal IP address [0.0.0.0]:
Internal port [9000]:
Allow alternate ports [False]:
External host name [SYSTEMIP]: media
14:22:18 - [REGION LOADER FILE SYSTEM]: Loading config files from ./Regions
14:22:18 - [REGION LOADER FILE SYSTEM]: Loading config file ./Regions/Regions.ini
14:22:18 - [REGION LOADER FILE SYSTEM]: Loaded config for region Crimea1
14:22:18 - [LOAD REGIONS PLUGIN]: Loading specific shared modules...
14:22:18 - [LOAD REGIONS PLUGIN]: DynamicTextureModule...
14:22:18 - [LOAD REGIONS PLUGIN]: LoadImageURLModule...
14:22:18 - [LOAD REGIONS PLUGIN]: XMLRPCModule...
14:22:18 - [LOAD REGIONS PLUGIN]: Done.
14:22:18 - [LOAD REGIONS PLUGIN]: Creating Region: Crimea1 (ThreadID: 1)
14:22:18 - [ESTATE]: Region Crimea1 is not part of an estate.
Do you wish to join region Crimea1 to an existing estate (yes/no)? [yes]: no</pre></blockquote>
Все дело в том, что сервер помнит, что у нас уже есть эстейт, и хочет знать, что именно мы сейчас создаем, дополнительный парсель или совершенно отдельный сим? Если ответить «yes», то будет создан новый парсель на существующем эстейте, а так как мы убрали информацию о старом, то это будет парсель на весь существующий сим. Так что в данном случае отвечаем «no» и жмем ENTER, после чего сервер спросит, как нужно назвать вновь создаваемый эстейт (сим то бишь), а затем назначить ему владельца вместо Test User (или оставить этого). Да-да, я помню, с владельцами непросто. Но пока этим пренебрежем и вальсируем дальше.
<br><br>
Следом создаем остальные эстейты. Здесь нам поможет команда сервера <b>create region</b>. Давайте посмотрим, как правильно нужно ее отдавать:
<blockquote><pre>Region (Crimea1) # help create region
create region ["region name"] <region_file.ini>
Create a new region.
The settings for "region name" are read from <region_file.ini>. Paths
specified with <region_file.ini> are relative to your Regions
directory, unless an absolute path is given. If "region name" does not exist
in <region_file.ini>, it will be added. Without "region name", the first region found
in <region_file.ini> will be created. If <region_file.ini> does not exist, it will be created.</pre></blockquote>
Мы видим, что нужно просто задать имя нового региона и, по необходимости, имя файла, в котором будут его настройки. Здесь тоже есть один нюанс - поскольку происхоит постоянная путаница с терминологией, то не всегда очевидно, что же мы делаем и что получим в результате. Запомните - эстейт это сим, регион же может быть как симом, так и парселем. Сейчас мы создаем четыре эстейта, на которых будет расположено четыре парселя (региона), размерами по целому эстейту на каждый. Кроме того, создавая эстейт, полезно переместиться из текущего региона Crimea1, как мы видим, написано в приглашении сервера, в корневую сущность. Сделать это можно простой командой:
<blockquote><pre>Region (Crimea1) # change region root
Currently selected region is root</pre></blockquote>
Если же вы создаете несколько эстейтов, внутри которых планируется разместить несколько регионов (парселей), то для каждого эстейта лучше всего назначать свой ini-файл. Для наглядности, давайте сейчас так и поступим, создадим для каждого эстейта свой ini-файл, в данном случае это будет <b>Crimea2-Regions.ini</b>:
<blockquote><pre>Invalid command
Region (root) # create region Crimea2 Crimea2-Regions.ini
=====================================
We are now going to ask a couple of questions about your region.
You can press 'enter' without typing anything to use the default
the default is displayed between [ ] brackets.
=====================================
Region UUID [027a1195-f7bc-4610-9701-0f571c6d953a]:
Region Location [1000,1000]: 1000,1001
Internal IP address [0.0.0.0]:
Internal port [9000]: 9001
Allow alternate ports [False]:
External host name [SYSTEMIP]: 192.168.0.2
14:39:31 - [ESTATE]: Region Crimea2 is not part of an estate.
Do you wish to join region Crimea2 to an existing estate (yes/no)? [yes]: no
New estate name [My Estate]: Crimea2</pre></blockquote>
Здесь важно помнить, что нужно ему задать правильные координаты, правильный порт и правильное расположение - указать, что это новый эстейт, а не парсель в существующем эстейте. Вновь назначаем ему владельца и, вуаля!
<blockquote><pre>14:42:21 - [GRID SERVICE]: Region Crimea2 (027a1195-f7bc-4610-9701-0f571c6d953a) registered successfully at 256000-256256
14:42:22 - [REGION]: Enabling logins for Crimea2
14:42:22 - [GRID SERVICE]: region Crimea2 has 1 neighbours
14:42:22 - [INTERGRID]: Informing 1 neighbours that this region is up</pre></blockquote>
Обратите внимание на крайнее сообщение. Сервер нам говорит, что у нашего нового региона есть один сосед и он включен. Что ж, здесь теоретическая часть заканчивается и начинается практика - по аналогии создаем еще два региона и не забываем, что значение порта должно увеличиваться на единицу, да и координаты нужно указать таким образом, чтобы все четыре сима встали друг к дружке самым что ни на есть квадратно-гнездовым образом.
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3hS9GcaoHSecZYmuQVR9sWOYnKN9Ih0F5xetde4UN_hvk0iUBkerU6ShG_fqDNF8MuZv3A9v4VUjvZugaMQ8CFwqE0OmQ5jquBXyaqGAUCnI8ubfZrQ-4WCTguo3wyibWBRCTVruHWY8/s1600/Screenshot+from+2012-06-06+13%253A52%253A37.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3hS9GcaoHSecZYmuQVR9sWOYnKN9Ih0F5xetde4UN_hvk0iUBkerU6ShG_fqDNF8MuZv3A9v4VUjvZugaMQ8CFwqE0OmQ5jquBXyaqGAUCnI8ubfZrQ-4WCTguo3wyibWBRCTVruHWY8/s500/Screenshot+from+2012-06-06+13%253A52%253A37.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
<i>Теперь вам понятно за что Линдены дерут бабло? Если бы мы с вами были Линденами, мы бы уже положили себе в карман $4000 безо всякого зазрения совести ;) К слову сказать, точно так же поступают в LindenLab, когда вам впаривают туфту на тему «один сим - один сервер», сколько железный ящик бует тянуть вот таких виртуальных регионов, столько туда и впихнут, а в наши дни вообще оптимизация достигла перигелия - на железке запускается несколько виртуальных машин, которые через балансер... В общем, это уже совершенно другая история, которую я вам рассказывать не буду, поскольку это долго и нудно. Просто запомните - симов на одной машине можно запустить столько, сколько жадность и железо позволяет.</i>
<br><br>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com3tag:blogger.com,1999:blog-875702549263866709.post-1254483856910663812012-06-04T04:10:00.001-07:002012-06-05T14:23:32.787-07:00[OpenSim] Сервер<i>Я тут думал написать статью про SLVoice, но потом решил, что сделаю это в неком будущем, когда мне в очередной раз надоест играть в пиксели, ибо сейчас это относительно волнующая тема и все желающие могут потренировать свой мозг самостоятельно. Поэтому статья будет совсем про другое, в общем-то, даже не про SL.</i>
<br><br>
<div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxco_AgR-zshuZk7QksmwDq9YPyhZEwor31gYnMDnX01lNCy23Gh84R1N8P57ag6RcdRwaY0UzvBLthZXJ3IXs6jj1f-1ljTy43bUwyJyJ6s4zgBZRJ3nHk7u5ikXsdzH5on1bpgTxSnI/s1600/OpenPluk_001.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxco_AgR-zshuZk7QksmwDq9YPyhZEwor31gYnMDnX01lNCy23Gh84R1N8P57ag6RcdRwaY0UzvBLthZXJ3IXs6jj1f-1ljTy43bUwyJyJ6s4zgBZRJ3nHk7u5ikXsdzH5on1bpgTxSnI/s500/OpenPluk_001.png" style="border: 1px #C0C0C0 solid;" /></a></div>
<br><br>
Сразу говорю, статья будет скучная и без картинок, поскольку сегодня речь пойдет о том, как установить и запустить <b>opensim-server</b> и где есть какие «воздушные ямы». В качестве анонса хочу заметить, что в настоящее время опенсимы шагнули далеко вперед в своем развитии, при определенной сноровке там запускаются и голосовое общение, и группы, и платёжные модули и даже меши. Но все по порядку. Сегодня запускаем сам симулятор.
<br><br>
Работать мы будем с операционной системой linux (у меня стоит <a href="http://ubuntu.com/" target=_blank>Ubuntu 11.10 Server</a>). Сам же сервер прекрасно работает и под Windows и в конце статьи я приведу ссылку на форум, где описывается его установка под эту ОС. Что же касается настройки самого симулятора, то она ничем не отличается, поскольку мы имеем дело с приложением, как таковым.
<br><br>
Итак, первым делом нам нужно подготовить плацдарм. Это довольно просто - нужно создать пользователя в системе, под которым будет жить и работать наш симулятор и установить необходимые библиотеки, требуемые для жизнеобеспечения самого сима.
<ol>
<li>Создаем пользователя <b>opensim</b>:<br>
<b># adduser opensim</b></li>
<li>Устанавливаем <b>mono</b> и его окружение:<br>
<b># apt-get -y install nant mono-gmcs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil libgdiplus libmono-i18n2.0-cil libmono-oracle2.0-cil</b></li>
<li>Теперь необходимо удостовериться, что mono работоспособен:<br>
<b># mono -V
<pre>Mono JIT compiler version 2.10.5 (Debian 2.10.5-1)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)</pre></b>
</li>
<li>Так как симу нужно где-то хранить свои данные, он активно использует различные базы данных. По уму, конечно, лучше использовать <b>mysql</b>, но сейчас мы поставим (если не стоит) упрощенный движок DB, который называется <b>SQLite</b>. Вообще вещь полезная и мощная, не нужно пренебрежительно относиться к слову «упрощенный», если что ;)<br>
<b># apt-get -y install sqlite</b></li>
<li>Если у вас не стоит <b>screen</b>, то нужно его поставить, пригодиться в дальнейшем для запуска сервера как демона, потому что он сам этого не умеет, увы и ах:<br>
<b># apt-get -y install screen</b></li></ol>
Все дальнейшие действия теперь мы будем проводить от имени пользователя <b>opensim</b>, поэтому логинимся в систему под ним, причем, сразу предупрежу, что в нашем случае не стоит использовать <b>su opensim</b>, потому что потом возникнут сложности с запуском скрина.
<br><br>
Что ж, осталось совесем малое - скачать и распаковать сам сервер. Скачивать его можно либо с <a href="http://www.opensim.ru/files.php" target=_blank>русского сайта проекта OpenSim</a> или же <a href="http://opensimulator.org/wiki/Download" target=_blank>с иностранного</a>, разницы в данном случае нет никакой. Скажу только, что хотите или нет, а придется в дальнейшем читать оба сайта. Русский потому что он на русском, а иностранный, потому что там есть жизнь.
<ol>
<li>Мы залогинились заново, находимся в своей домашней директории, скачиваем симулятор:<br>
<b>$ wget http://opensim.ru/server/<font color="red">opensim_ru_build_722.zip</font></b><br>
и распаковываем его:<br>
<b>$ unzip <font color="red">opensim_ru_build_722.zip</font></b></li>
<li>Папку с распакованными файлами лучше всего сразу переименовать во что-нибудь удобоваримое:<br>
<b>$ mv <font color="red">opensim_ru_build_722</font>/ osim</b><br><br>
<i>Хочу обратить особое внимание на выделение <font color="red"><b>красным</b></font> - эти названия справедливы в настоящее время, но когда версия сервера изменится и будут выложены новые файлы, они станут другими. Понимаю, что сейчас указываю на очевидное, но безо всякого снобизма я полагаю, что среди моих читателей все же могут оказаться и блондинки с КП ;)</i></li></ol>
Собственно, все уже закончилось - сим установлен и готов к первому старту, во время которого придется ответить на несколько как простых, так и каверзных вопросов, что мы и сделаем. Следите за руками:
<ol>
<li>Переходим в папку <b>osim</b> и, глубоко вдохнув носом, запускаем наш сервер:<br>
<b>$ mono OpenSim.exe</b></li></ol>
<i>Давайте сразу договоримся вот о чем - мы искренне и наивно полагаем, что сервер у нас стартует без ошибок и он изначально работоспособен. Если же что-то идет не так, где-то что-то жутко начинает ругаться и отваливается, то это мы разберем в индивидуальном порядке. Но для этого я хотел бы попросить вас при описании ваших трудностей как можно более полно рассказать о том, что происходит, прилагая всевозможные логи, ведь меня нет рядом с вами и я не вижу, что реально случилось.</i><br><br>
После запуска, рано или поздно, сервер попросит вас дать ему имя:<br>
<blockquote><pre>=====================================
We are now going to ask a couple of questions about your region.
You can press 'enter' without typing anything to use the default
the default is displayed between [ ] brackets.
=====================================
New region name []: Kin-Dza-Dza</pre></blockquote>
Назовите, как хотите, я свой назвал вполне предсказуемо - <b><i>Kin-Dza-Dza</i></b>. Если хотите, можете использовать русские буквы в кодировке UTF-8.<br></br>
Дальше сервер предложит дать ему UUID вместо того, который он выбрал сам, здесь просто жмите ENTER и переходим к следующему вопросу, который стоит пометить, как каверзный:
<blockquote><pre>Region UUID [f487bbdb-f591-493d-8c7d-7591f14db04b]:
Region Location [1000,1000]:</pre></blockquote>
Чтобы правильно ответить на этот вопрос, стоит ознакомиться с тем, как вообще устроен грид. В данном случае нам интересно устройство координатной сетки. Как вы уже поняли, грид начинается с абстрактной точки с координатами X,Y 1000,1000. От нее симы расползаются в разные стороны до бесконечности, но при инициализации нужно точно знать место в гриде, куда вы хотите поместить свой сим. Поскольку сейчас мы будем запускать свой сим как <b>standalone</b>, то есть существующий в единственном экземпляре безо всякого грида, как сферический конь в вакууме, то просто нажимаем ENTER, оставляя координаты, как есть, но запоминим этот момент и потом мы к нему вернемся в статье, где я расскажу, как подключить свой сим к русскому гриду <a href="http://opensim.ru" target=_blank>opensim.ru</a>.
<br><br>
И снова каверзный вопрос задает нам железяка:
<blockquote><pre>Internal IP address [0.0.0.0]:</pre></blockquote>
Здесь кроются одни из основополагающих грабель, наступив на которые однажды, получаешь по башке еще продолжительное время. Дело в том, что <i>«внутренний IP адрес»</i>, как можно понять эту надпись, совершенно не равняется адресу localhost'a компьютера, где запускается сервер, как и не равняется он внутреннему адресу в вашей локальной сети (к слову, для компьютера адрес локальной сети будет внешним, если этот момент не понятен, забейте, просто запомните как аксиому, а лучше запишите на клейкой бумажке и налепите по центру монитора). В данном случае этот адрес вообще не нужно трогать, оставив там предложенное значение, тогда сервер будет слушать все доступные интерфейсы, как внутрениий <b>lo0 127.0.0.1</b>, так и внешний изнутри <b>eth0 192.168.0.2</b> (к примеру такой адрес, у вас может быть свой, не суть). Короче, просто жмите ENTER, но момент, опять же, запомните.
<blockquote><pre>Internal port [9000]:</pre></blockquote>
Добрались и до порта. Сейчас будет важно, не прохлопайте ушами ;) Дело в том, что для нормальной работы сервера должны быть открыты TCP и UDP порты 8895 и начиная с 9000 и выше по количеству запущенных на сервере симуляторов, ведь вы же знаете, что один сервер может поддерживать несколько симуляторов (регионов)? Так вот, на каждый сим по своему порту, причем здесь вы можете отойти от стандартных и предложить свои, но сейчас на это не нужно заморачиваться и просто опять, по привычке, нажимаем ENTER и запоминаем момент.
<blockquote><pre>Allow alternate ports [False]:
External host name [SYSTEMIP]: 192.168.0.2</pre></blockquote>
Опять же, на вопрос об альтернативных портах при помощи знакомой кнопки оставляем, как есть, а вот следующий вопрос про внешнее имя хоста опять коварен и каверзен до безобразия.
<br><br>
На самом деле здесь можно написать что угодно, все зависит от того, где мы хотим видеть наш сим и где он стоит - на локальной тачке, откуда и клиент потом вы будете запускать, на отдельной машине в вашей локалке или же должен быть виден из грида. В первом случае просто напишите <b>localhost</b> и, по привычке, запомните это место. Во втором случае, как у меня, пишем IP внутри сети - <b>192.168.0.2</b>. Если же ваш сим должен быть виден из грида, то здесь нужно написать ваш <b>внешний IP</b>, который виден из <b>«большого интернета»</b>. Но по первости я бы рекомендовал поступить без лишних жоподвижений и просто написать там <b>localhost</b>, потому что мне что-то подсказывает, что сим вы запускаете на своем локальном компьютере.
<br><br>
Похрустев немного, сервер приступит к конфигурированию эстейта и спросит, как его назвать:
<blockquote><pre>New estate name [My Estate]: Pluk Planet</pre></blockquote>
На самом деле здесь есть небольшая разница с терминологией, принятой в SL, поэтому поясняю - это на самом деле имя парселя, который по умолчанию будет размером на весь сим, поэтому я называю его просто и без затей <b>«Pluk Planet»</b>.<br><br>
Следующий вопрос - имя владельца, вписываем себя или оставляем дефолтного чувака <b>Test User</b>, абсолютно не принципиально. Дело в том, что в новой версии симулятора, что мы установили, не все радужно и просто с владельцем и это тема отдельной статьи, которую я скоро напишу. Так что не мудрствуя лукаво, вписывайте себя и опять же, запомните этот момент.
<blockquote><pre>Estate owner first name [Test]: Manoul
Estate owner last name [User]: Carnell</pre></blockquote>
И, о ужас! Красная надпись, ошибка, все пропало, крах устоев и ткани мироздания!
<blockquote><pre>14:14:43 - [GRID SERVICE]: Region Kin-Dza-Dza (f487bbdb-f591-493d-8c7d-7591f14db04b) registered successfully at 256000-256000
14:14:43 - [GRID CONNECTOR]: Registration failed: Region overlaps another region
14:14:43 - [STARTUP]: Registration of region with grid failed, aborting startup due to Region overlaps another region at OpenSim.Region.Framework.Scenes.Scene.RegisterRegionWithGrid () [0x00000] in <filename unknown>:0
at OpenSim.OpenSimBase.CreateRegion (OpenSim.Framework.RegionInfo regionInfo, Boolean portadd_flag, Boolean do_post_init, IScene& mscene) [0x00000] in <filename unknown>:0
</pre></blockquote>
А давайте проанализируем ошибку? Смотрите, что он нам пишет:
<blockquote><i>«[GRID CONNECTOR]: Registration failed: Region overlaps another region»</i></blockquote>
Это означает то, что мы пытаемся занять место, которое в гриде уже занято чьим-то симом. Дело в том, что если вы ставили ту версию, ссылку на которую я дал выше, то этот вариант уже сконфигурирован на работу с русским гридом и при старте ломится там регистрироваться, но глобальные координаты мы ему оставили 1000,1000, а этот «пуп земли» уже давно и прочно занят. Но сейчас мы хотим запустить свой сим как отдельно стоящий, поэтому переходим плавно к третьей части марлезонского балета в пилотажном кубе. Это будет незабываемо, я вам обещаю ;)
<br><br>
Открываем конфигурационный файл сервера и двигаем в его самый-самый конец:
<ol>
<li><b>$ vi OpenSim.ini</b></li>
</ol>
Там будут вот какие строки (привожу блок целиком):
<blockquote><pre>[Architecture]
;# {Include-Architecture} {} {Choose one of the following architectures} {config-include/Standalone.ini config-include/StandaloneHypergrid.ini config-include/Grid.ini config-include/GridHypergrid.ini config-include/SimianGrid.ini config-include/HyperSimianGrid.ini} config-include/Standalone.ini
;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim,
;; uncomment Include-Architecture = "config-include/Standalone.ini"
;;
;; Then you will need to copy and edit the corresponding *Common.example file in config-include/
;; that the referenced .ini file goes on to include.
;;
;; For instance, if you chose "config-include/Standalone.ini" then you will need to copy
;; "config-include/StandaloneCommon.ini.example" to "config-include/StandaloneCommon.ini" before
;; editing it to set the database and backend services that OpenSim will use.
;;
; Include-Architecture = "config-include/Standalone.ini"
; Include-Architecture = "config-include/StandaloneHypergrid.ini"
Include-Architecture = "config-include/Grid.ini"
; Include-Architecture = "config-include/GridHypergrid.ini"
; Include-Architecture = "config-include/SimianGrid.ini"
; Include-Architecture = "config-include/HyperSimianGrid.ini"
</pre></blockquote>
Нужно раскомментировать строчку <i>Include-Architecture = "config-include/Standalone.ini"</i> и закомментировать <i>Include-Architecture = "config-include/Grid.ini"</i>. Думаю, по названиям файлов уже догадались, что к чему, верно? ;) Все, сохраняем файл и приводим в порядок конфиги одиночного режима. Для этого идем в папку <b>config-include/</b>, находим файл <b>StandaloneCommon.ini.example</b> и копируем его с новым именем:
<ol>
<li><b>$ cp StandaloneCommon.ini.example StandaloneCommon.ini</b></li>
</ol>
Теперь можно запускать наш сим снова. Убедившись, что мы находимся в папке osim, а не остались в гнездилище конфигов, запускаем сим заново уже знакомой командой. В результате получаем приглашение в консоли сервера:
<blockquote><pre>Region (Kin-Dza-Dza) #</pre></blockquote>
Вы можете посмотреть весь список доступных команд самого симулятора простой и интуитивной командой help, которую нужно напечатать там же, в консоли, сейчас же я расскажу об одной, которая создаст вам пользователя, чтобы вы могли зайти клиентом на свежесозданный сим.
<ol>
<li><b>Region (Kin-Dza-Dza) # create user Manoul Carnell MYPASSWORD MY@EMAIL</b></li>
</ol>
На что сервер ответит примерно следующее:
<blockquote><pre>14:50:57 - [AUTHENTICATION DB]: Set password for principalID cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf
14:50:57 - [GRID SERVICE]: GetDefaultRegions returning 0 regions
14:50:57 - [USER ACCOUNT SERVICE]: Unable to set home for account Manoul Carnell.
14:50:59 - [USER ACCOUNT SERVICE]: Creating default appearance items for cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf
14:50:59 - [USER ACCOUNT SERVICE]: Creating default avatar entries for cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf
14:50:59 - [AVATAR SERVICE]: SetAvatar for cddc6ad9-77fa-447b-beb0-a8bbdf0f98cf, attachs=0
14:51:00 - [USER ACCOUNT SERVICE]: Account Manoul Carnell created successfully
</pre></blockquote>
Ну что, осталось взять клиент и шагать осваивать просторы. Какой брать клиент для этого - ну уж явно не стандартный Viewer2 ;) На самом деле можно и его, просто задать ему параметр <b>loginuri</b> при запуске с адресом вашего сима, я просто не помню, как там точно пишется. Или любой другой клиент, тот же «Феникс». Включите отображать список доступных гридов в настройках клиента и выбирайте там. Если у вас сим на той же машине, то <b>localhost</b>, если же нет, то нажимайте кнопку <b>«Grids»</b> и добавляйте свой грид, как это сделано у меня для сима, работающего на другой машине в локальной сети:<br><br>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKvAIlPFN1BTpFARkdDs9n0pIKa2eIB1QgsygvrL44POr3FKpbHxBjdkP8PXLez9fjIjObnuQJWMq95hTkvM0GCI0oL5VIW48lRQFd40ZPnyvJd7XniP_AhMei2bH1irWPfrL8RQ8aIWE/s1600/opensim.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKvAIlPFN1BTpFARkdDs9n0pIKa2eIB1QgsygvrL44POr3FKpbHxBjdkP8PXLez9fjIjObnuQJWMq95hTkvM0GCI0oL5VIW48lRQFd40ZPnyvJd7XniP_AhMei2bH1irWPfrL8RQ8aIWE/s500/opensim.jpg" /></a>
<br><br>
Собственно, вот и все на сегодня. Развлекайтесь, пробуйте, ругайтесь, спрашивайте, снова пробуйте. Кстати, обещанная <a href="http://www.opensim.ru/viewtopic.php?f=5&t=4" target=_blank>ссылка на установку сервера под Windows</a>, тоже ничего сложного, а все остальное точно так же.
<br><br>
Ах да, чуть не забыл. Выключается сервер командой <b>shutdown</b>, отданой ему в консоли. Не стоит просто прибивать процесс - это дурной тон, который рано или поздно закончится весьма печально для всей организации. А вот чтобы сим не болтался под руками постоянно, нужно запустить его в скрине. Сделать это достаточно просто:
<ol>
<li><b>$ screen -S osim -d -m mono OpenSim.exe</b></li>
</ol>
Сим запустится в фоновом режиме и можно смело закрывать терминал. Если же вам понадобиться что-то сделать в его консоли, просто вызовите скрин простой командой:
<ol>
<li><b>$ screen -x osim</b></li>
</ol>
Отключиться от скрина с симом, оставив его в работоспособном состоянии, можно комбинацией клавиш <b><i>Ctrl-A-D</i></b>.
<br><br>
Ну а дальше я расскажу, как подключить сим к гриду, привести это все хозяйство к более-менее удобоваримому виду, разбирая тонкие настройки сервера и как подключить сервис групп и войса, но это будет в другой раз и в другой истории.
<br><br>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-32104104431119110492011-07-05T03:43:00.000-07:002011-07-05T03:43:05.511-07:00[Видео]Буратино сам себе злобныйСегодня мы на пальцах рассмотрим столь сложное действо, как запись и примитивный постмастеринг видео.<br />
<br />
Записать видео очень просто - достаточно скачать и установить утилиту <a href="http://rutracker.org/forum/viewtopic.php?t=3503681" target=_blank>FRAPS</a>. После установки и запуска в программе настроить параметры видео:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfpj1vWsV-pb6_s22Kxa1pXhm6ItoeKETLqk_KMYpd99wVL8TXH6Eu6ZAwXUKX6bQ0WM18ozghua66j9AHthR768GfeOdeBDMIfQxatifgS77OKTijQBb3FjMZJBhww9_Ur51k9EOiahY/s1600/fraps_totur.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="253" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfpj1vWsV-pb6_s22Kxa1pXhm6ItoeKETLqk_KMYpd99wVL8TXH6Eu6ZAwXUKX6bQ0WM18ozghua66j9AHthR768GfeOdeBDMIfQxatifgS77OKTijQBb3FjMZJBhww9_Ur51k9EOiahY/s400/fraps_totur.jpg" /></a></div><br />
Запись будет вестись при нажатии кнопки «F9» или любой другой, которую назначите. Остановка записи - та же кнопка. Записанные файлы будут в указанной папке.<br />
<br />
Теперь, когда у нас есть записанный файл невероятного размера, нужно что-то с ним сделать - обрезать лишнее в картинке, вырезать лишний видеоряд, сжать наконец, чтобы залить на тот же <a href="http://www.youtube.com/" target=_blank>YouTube</a>.<br />
<br />
Для этих операций мы возьмем довольно популярный, бесплатный и простой линейный видеоредактор <a href="http://virtualdub.sourceforge.net/" target=_blank>VirtualDub</a>. Скачиваем, распаковываем и запускаем:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyvVoUyQKylpPY9xK4VPh92B38PpHa1di0Fa3cIb2u7KnDlqv8sB4ZSgMLLToqbZzlquMIwXtJTpskSLeZiu29Nh_AA7I2-2Y1lNfQrVTwTWI3Kmjwxk9SyECEb7i4hcNN5u8OWJHxEIA/s1600/vdub1.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="244" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyvVoUyQKylpPY9xK4VPh92B38PpHa1di0Fa3cIb2u7KnDlqv8sB4ZSgMLLToqbZzlquMIwXtJTpskSLeZiu29Nh_AA7I2-2Y1lNfQrVTwTWI3Kmjwxk9SyECEb7i4hcNN5u8OWJHxEIA/s400/vdub1.jpg" /></a></div><br />
Затем открываем в нем наш видеофайл (File -> Open):<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9dK4x9nCtHJqdSYJHeK2Lq8zg3xep9E902WF7uzXhOk-gm_zvY5vdWaLYDRc6pIKVhIp8KD3ZnxC2f_N8GB8AI5frJx-6m4_qUOCQFx2JHISurEmuFIY81xXgPWhCUomnWywaukLWPO8/s1600/vdub2.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="245" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9dK4x9nCtHJqdSYJHeK2Lq8zg3xep9E902WF7uzXhOk-gm_zvY5vdWaLYDRc6pIKVhIp8KD3ZnxC2f_N8GB8AI5frJx-6m4_qUOCQFx2JHISurEmuFIY81xXgPWhCUomnWywaukLWPO8/s400/vdub2.jpg" /></a></div><br />
Работу над файлом начнем с подготовки картинки, а именно обрезке всего ненужного (окна клиента, сообщений и т.п. «мусора»). Для этого идем в меню «Video» и выбираем пункт «Filters»:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis26x9oP4sb7EBPwgJUuVCqynmWQuZUdoxMUBxN4QbLFsoKAWXFOeRPyD7cfr5ZZspp03Ny4HwMQcLptlau8Euyb3uZn_XAUaJd8rufKZ1uRiNr1eG3jH6QyjsDros3pL8HgKXKenGSpo/s1600/vdub3.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="246" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis26x9oP4sb7EBPwgJUuVCqynmWQuZUdoxMUBxN4QbLFsoKAWXFOeRPyD7cfr5ZZspp03Ny4HwMQcLptlau8Euyb3uZn_XAUaJd8rufKZ1uRiNr1eG3jH6QyjsDros3pL8HgKXKenGSpo/s400/vdub3.jpg" /></a></div><br />
В открывшемся окошке нажимаем кнопку «Add», откроется список доступных фильтров, где нужно найти и выбрать «Null transform». Это «пустой» фильтр, который не делает с изображением ровным счетом ничего, но нужен нам, чтобы обрезать картинку:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHxz_A6tqm17aXpqx2jCgKTPe6bWKXn99s6Lix8Nb21x8D2SSqXJiVmqVW9bBNS6wBrN7rYS7T_TmOHNCVp65m6yXZFzABaNEX0AQ-5dUGZm-Qz9cy8NelqKAo1ViacOOL6Np9p3bgOVI/s1600/vdub4.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="245" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHxz_A6tqm17aXpqx2jCgKTPe6bWKXn99s6Lix8Nb21x8D2SSqXJiVmqVW9bBNS6wBrN7rYS7T_TmOHNCVp65m6yXZFzABaNEX0AQ-5dUGZm-Qz9cy8NelqKAo1ViacOOL6Np9p3bgOVI/s400/vdub4.jpg" /></a></div><br />
Выбрав фильтр, нажимаем на кнопку «Cropping» и в открывшемся окне настраиваем поля кадрирования, которые будут вырезаны при процессинге ролика:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUG0R-LdFWThuHqV8j_RSJsd_p_x7NaEMVmQ6KyBGwDxJfWky8qBBn1hIrWrRjrQCW0pMPX2xwd5bV4-ErzFIXAgTwxCypNTy7SU7L5ASnZE7Icfjl5YEmKkL-BxQb4jSekAIC1EdORrM/s1600/vdub5.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="271" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUG0R-LdFWThuHqV8j_RSJsd_p_x7NaEMVmQ6KyBGwDxJfWky8qBBn1hIrWrRjrQCW0pMPX2xwd5bV4-ErzFIXAgTwxCypNTy7SU7L5ASnZE7Icfjl5YEmKkL-BxQb4jSekAIC1EdORrM/s400/vdub5.jpg" /></a></div><br />
Настроив кадрирование, опять нажимаем кнопку «Add» и выбираем фильтр «Resize». Этот фильтр позволит нам уменьшить изображение, заодно и поместить в «стандартный» кадр. Я выбираю обычно размер 640х480, чего вполне хватает для видеохостингов. Тут вы сами определите для себя, какого размера вам нужен результирующий кадр:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvLOqsoS2emEPf84mgXQEWybkBh0STZ2cur3mmfM-bBRjkROcYdc0dAPzmmNTVjITJcs-pdhOWY3pQZ5AjDdxt-n7Psg-RTJAo2i_zHnfCXwi2jlWFU1mQn05vCC9w47uPjEgKk6cstSI/s1600/vdub6.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="245" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvLOqsoS2emEPf84mgXQEWybkBh0STZ2cur3mmfM-bBRjkROcYdc0dAPzmmNTVjITJcs-pdhOWY3pQZ5AjDdxt-n7Psg-RTJAo2i_zHnfCXwi2jlWFU1mQn05vCC9w47uPjEgKk6cstSI/s400/vdub6.jpg" /></a></div><br />
Настроив фильтры, настроим параметры кодирования (сжатия) видео. Идем в тот же пункт меню «Video», убеждаемся, что пункт «Full processing mode» активен (если нет - включите) и выбираем «Compression»:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTSgWpp1-4aIRMtdBg8iDt_yjvtvZdyZvdFhnXAe7B7NM2zbiUMiNOPUhK1R1CJznHpp_UEk-p_pVvyG2CrnxOTC2zAjZH168lsg2LANYIyUQ1sApqZRAhSYVrv6xSPyrv-JvYM6wv07o/s1600/vdub7.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="247" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTSgWpp1-4aIRMtdBg8iDt_yjvtvZdyZvdFhnXAe7B7NM2zbiUMiNOPUhK1R1CJznHpp_UEk-p_pVvyG2CrnxOTC2zAjZH168lsg2LANYIyUQ1sApqZRAhSYVrv6xSPyrv-JvYM6wv07o/s400/vdub7.jpg" /></a></div><br />
Откроется окно выбора кодеков, для простоты можно брать стандартный кодек от «Microsoft», он хорошо известен обработчикам видеохостингов. Если нужно, измените параметры кодирования, но можно все оставить, как есть, это на сегодня не слишком принципиально. Скажу только, что чем больше параметр «Data Rate», тем видео кодируется более тщательно, но и размер результирующего файла также возрастает:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqyQboivaZCx9_yPr0oUJWSGMTKQ5sKvq8DXVf-LyzHT0tDe8-6AwRq6G767ChCdFlyvWIyDdwoHp3Io1i87GKtlLw3E2uLsr3xk0VPlsWuh8uQTbA_x3JzG5j1IFh-ruSf1__JapUQew/s1600/vdub8.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="245" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqyQboivaZCx9_yPr0oUJWSGMTKQ5sKvq8DXVf-LyzHT0tDe8-6AwRq6G767ChCdFlyvWIyDdwoHp3Io1i87GKtlLw3E2uLsr3xk0VPlsWuh8uQTbA_x3JzG5j1IFh-ruSf1__JapUQew/s400/vdub8.jpg" /></a></div><br />
Далее в меню «Audio» устанавливаем «Full processing mode», нажимаем «Compression»:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8mOJHOyHvInKdnI6_vLJWw1HJhi_XyhJmQU_PlVU-g89QnnG35Ml3GsKyCj8T28zJ0CL3PjhxgPyiEQqlhen0w2eAUk-ti5OdYYg1qIJ52G5Ho7HdBoJQEW-edewfHLydqfx3ewXItxI/s1600/vdub9.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="244" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8mOJHOyHvInKdnI6_vLJWw1HJhi_XyhJmQU_PlVU-g89QnnG35Ml3GsKyCj8T28zJ0CL3PjhxgPyiEQqlhen0w2eAUk-ti5OdYYg1qIJ52G5Ho7HdBoJQEW-edewfHLydqfx3ewXItxI/s400/vdub9.jpg" /></a></div><br />
Выбираем звуковой кодек - здесь я тоже беру стандартный «Lame MP3» и настраиваем его параметры. Качества 128 кбит/c вполне хватит для нашего видео:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpdohnIItJiLH32pDrdKlpF9773DcILemG1bftaieElyabJWSAuwukpfFXSg4L7B3BZDXELIX2qXB8stdG960gFmpgZhEJ0oj1wMEPhFaCTRkb5JZlkdBZd-YhtYjfcXQ596-2LuVRoq4/s1600/vdub10.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="245" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpdohnIItJiLH32pDrdKlpF9773DcILemG1bftaieElyabJWSAuwukpfFXSg4L7B3BZDXELIX2qXB8stdG960gFmpgZhEJ0oj1wMEPhFaCTRkb5JZlkdBZd-YhtYjfcXQ596-2LuVRoq4/s400/vdub10.jpg" /></a></div><br />
Теперь осталось подредактировать сам видеоряд, вырезав ненужное. Для этого существуют специальные маркеры (стрелочки). Ставите курсор на то место, откуда резать, жмете стрелку, смотрящую влево, затем на то место, до куда резать, жмете стрелку, смотрящую вправо. Кусок таймлайна выделится и обыкновенной кнопкой «Del» его можно удалить:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmly1YcRAxCYHI01FT_wsdKdqHlFQmFRBHoDEo6Mnf9Zt6AcS96_pAvxiW9fgWVs2440bGXbixbVDFpbGe8F9pDXRIz2CoS6jtP2fAdgnCKRCwBQAj0eeomOqmvLDCGp66IYLzaTeWZC4/s1600/vdub11.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="244" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmly1YcRAxCYHI01FT_wsdKdqHlFQmFRBHoDEo6Mnf9Zt6AcS96_pAvxiW9fgWVs2440bGXbixbVDFpbGe8F9pDXRIz2CoS6jtP2fAdgnCKRCwBQAj0eeomOqmvLDCGp66IYLzaTeWZC4/s400/vdub11.jpg" /></a></div><br />
Все, можно запускать процессинг и ждать результатов. Идем в меню «File» и выбираем «Save». Появится окно с информацией о ходе процессинга и когда оно автоматически закроется, ваш файл готов. В окне можно посмотреть ожидаемый размер видеофайла, который получится в результате и много другой полезной информации, о назначении которой вы можете поинтересоваться самостоятельно:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXpJIuTRmqN_H8187jtHCEeRtQq7NoshSWOd89NvjdewS741hqTQj8JVSTs5quWR6AG94aOuQ6j7Kkai_bBnLkIb_OeZ_iKUzUCWfZhWAYDtGOexJvbE6EqwW3J4ATe5JUinvKei7Ju9k/s1600/vdub12.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="244" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXpJIuTRmqN_H8187jtHCEeRtQq7NoshSWOd89NvjdewS741hqTQj8JVSTs5quWR6AG94aOuQ6j7Kkai_bBnLkIb_OeZ_iKUzUCWfZhWAYDtGOexJvbE6EqwW3J4ATe5JUinvKei7Ju9k/s400/vdub12.jpg" /></a></div><br />
К слову сказать, этот видеоредактор обладает куда большими возможностями, чем понадобилось нам в рамках этой статьи, но это уже совершенно другая история.Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-87956496885873210612011-03-27T22:48:00.000-07:002011-03-27T22:48:56.768-07:00[SLifeHack] Лечим душную жабуЧасто бывает так: приходишь куда-нибудь, включаешь местное радио (медиа), а там играет нечто приятное, слух ублажающее и душу бередящее. И хочется, ох как хочется узнать, что же это такое играет, какое радио, откуда берется, но... Злой и противный аватар, хозяин земли, подло скрыл ссылку на поток, чтобы никому не досталось, чтобы приходили к нему и только к нему слушать и наслаждаться.<br />
<br />
Наверняка же каждый бывал в подобной ситуации, не так ли?<br />
<br />
К счастью, по недосмотру или умыслу какому программистов «Linden Lab» есть возможность восстановить попранную справедливость и узнать-таки вожделенный адрес столь волнующего радио. Я даже предложу вам пару способов на выбор - простой и, если он по какой-либо причине не сработает, чуть более сложный, самую малость.<br />
<br />
Итак, открываем свойства земли, свойства аудио и - видим знакомую картину.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiGgBOsPhbTv3hUPmz-l-9oLBt38TnjXSH_q9ZpnDkcUJef5jHqDh_dOrnTPFRptJ0vNmQ4zKDOslKE0iDT_ERRvEq2TO_gkpUKWa7HBrGTp5txfHSAPpUcu3H3bitwxd5mxus_qt3CzQ/s1600/rstream-1.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiGgBOsPhbTv3hUPmz-l-9oLBt38TnjXSH_q9ZpnDkcUJef5jHqDh_dOrnTPFRptJ0vNmQ4zKDOslKE0iDT_ERRvEq2TO_gkpUKWa7HBrGTp5txfHSAPpUcu3H3bitwxd5mxus_qt3CzQ/s500/rstream-1.jpg" /></a></div><br />
Теперь берем и нажимаем секретную комбинацию клавиш: <b>Ctrl-Alt-V</b>. Прошу обратить внимание, что эта комбинация сработает только в том случае, если у вас включено advanced-menu¹ (это видно по верхнему меню клиента, там должен быть пункт «Advanced»). Рядом должен появиться пункт «Admin» - значит, все получилось и можно открыть снова свойства земли, вкладку аудио и скопировать открывшийся URL аудиопотока себе.<br />
<br />
Вообще включение отображения административных функций клиента даёт ряд дополнительных возможностей, но об этом как-нибудь в другой раз. Если вдруг решите поисследовать их самостоятельно, сразу хочу предупредить, что очень большое количество вновь открывшихся функций работать не будут - для этого нужно иметь фамилию Linden или, на худой конец, быть симовладельцем.<br />
<br />
Если по какой-то причине фокус с админскими опциями у вас не получился (может быть, клиент так себя повел, вмешалась третья липовая сила или инопланетяне из космоса хорошо защитили свой аудиопоток от любопытных читателей моего блога - всякое может случиться), то есть немного более сложный способ получить желаемое. Для этого служит другая комбинация клавиш, не менее волшебная.<br />
<br />
Жмём <b>Ctrl-Shift-4</b> и на экране появляется окошко, чуть более, чем полностью набитое чудовищной абракадаброй, которая с приличной скоростью проносится перед глазами.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSJF7_Szu7xwC_r-_PcKDR6FoFR2Sjl75WBe0wF4T3uTXIdx0U5K7z9cHfg2kxNbBa6lzr4UHsRu5AdT5eoirHtMOUQoSGNME10BwrYWBYwKxA4whZgLIDhRmJcGUV9CSBd6GsE44WfGw/s1600/rstream-2.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSJF7_Szu7xwC_r-_PcKDR6FoFR2Sjl75WBe0wF4T3uTXIdx0U5K7z9cHfg2kxNbBa6lzr4UHsRu5AdT5eoirHtMOUQoSGNME10BwrYWBYwKxA4whZgLIDhRmJcGUV9CSBd6GsE44WfGw/s500/rstream-2.jpg" /></a></div><br />
Теперь не зевайте - тыкайте мышом в кнопку запуска проигрывания музыки и сразу ищите строчки, похожие на те, что я заботливо выделил для вас приятной глазу зелёной рамочкой. Это и есть адрес искомого радиопотока. Скопировать, к сожалению, адрес не удастся, поэтому придется быстренько его куда-нибудь переписать вручную.<br />
<br />
Все, теперь можно той же комбинацией клавиш отключить это пугающее окно, вернув экран в привычный глазу вид, глубоко вздохнуть и использовать полученный адрес по своему усмотрению. Я, к примеру, скармливаю их известному плееру. Кстати, звучат там радиопотоки не в пример лучше.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmz53T09UhzSjxsUvWwmOL89uJHhsiBwFQwDbbakHLLJo2Fpap-FKcv2bLJU7cLfcJqST04bkUlT83WBDU-zVJjEmBhtZnKwH8lLjcSXTi1oBMBEWaQM7ZyUbqDFjpzcmHW-BBxq9-wvg/s1600/rstream-3.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmz53T09UhzSjxsUvWwmOL89uJHhsiBwFQwDbbakHLLJo2Fpap-FKcv2bLJU7cLfcJqST04bkUlT83WBDU-zVJjEmBhtZnKwH8lLjcSXTi1oBMBEWaQM7ZyUbqDFjpzcmHW-BBxq9-wvg/s500/rstream-3.jpg" /></a></div><br />
Listen and enjoy!<br />
<br />
—<br />
¹ Advanced-menu в большинстве клиентов включается комбинацией клавиш <b>Ctrl-Shift-Alt-D</b>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-80600242210299919342011-03-26T06:49:00.000-07:002015-06-11T22:52:38.417-07:00Разбираем старый хлам (скрипт-кладовщик)Вы давно вдумчиво заглядывали в свой инвентарь?<br />
<br />
Я периодически заглядываю и ужас меня берет ледяными пальцами за самое естество. Ведь чем больше объектов лежит у нас в инвентаре, тем большие лаги это вызывает. Почему так происходит, позвольте не объяснять в рамках данной статьи - это отдельная «наука» о хранении предметов в SL в принципе... Сегодня мы просто попытаемся как-то систематизировать и даже заархивировать то барахло, которое нам жалко выбросить, но и место оно занимает, собирая виртуальную пыль.<br />
<br />
Ни для кого не секрет, что можно создать банальный кубик и в его инвентарь напихать довольно много всяческих причиндалов: скины, текстуры, скрипты и т.п. В общем все, что может лежать в инвентаре, может быть сохранено в кубике. Таким образом, имея некоторое количество предметов в инвентаре, можно заменить их на один, поместив их все в его инвентарь.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4DjpSrudA7tQb5HyNWck6mPzraf7p6S_elzWdMdLQ6Dl5UXuBUUHytKUAEHiyPXR4zmQVHGa0-snO2jj88J4aiPrMMFnfx7MbXXNcntEbySWCtlrDvmG8KMKHx8rmP6yxMejpOGUfTkA/s1600/stockman-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4DjpSrudA7tQb5HyNWck6mPzraf7p6S_elzWdMdLQ6Dl5UXuBUUHytKUAEHiyPXR4zmQVHGa0-snO2jj88J4aiPrMMFnfx7MbXXNcntEbySWCtlrDvmG8KMKHx8rmP6yxMejpOGUfTkA/s500/stockman-1.jpg" width="500" /></a></div>
<br />
Допустим, мы разложили это все по кубикам и у нас полный порядок в этом вопросе. Но как потом разобраться, по прошествии времени, что где лежит, в каком количестве? Да, конечно, мы будем называть наши кубики-коробки должным образом, но это зачастую малоинформативно по той простой причине, что приходится сильно обобщать.<br />
<br />
Например, ящик с оружием, который называется... «Weapons». Внезапно, не правда ли? ;) Или вот они, коробочки наши, стоят, а где и что - нужно нажать Ctrl-3, ткнуть каждую мышом, чтобы хотя бы прочитать, как они называются.<br />
<br />
Давайте упростим себе жизнь, используя скрипты - кровь этого нарисованного мира.<br />
<br />
Итак, что же должен уметь наш скрипт? Как минимум, он должен уметь:<br />
<ol>
<li>Динамически отображать название коробки in-world</li>
<li>Динамически же отображать количество содержимого</li>
<li>Выдавать список своего содержимого владельцу</li>
<li>Самостоятельно распаковываться в инвентарь в случае необходимости</li>
</ol>
Конечно же, скрипт может уметь ещё много чего, но сейчас не будем загружать себе голову, реализуем только эти основные функции, которые мы для себя определили.<br />
<br />
Для этого нам в основном понадобятся следующие функции встроенного скриптового языка LSL:<br />
<ol>
<li><a href="http://wiki.secondlife.com/wiki/LlSetText" target="_blank">llSetText()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlGetObjectName" target="_blank">llGetObjectName()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlGetInventoryNumber" target="_blank">llGetInventoryNumber()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlDialog" target="_blank">llDialog()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlListen" target="_blank">llListen()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlListenRemove" target="_blank">llListenRemove()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlSetTimerEvent" target="_blank">llSetTimerEvent()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlDetectedKey" target="_blank">llDetectedKey()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlGetOwner" target="_blank">llGetOwner()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlOwnerSay" target="_blank">llOwnerSay()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlGetScriptName" target="_blank">llGetScriptName()</a></li>
<li><a href="http://wiki.secondlife.com/wiki/LlGiveInventoryList" target="_blank">llGiveInventoryList()</a></li>
</ol>
<br />
Конечно, я буду использовать в примере несколько большее количество функций, но это скорее для эстетики, можно обойтись и без них, упростив отдельные конструкции.<br />
<br />
Итак, сделаем для начала, чтобы наша коробочка могла при помощи всплывающего текста обозначать своё название. Для этого определяем пользовательскую функцию <i>setName()</i> и будем потом её вызывать, когда нам понадобится изменить надпись.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmNcu5OYGZiKlbclpsIwq4OWe4N8R_LI4q6k-cwh_vOw-2stdaL4A1Lk9lhHeMVUUQLIEwba1-CYh3CNfq7PKH7fo-pT-6gV1LSS0pGK7fZYnOnQdZv2pQn7z3rFnBPkBNJVEyhqmBbv8/s1600/stockman-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmNcu5OYGZiKlbclpsIwq4OWe4N8R_LI4q6k-cwh_vOw-2stdaL4A1Lk9lhHeMVUUQLIEwba1-CYh3CNfq7PKH7fo-pT-6gV1LSS0pGK7fZYnOnQdZv2pQn7z3rFnBPkBNJVEyhqmBbv8/s500/stockman-2.jpg" width="500" /></a></div>
<br />
Теперь нужно научить нашу коробку подсчитывать, какое количество объектов есть у нее в инвентаре, а также следить за тем, не изменилось ли их количество, ну и сообщать нам при помощи всё того же всплывающего текста. Для этого мы несколько модернизируем нашу функцию.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3HXqkYBeN8_dqJbDav3IhKR_amaNs3Hg4adMpmTAPB7N7XzH2Bg1qS-c5h0iQD_mTSPdv70YIfB2HU64NwV2LYnDgiAZ3hssRDj1YTeh89kf1xBBoRJsBVJYv1iI-rurpYwezKJ2jVmg/s1600/stockman-3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3HXqkYBeN8_dqJbDav3IhKR_amaNs3Hg4adMpmTAPB7N7XzH2Bg1qS-c5h0iQD_mTSPdv70YIfB2HU64NwV2LYnDgiAZ3hssRDj1YTeh89kf1xBBoRJsBVJYv1iI-rurpYwezKJ2jVmg/s500/stockman-3.jpg" width="500" /></a></div>
<br />
Обратите внимание - мы вычитаем из содержимого переменной <i>objNum</i> единичку. Это сделано для того, чтобы корректно отображать количество инвентаря, ведь наш управляющий скрипт по сути также является объектом инвентаря, но как бы «не считается».<br />
<br />
Если мы что-то добавляем или удаляем из инвентаря объекта, то происходит событие <i><a href="http://wiki.secondlife.com/wiki/Changed" target="_blank">changed()</a></i>, которым мы воспользуемся для вызова нашей пользовательской функции и пересчета количества содержимого инвентаря.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihLYpczHY-Hf0ejqifCMu65PdGSDErrkF0ivsjn3unY5aJvuMNG_YqEs4iADzF6Lai-MUJK1knHj79S5zqk0btgoMErvqj_VSSQDKNzJUEYi3v4HVcFe9xcE6pShMm-W6HHBMsHRTsBS4/s1600/stockman-4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihLYpczHY-Hf0ejqifCMu65PdGSDErrkF0ivsjn3unY5aJvuMNG_YqEs4iADzF6Lai-MUJK1knHj79S5zqk0btgoMErvqj_VSSQDKNzJUEYi3v4HVcFe9xcE6pShMm-W6HHBMsHRTsBS4/s500/stockman-4.jpg" width="500" /></a></div>
<br />
Для проверки добавим в инвентарь нашей коробки какой-нибудь объект, произойдет событие, которое вызовет определённую ранее функцию и она отобразит корректные данные. Хочу обратить внимание на то, что возвращаемое событием число является битовым полем, из которого при помощи оператора ветвления мы вычисляем бит нужного нам события - изменения инвентаря.<br />
<br />
К сожалению, нет события, которое бы отслеживало изменение такого параметра, как смена имени объекта. Но мы обойдем это ограничение, что называется, «малой кровью» - не важно, когда изменилось имя, важно, чтобы при следующем доставании этой коробки имя отображалось корректно.<br />
<br />
Для этого воспользуемся событием <i><a href="http://wiki.secondlife.com/wiki/On_rez" target="_blank">on_rez()</a></i>, возникающим всегда, когда вы что-то достаёте из своего «кармана» и кладете на землю. Нужно лишь просто при возникновении этого события еще раз вызвать нашу функцию <i>setName()</i> ;)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGe0vua4JmOxc9QUEBwTpZ3hRokYx0LKmKdVFHcHY0z877aet922jlwWYDb77FyuODK1sxsK5lnQnUql6KU0sUIbOWaLhTGYylR6BTC_pf8g-gcAbIfp07J2y2iqLRNmXtFZkCH0DPPCs/s1600/stockman-5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGe0vua4JmOxc9QUEBwTpZ3hRokYx0LKmKdVFHcHY0z877aet922jlwWYDb77FyuODK1sxsK5lnQnUql6KU0sUIbOWaLhTGYylR6BTC_pf8g-gcAbIfp07J2y2iqLRNmXtFZkCH0DPPCs/s500/stockman-5.jpg" width="500" /></a></div>
<br />
Иными словами, вы меняете название коробки в её свойствах, кладёте ее «в карман», а когда в следующий раз достанете, то подписана она будет уже тем именем, которое вы ей дали.<br />
<br />
Ну вот, нам осталась самая малось - научить коробку сообщать выдавать список своего содержимого и распаковываться автоматически красивой папочкой. Сделать это можно разными способами, но мы сделаем это красиво при помощи милого голубого меню, хорошо знакомого всем аватарам.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjol4buzN6n3cnAmU662vNb7HThbhcMWvjWhEws5dYswhLUvnGl4wzKCt78YhqPV6HpTv8-kB_dji_KJW4AT3dkNWIuzPCpBKPR17PF9JARbxdNrYvyn5mi0b1TVDDkTcvRcNwHD1ibUtw/s1600/stockman-6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjol4buzN6n3cnAmU662vNb7HThbhcMWvjWhEws5dYswhLUvnGl4wzKCt78YhqPV6HpTv8-kB_dji_KJW4AT3dkNWIuzPCpBKPR17PF9JARbxdNrYvyn5mi0b1TVDDkTcvRcNwHD1ibUtw/s500/stockman-6.jpg" width="500" /></a></div>
<br />
Мы использовали событие <i><a href="http://wiki.secondlife.com/wiki/Touch" target="_blank">touch()</a></i>, возникающее каждый раз, когда кто-то ткнет мышом в объект. Из данных, возвращаемых этим событием мы получаем ключ кликнувшего аватара и сравниваем с ключем владельца коробки. Если все совпадает, выдаем владельцу менюшку.<br />
<br />
И здесь хочу обратить внимание на конструкцию с использованием события <i><a href="http://wiki.secondlife.com/wiki/Timer" target="_blank">timer()</a></i>. При вызове меню мы инициализируем обратный отсчет времени, равный 30 секундам и начинаем слушать канал чата. Когда 30 секунд истекают, мы сообщаем об этом владельцу коробки и перестаем слушать чат. Делается это для того, чтобы снизить нагрузку на сим и, как следствие, уменьшить лаги, которых и без того хватает в избытке от гламурных кис с их АО'шками и любителей всевозможных псевдозащитных гаджетов.<br />
<br />
Ещё один немаловажный момент - переменные, содержащие номер канала и его идентификатор должны быть определены, как глобальные, поскольку используются в разных местах скрипта и не должны потерять своих значений.<br />
<br />
И вот она, финишная прямая - осталось дописать обработчики кнопок меню. Начнем с выдачи списка предметов. Для этого определим еще одну функцию, которую назовем... Да чего мудрствовать лукаво, мы же не Ed7v Resident с его cunt'овской философией - пусть функция называется <i>listInventory()</i>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNtHoG1DxnfkAE9KJRKrGtYLzEiKLOnCBHrN-JPMvxB-8Mt4Njvnev_WCl1wRfpCiGRp-eT8uheKIiLHEaLlSocK3vgwVctSkeJQRq1DeWDW1bkkTmiIzWUlqVHNpAFjMS_KCyFcTY7Io/s1600/stocman-7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNtHoG1DxnfkAE9KJRKrGtYLzEiKLOnCBHrN-JPMvxB-8Mt4Njvnev_WCl1wRfpCiGRp-eT8uheKIiLHEaLlSocK3vgwVctSkeJQRq1DeWDW1bkkTmiIzWUlqVHNpAFjMS_KCyFcTY7Io/s500/stocman-7.jpg" width="500" /></a></div>
<br />
Мы также не включаем в список содержимого коробки наш управляющий скрипт, кроме того, эта функция уже не тихо сама с собою что-то делает, а имеет тип и возвращает значение в соответствии со своим типом, в данном случае массив со списком.<br />
<br />
Возвращаемся к обработчику меню - здесь нам поможет событие <i><a href="http://wiki.secondlife.com/wiki/Listen" target="_blank">listen()</a></i>, происходящее каждый раз, когда кто-то или что-то говорит в чат, причем, без разницы, на каком канале. При условии, что мы вообще слушаем чат (а мы его слушаем 30 секунд после вызова меню, помним об этом).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWnV-tpIxcvyK13Eb4astvQgYHJ4L47B7DI5iQwW6jDkCVQUqLBmI5LJr5jostcjwj2pkrdnJXDyYhAxanlo-QRjrjzVAdswZxq2lBEaJJIxkc6kK8McfaK6G0AVFYkTn68d3VUr1Oprg/s1600/stockman-8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWnV-tpIxcvyK13Eb4astvQgYHJ4L47B7DI5iQwW6jDkCVQUqLBmI5LJr5jostcjwj2pkrdnJXDyYhAxanlo-QRjrjzVAdswZxq2lBEaJJIxkc6kK8McfaK6G0AVFYkTn68d3VUr1Oprg/s400/stockman-8.jpg" width="400" /></a></div>
<br />
Послушали, поняли, что говорят нам и говорит тот, кого нужно слушать, распознали, какую кнопку нажали и - ответили нужным действием, пока что прочитали в приват владельцу коробки её содержимое. Вообще давать служебную информацию в личку владедельцу - правило хорошего тона. Когда объекты загаживают чат флудом есть путь неверный и ведет на тёмную сторону Силы, помните об этом.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVignFABKYXFxpyHfbYbRLdgE6bXIdrghZMQYkDP-kzyoIYUCignbCTQvvU_X0jYaUnsEi1d1blXBoT3Zmhcc2Ndan0wcbPYa21m_R29VUL3OkLLlDOVeZIFTBsbITzVnF6OiMXaLh6hI/s1600/stockman-9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVignFABKYXFxpyHfbYbRLdgE6bXIdrghZMQYkDP-kzyoIYUCignbCTQvvU_X0jYaUnsEi1d1blXBoT3Zmhcc2Ndan0wcbPYa21m_R29VUL3OkLLlDOVeZIFTBsbITzVnF6OiMXaLh6hI/s500/stockman-9.jpg" width="500" /></a></div>
<br />
Всё, играем коду, выходим на прямой - обрабатываем распаковку в красивую папочку буквально одной волшебной функцией.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9NSuS-8YT91nJ2Adzkj3MlEtlvw8kHtN728NAzTAydK1iePisK9Li98E_H0jjotPp4TF3kyJ4LtbipK3rIOl41aulOZABYvSbfsBLwDXAUsJp5hqrXscI-WfNG7D0g2ZGuxBaXs8xyoU/s1600/stockman-10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9NSuS-8YT91nJ2Adzkj3MlEtlvw8kHtN728NAzTAydK1iePisK9Li98E_H0jjotPp4TF3kyJ4LtbipK3rIOl41aulOZABYvSbfsBLwDXAUsJp5hqrXscI-WfNG7D0g2ZGuxBaXs8xyoU/s500/stockman-10.jpg" width="500" /></a></div>
<br />
И вуаля! Содержимое коробки у нас снова в инвентаре целиком и полностью, за исключением управляющего скрипта.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1mB3MhaZFy_tFmJDwOfqEEgZZWNbQCDWPGCYAt7Ajk2_393P4j9wGbsxLvpghzg8oeuRdxvuf05K6zZxMR5cZlIh0hga2HjLauoojB6FJA2KjPUszxb5u67sCw-NjYaxwv7ghAngG4A/s1600/stockman-11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1mB3MhaZFy_tFmJDwOfqEEgZZWNbQCDWPGCYAt7Ajk2_393P4j9wGbsxLvpghzg8oeuRdxvuf05K6zZxMR5cZlIh0hga2HjLauoojB6FJA2KjPUszxb5u67sCw-NjYaxwv7ghAngG4A/s500/stockman-11.jpg" width="500" /></a></div>
<br />
Вот, собственно, всё, что я хотел сегодня показать и рассказать. Описанный скрипт же можно изготовить самостоятельно, руководствуясь этой статьёй, либо приобрести всего за L$150 <a href="https://marketplace.secondlife.com/p/Popular-inventory-script-Stockman-v02/7313588" target="_blank">на маркетплейсе</a>, ибо вещь полезная и в хозяйстве сгодится если не любому, то каждому.Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-15823403698131397032008-11-30T15:36:00.001-08:002008-12-01T02:05:11.438-08:00Артикуляция при общении голосомМногие давно мечтают о том, чтобы во время общения голосом аватар шевелил губами, верно?<br /><br />Нет ничего проще, потому что LL заложил такой функционал в нынешние версии клиента выше 1.20. Для того, чтобы включить эту функцию, нужно проделать несколько несложных действий:<div><br /><ul><li>Войти в расширенное меню <span class="Apple-style-span" style="font-style: italic;">"Advanced"</span>. Если у вас его нет, включите комбинацией клавиш <span class="Apple-style-span" style="font-style: italic;">Ctrl-Shift-Alt-D</span>.</li><li>В этом меню выбрать пункт <span class="Apple-style-span" style="font-style: italic;">"Charaсter"</span>.</li><li>А уже в нем ставим галку <span class="Apple-style-span" style="font-style: italic;">"Enable Lip Sync (beta)"</span>.</li></ul><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv0sPr2QzXA-a9oB3GcDAD5ks9C4OlB0XibAwvMvinJ3qMFYdYDFPGI7goh_jU74rkG4QUqV7MqKpcQjUa5cx1JM1eY9pTHfwlNPLfNpK-_o5iUpHxYAuikEHdDiCRan6ZmrZ6h2XVxck/s1600-h/lipsync.jpg"><img style="cursor:pointer; cursor:hand;width: 255px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv0sPr2QzXA-a9oB3GcDAD5ks9C4OlB0XibAwvMvinJ3qMFYdYDFPGI7goh_jU74rkG4QUqV7MqKpcQjUa5cx1JM1eY9pTHfwlNPLfNpK-_o5iUpHxYAuikEHdDiCRan6ZmrZ6h2XVxck/s320/lipsync.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274604636193469410" /></a><br /><br />Однако, следует помнить о том, что если у других эта функция не включена, они не будут видеть, что у вас что-то шевелится. И такое положение вещей будет сохраняться до тех пор, пока эту фичу не выведут в обязательный функционал. Также предмет, приаттаченный к челюсти, не будет двигаться вовсе, поэтому фуррикам наврядли пригодится эта функция.<br /></div></div><br />Демо от Торли Линдена:<br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/fgYnxc2np9M&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/fgYnxc2np9M&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-29203359400365510322008-11-21T05:45:00.000-08:002008-11-21T05:51:27.171-08:00Время московское и время SL.Время в SL соответствует тихоокеанскому времени, т.е. времени Linden Lab. Для того, чтобы перевести его в привычное нам московское время, необходимо проделать несложные арифметические вычисления.<br /><br />Разница между московским временем и временем SL составляет 11 часов. <span style="font-weight:bold;">АМ</span> - это первая половина дня, <span style="font-weight:bold;">РМ</span> - после полудня, вторая половина дня<br /><br />Если Вы видите объявление, где указано время <span style="font-style:italic;">5 AM SLT</span> (5 утра) - то нужно прибавить 11 часов и получим 16:00 московского времени, потому что 5 + 11 = 16.<br /><br />Если <span style="font-style:italic;">5 РМ SLT</span> (5 вечера), то сначала переводим 5 РМ в понятные нам 17:00, прибавляем 11 и если полученное число больше 24, то вычитаем из него 24.<br /><br />Таким образом получаем 4-00 по московскому времени, так как 5 -> 17 + 11 = 28, а, поскольку, 28 > 24, то 28 - 24 = 4.<br /><br />© <a href="http://secondrussia.ru/forum/topic-3491.html#comment23615" target=_blank>Ivus Forager</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com4tag:blogger.com,1999:blog-875702549263866709.post-62020833467115978822008-11-19T03:54:00.000-08:002008-12-01T07:10:40.487-08:00Как отключить анимацию печатания и звукМногие меня спрашивают, в том числе и те, кто презрительно кривится при слове "нуб", как же отключить дефолтную анимацию печатания и убрать звук нажимаемых клавиш. Не знаю, насколько они и правда идиотские, мне лично нравится. Но у каждого свои шурупы, так что рассказываю и показываю, как это делается, все банально просто.<br /><ul><br /><li>Заходим в меню <span style="font-style:italic;">"Advanced"</span> (<span style="font-style:italic;">Ctrl-Alt-Shift-D</span>, если нет такого);</li><br /><li>Находим и выбираем <span style="font-style:italic;">"Debug Settings"</span>;</li><br /><li>В открывшемся окошке пишем <span style="font-style:italic;">PlayTypingAnim</span> (там автозаполнение, неправильно ввести не даст);</li><br /><li>Установить значение в <span style="font-style:italic;">FALSE</span>;</li><br /></ul><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLM_DQHbnCS9L9JLJsX6TBORDIgnvfQoKQS3eDUElc9Qdkmz-LL6KcpnjsG2dh8Zci4xS3RzoQKMeghQWnVlWNp_crCXpEOWKtvFjbMb_acWEgcg4eyVJbHHBvJdwiApb8E9feCJSo1kc/s1600-h/TyOff.jpg"><img style="cursor:pointer; cursor:hand;width: 355px; height: 221px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLM_DQHbnCS9L9JLJsX6TBORDIgnvfQoKQS3eDUElc9Qdkmz-LL6KcpnjsG2dh8Zci4xS3RzoQKMeghQWnVlWNp_crCXpEOWKtvFjbMb_acWEgcg4eyVJbHHBvJdwiApb8E9feCJSo1kc/s400/TyOff.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274839017688045554" /></a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-4223567975171620842008-11-09T03:36:00.001-08:002008-11-15T01:29:37.040-08:00Сам себе портной. Принципы изготовления одежды.Как сделать одежду для своего автара в Second Life? Прочитав эту статью, вы поймете, что все это очень просто.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-00.jpg"><img style="cursor:pointer; cursor:hand;width: 264px; height: 420px;" src="http://secondrussia.ru/files/u13/November/portnoy-00.jpg" border="0" alt="" /></a><br /><br />Вам понадобятся графический редактор с поддержкой слоев, например, Adobe Photoshop, и шаблоны одежды, которые можно взять, скажем, тут. Из них нам будут нужны те файлы, которые называются layered Photoshop (.psd) Files, а конкретно Top и Bottom – для создания рубашки и штанов.<br /><br />Итак, откроем файл Top в графическом редакторе. Создадим новый слой, с которым и будем работать.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-01.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-01.jpg" border="0" alt="" /></a><br /><br />Теперь выделим инструментом "Многоугольное лассо" (обведено на рисунке красным) необходимую область шаблона. И зальем ее цветом с помощью инструмента "Заливка" (обведено желтым).<br /><br />То, как вы выделите шаблон, прямым образом влияет на вид будущей одежды. В моем варианте, например, обрезан верх и рукава наполовину.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-03.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-03.jpg" border="0" alt="" /></a><br /><br />Теперь попробуйте как-то раскрасить рубашку. Воспользуйтесь всем функциональным богатством графического редактора и вашей фантазией, используйте текстуры, рисунки, градиенты, наложения. Я обратилась к тому, что попроще, и нарисовала узор с помощью инструмента "Кисть" (обведено красным). В меню инструмента (обведено желтым) вы сможете настроить вид кисти.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-02.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-02.jpg" border="0" alt="" /></a><br /><br />Вот что у меня получилось после применения трех разных видов кистей.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-05.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-05.jpg" border="0" alt="" /></a><br /><br />Теперь нужно сделать альфа-канал. Для этого уберем видимость у всех слоев шаблона, кроме созданного. Это легко сделать, нажимая на картинку глаза слева от названия слоя.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-06.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-06.jpg" border="0" alt="" /></a><br /><br />После этого кликнем правой кнопкой мышки на изображение нужного слоя и выберем опцию "Выделить прозрачность слоя".<br /><br />Теперь переключимся на вкладку "Каналы" и создадим новый канал из выделения.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-07.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-07.jpg" border="0" alt="" /></a><br /><br />Теперь можно сохранять файл в формате tga.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-09.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-09.jpg" border="0" alt="" /></a><br /><br />Что ж, пора загружать рубашку в Second Life. Переключаемся на SL-клиент, нажимаем в верхнем левом углу "File" и "Upload Image" (не забывайте, что загрузка стоит 10 линденов).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-08.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-08.jpg" border="0" alt="" /></a><br /><br />Выбираем нужный файл и тип, в данном случае это "Male Upper Body" – клиент покажет вам, как это будет выглядеть.<br /><br />После загрузки текстуры используем ее на рубашку. Для этого переключаемся в режим "Edit Appearance" и нажимаем "Create new shirt".<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-10.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-10.jpg" border="0" alt="" /></a><br /><br />В окошке "Fabric" выбираем загруженную текстуру.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-11.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-11.jpg" border="0" alt="" /></a><br /><br />Поиграем немножко ползунками – рубашку можно сделать облегающей или, наоборот, немного свободной.<br /><br />Теперь примерно таким же образом сделаем штаны.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-13.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-13.jpg" border="0" alt="" /></a><br /><br />Снова переходим в графический редактор и открываем текстуру Bottom.<br /><br />Кроме шаблона штанов, здесь же находится и шаблон носков. Но его мы сейчас не трогаем.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-15.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-15.jpg" border="0" alt="" /></a><br /><br />Так же, как мы "кроили" и раскрашивали рубашку, создаем вид штанов и рисунок на них.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-14.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-14.jpg" border="0" alt="" /></a><br /><br />Далее создаем альфа-канал описанным выше способом, сохраняем файл в формате tga и загружаем в Second Life.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-18.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-18.jpg" border="0" alt="" /></a><br /><br />И вот что получилось в результате.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://secondrussia.ru/files/u13/November/portnoy-20.jpg"><img style="cursor:pointer; cursor:hand;width: 991px; height: 660px;" src="http://secondrussia.ru/files/u13/November/portnoy-20.jpg" border="0" alt="" /></a><br /><br />Вид одежды, конечно, с трудом тянет на freebie, но и узоры были использованы мной очень простые.<br /><br />Вся одежда, которую носят аватары в Second Life, делается именно описанным мною путем, так что используйте вашу фантазию и умения, и результат будет удивительным!<br /><br />© <a href="http://secondrussia.ru/story/1000.html" target=_blank>Furry Little</a><br /><br /><span style="font-style:italic;">SOb Zemlja:</span><br />Можно просматривать. Для этого есть SL Clothes Previewer.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixts9TbMfyhEhIw065xCN0YOgrL_SFni3BVE3wzE_ihxIWNCzHlQEc30s6KwdJkuM__ezVap0sl1gtcQqrTds1Jd6hetOVDkS-sD_YBgYdK7iFCGuH8fegHXJHPEshyphenhyphenne9q7Zj9Sl0R5E/s320/SLCP-Preview.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixts9TbMfyhEhIw065xCN0YOgrL_SFni3BVE3wzE_ihxIWNCzHlQEc30s6KwdJkuM__ezVap0sl1gtcQqrTds1Jd6hetOVDkS-sD_YBgYdK7iFCGuH8fegHXJHPEshyphenhyphenne9q7Zj9Sl0R5E/s320/SLCP-Preview.jpg" border="0" alt="" /></a><br /><br />Позволяет просматривать текстуры на аватаре вообще не запуская SL.<br />Скачать можно <a href="http://www.fileden.com/files/2006/10/8/271989/slcp_win.zip" target=_blank>тут</a>.Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-9168756991919928932008-11-08T14:43:00.000-08:002008-11-08T15:12:56.364-08:00Одежда вашего аватара. Инвентарь.В SL существуют следующие типы стандартной одежды:<br /><br /><span style="font-style:italic;"><br />Нижнее бельё:</span><br />Undershirt - майка;<br />Underpants - трусы;<br />Socks - носки/чулки.<br /><br /><span style="font-style:italic;">Верхняя одежда:</span><br />Shirt - кофта;<br />Pants - брюки;<br />Jacket - жакет;<br />Skirt - юбка;<br />Gloves - перчатки.<br /><br /><span style="font-style:italic;">Обувь:</span><br />Shoes - ботинки<br /><br />Каждый тип одежды имеет свою иконку в Инвентаре, специально для того, чтобы вам было проще и быстрее отличить тип вещи и выбрать нужную. <br /><br />А также существует нестандартная одежда, состоящая из примов (объектов). Такая одежда имеет иконку объекта и описание в название предмета.<br /><br />Открыв Инвентарь, вы увидите папку Clothing (Одежда), здесь располагаются созданные и уже имеющиеся вещи. Вы также можете перемещать сюда папки и вещи из главной категории, чтобы не потерять их. <br /><br />Для того, чтобы надеть какую-либо вещь или предмет, откройте инвентарь и кликните правой кнопкой мышки по ним и выберите Wear; чтобы снять вещь используйте функцию того же меню - Take off, если же вы хотите снять предмет - выберите Detach from Youself. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJXizPCHoDPblXoxGqXjlT3Abg8lzBOSiSFeMioG9P224C9uGJ29AlRZtETi9qbpO19-VD9G35LjWmjnYfs4uc3MuVomU1aM8n2JfXm1iPtmoPMll-zcv2_p6hHDaqECmP7FogUNqmcUo/s1600-h/Untitled-6.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJXizPCHoDPblXoxGqXjlT3Abg8lzBOSiSFeMioG9P224C9uGJ29AlRZtETi9qbpO19-VD9G35LjWmjnYfs4uc3MuVomU1aM8n2JfXm1iPtmoPMll-zcv2_p6hHDaqECmP7FogUNqmcUo/s320/Untitled-6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423241364428978" /></a><br /><br />Вы также можете снимать вещи не используя Инвентарь, нажмите на себя правой кнопкой мышки и выбрать в меню Take off, далее вам предлагается выбрать, будете ли вы снимать одежду или хотите отцепить предмет. Попробуйте использовать эту функцию, она намного удобнее, чем искать надетую вещь в инвентаре.<br /><br /><span style="font-weight:bold;">ВНИМАНИЕ!</span> Если вы потеряли вещь, не можете её найти, забыли как она называется и где вы её сохранили, и поиск в инвентаре не даёт никаких результатов, то, скорее всего вам смогут помочь Фильтры. Особенно если у вас уже большой багаж вещей и предметов, и вы не знаете, как с ним справится. Рекомендую использовать Фильтры. Очень просто и удобная функция позволяет находить вещи по типу и времени создания/появления в вашем инвентаре. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicrbD20YtFN-whP2oTof2hxWdQEOWneGbPXzZ_mneqgUSUB1nbgU-hj_g262JXY8dPkghUlOVqsNUz28PxyuVeHUNeHQf2kcka5ZX8A0mG9y7yPzJG0eFhSRKoUPW76oi5F-mn6ZgJu6M/s1600-h/Untitled-7.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicrbD20YtFN-whP2oTof2hxWdQEOWneGbPXzZ_mneqgUSUB1nbgU-hj_g262JXY8dPkghUlOVqsNUz28PxyuVeHUNeHQf2kcka5ZX8A0mG9y7yPzJG0eFhSRKoUPW76oi5F-mn6ZgJu6M/s320/Untitled-7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423238301948130" /></a><br /><br />Задайте правильные параметры, и вы обязательно найдёте то, что искали, с точностью до часа!<br /><br />Несколько слов о том, как создавать собственную одежду или редактировать уже имеющуюся. В настройках Внешности, выберите закладку Shirt (кофта) и нажмите <br />Create New Shirt, создайте новую кофту. Вы можете создавать новые вещи не используя режим Appearance (Внешность), а использовать верхнее меню инвентаря - Create. Тот <br />же принцип создания вы найдёте в других закладках редактора, таких как: Pants, Shoes, Socks и других.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw8x7LMHRgM-xeoejM7OwPKrx53AatWftgirhGbx-3k81vpIqUyaWy1jFDaUcykzL1m2NOWq5EDM3xd0gdsX5zbxmy27nZJv4mBbQcz7_gv8QRemaOOJJie0XcRCnDQaCFohleckeDBiw/s1600-h/Untitled-8.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw8x7LMHRgM-xeoejM7OwPKrx53AatWftgirhGbx-3k81vpIqUyaWy1jFDaUcykzL1m2NOWq5EDM3xd0gdsX5zbxmy27nZJv4mBbQcz7_gv8QRemaOOJJie0XcRCnDQaCFohleckeDBiw/s320/Untitled-8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423238005903442" /></a><br /><br />Выбирайте цвет, текстуру и фасон одежды, используя настройки. Для этого вам предлагается палитра цветов и стандартные текстуры. Вы также можете задать цвет вручную или воспользоваться пипеткой для того, чтобы сделать несколько вещей одного цвета, загружать собственные текстуры и создавать уникальную одежду.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMFeF_Y4f1VVFYkI2MAyBIY4dmOmpjwjkRP2J739wxpwRRXxQVRzXhSKscnb19hDL_tGEa6z7W4YYf82oYBd7_lVqSqi6pXs0ZXrduitY7Jk6h1vHgAjyP0NVNUTgb7o-ic15YUdaImg/s1600-h/Untitled-9.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMFeF_Y4f1VVFYkI2MAyBIY4dmOmpjwjkRP2J739wxpwRRXxQVRzXhSKscnb19hDL_tGEa6z7W4YYf82oYBd7_lVqSqi6pXs0ZXrduitY7Jk6h1vHgAjyP0NVNUTgb7o-ic15YUdaImg/s320/Untitled-9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423236467871026" /></a><br /><br />После того, как ваша одежда готова, не забудьте сохранить её, дав ей такое название, по которому её не сложно будет найти. Обычно в названии указывают тип вещи (Shirt, Pants, Jacket и т.д). <br /><br />В некоторых случаях, у вас нет необходимости одевать по одной вещи из папки, если вы, к примеру, хотите стать кем-то ещё, просто соберите в одну папку все составляющие образа (фигуру, кожу, глаза, волосы и одежду), и переодевайтесь в один клик, нажав на папку и выбрав Rеplace to Outfit.<br /><br />Стоит обратить особое внимание на примовую одежду, особенно на обувь, имеющую нестандартную форму ноги, например - туфли на каблуках. Обувь такого типа всегда сопровождается формой ноги, которую обязательно стоит надевать, если вы хотите выглядеть нормально. В остальном, одежда, состоящая из примов одевается и снимается <br />также, с помощью функции Wear и Detach from Yourself из вашего инвентаря.<br /><br />Помните, что если вы одеваете несколько вещей подряд, например: майку, кофту, жакет, то каждая из них будет одеваться поверх другой в соответствующем порядке.<br /><br />В заключение хочу сказать, что в SL вы сможете быть тем, кем вы хотите (в том числе и самим собой), возможности SL позволяют превратиться даже в самое необычное существо. Всё, что для этого нужно это ваша фантазия и усидчивость для создания образа. <br /><br /><br /><span style="font-weight:bold;">Несколько вредных советов</span><br /><br />1. Если вы хотите изменить одежду, часть одежды или поправить примовые волосы, используйте стенд (просто скопируйте его в инвентарь и перетащите на землю. Вставайте.)<br /><br />2. Если вы передаёте свою одежду или вещи другим людям, не забудьте позаботиться о правах на них. Для этого нажмите правой кнопкой мышки на вещь и выберите Properties (Свойства), найдите настройки Next owner can и выставите необходимые права: Modifly (Редактировать), Copy (Копировать).<br /><br />3. Если вы редактируете свои вещи (предметы), перетащив их на землю, изменяете их части или текстуры, не забудьте за собой убрать, забрав или удалив свои вещи.<br /><br />4. Если вы решили купить кожу (skin) всегда пользуйтесь возможностью DEMO (пробный вариант), тем самым убережёте себя от траты денег на абсолютно не подходящую кожу. Помните, что кожа на картинке это всего лишь кожа, и шейп фигуры туда не входит, поэтому не нужно требовать от продавца, чтобы он сделал вас такой/таким же как на картинке. <br /><br />5. Некоторые части тела требуют коррекции при смене фигуры, имейте ввиду, что на реалистичной коже брови, губы и некоторые другие части нарисованы, и вы не сможете изменить их форму по своему усмотрению, но сможете изменить фигуру, тем самым скорректировав внешний вид.<br /><br />6. Если вы купили вещи в магазине, заплатили деньги, а они пропали, и вы испробовали все попытки их найти, не стесняйтесь обратиться к продавцу/автору товара с просьбой помочь. Чаще всего продавец пойдёт вам на встречу и даст нужный товар, проверив ваш платёж.<br /><br />© Marie SimsManoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-45723754746892162432008-11-08T14:16:00.000-08:002008-11-08T15:06:50.933-08:00Внешность аватараЭта лекция будет посвящена внешнему облику аватара, правильной настройке фигуры, цвету кожи, волос и глаз. Во время лекции я буду загруждать иллюстрации, поэтому рекомендую пользоваться камерой.<br /><br />Несколько слов о возможностях SECOND LIFE в плане настройки внешнего вида вашего персонажа. Как нам всем известно, человеческое тело имеет массу особенностей в строение и форме частей тела. <br /><br />Вторая жизнь предоставляет возможность настройки практически 90% всех особенностей человеческого тела. Каждый из нас может создать свой, неповторимый, уникальный образ, или схожий образ знаменитой личности, а также самого себя. Всё, что для этого надо - освоить настройки фигуры аватара (в SL это называется шейп (от английского слова shape) и подобрать кожу. <br /><br />Первое, с чем придётся столкнуться новичку в SL это создание своего Аватара. Разработчики предлагают несколько готовых вариантов, чтобы дать возможность начать игру сразу. Но спустя определённое время, каждый из персонажей задумывается об уникальности внешнего вида своего героя. SL - визуальный мир, и внешность тут играет, пускай даже не первую, но и далеко не последнюю роль. <br /><br />Тут вам предлагается два пути решения задачи, вы можете использовать готовые варианты внешности, либо создать собственную. <br /><br />Первый вариант подходит тем, у кого нет времени и желания изучать настройки и возможности, но и не застрахует вас от возможности встретить брата/сестру близнеца на одном из остров SL. К тому же, чаще всего купленный вами шейп не позволяет изменять некоторые особенности фигуры, и тем самым, вам приходится мириться с представлениями автора шейпа о красоте.<br /><br /><br /><span style="font-weight:bold;">Настройка внешности аватара</span><br /><br />Для того чтобы настроить внешний вид аватара, вам необходимо зайти в меню Настройки внешности, для этого просто нажмите правой кнопкой мышки на своего героя и выберите Appearance (Внешность).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTIzTj7anjY1JK2rTOaSAEo6768wZBtfk7ZRB3OtE0mL0OqkzxU7u9nHnLUNOLQdwi-ebGFdrcNSUtFMlttD32HOs6SpqfCp0sFzZ6ASJCMemahA99Kz46p4CK8t2U5TS1R0Q-qJA_EOE/s1600-h/Untitled-1.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTIzTj7anjY1JK2rTOaSAEo6768wZBtfk7ZRB3OtE0mL0OqkzxU7u9nHnLUNOLQdwi-ebGFdrcNSUtFMlttD32HOs6SpqfCp0sFzZ6ASJCMemahA99Kz46p4CK8t2U5TS1R0Q-qJA_EOE/s320/Untitled-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423586052593874" /></a><br /><br />Теперь вы находитесь в главном меню редактора внешнего вида персонажа. Меню слева позволяет быстро переключаться между основными настройками: Shape (фигура), Skin (кожа), Hair (волосы), Eyes (глаза).<br /><br />1. SHAPE (Фигура) - Одна из наиболее объемных настроек внешнего вида, позволяет настраивать практически любую деталь вашего туловища, начиная от кончика подбородка до размера ступни. Вы можете моделировать вашу фигуру по вашему усмотрению. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicIJv4eEaSyBRSns-itJbXEpBYMVLhYHzXmo0gfkzThtG4EnyfD6bJLvOXhO5zr3GrGCh13VXpO9vVmDD1abBVq6xpL-j95B5Ad3Yg-fZ1ZL8CyRxObmmlFFTBglCbqBp-ODvFguiANP0/s1600-h/Untitled-2.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicIJv4eEaSyBRSns-itJbXEpBYMVLhYHzXmo0gfkzThtG4EnyfD6bJLvOXhO5zr3GrGCh13VXpO9vVmDD1abBVq6xpL-j95B5Ad3Yg-fZ1ZL8CyRxObmmlFFTBglCbqBp-ODvFguiANP0/s320/Untitled-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423584900720466" /></a><br /><br />В закладке Shape вы сможете найти подменю, состоящие из основных деталей человеческого тела, такие как: <br /><br />- Body (Тело) отвечает за настройку основных деталей вашего тела, таких как: рост, плотность и строение фигуры. <br /><br />- Head (Голова) позволяет настроить и отредактировать размер и форму головы, лба, скул, щёк. <br /><br />- Eyes (Глаза) позволяет задать необходимые форму, размер и положение глаз, также вы можете изменить размер ресниц и область вокруг глаз (верхние и нижние веки). <br /><br />- Ears (Уши) позволяет настроить положение, размер и форму ушей. <br /><br />- Nose (Нос) позволяет настроить нос вашего аватара, начиная от формы и размера переносицы и заканчивая кончиком носа. <br /><br />- Mouth (Губы) этот параметр позволяет задать необходимый размер, форму и положение губ. <br /><br />- Chin (Подбородок) позволяет настроить размер, форму и положение подбородка вашего аватара, а также форму щёк и второго подбородка. <br /><br />- Torso (Туловище) является более детальной настройкой всего тела, позволяет настраивать размер и высоту шеи; высоту и ширину груди, рук, плеч и живота. <br /><br />- Legs (Ноги) позволяет изменить размер, форму и положение ног аватара, а также размер и форму бедра, ягодиц и ступней. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv74qq8Ygqhn8GUbtJCEnuY-IVZ8tAYutc06gtXuzzfUIEjlKsrjC6Ti6BFBUoX9q9CSElQCr_Hx_WPJ_SlFfPqS7U34B-BpCl-fW22HGyqFbtnF-6p0XulnjgTkKFfi3xvLhEvx4nHAQ/s1600-h/Untitled-3.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv74qq8Ygqhn8GUbtJCEnuY-IVZ8tAYutc06gtXuzzfUIEjlKsrjC6Ti6BFBUoX9q9CSElQCr_Hx_WPJ_SlFfPqS7U34B-BpCl-fW22HGyqFbtnF-6p0XulnjgTkKFfi3xvLhEvx4nHAQ/s320/Untitled-3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423582525881186" /></a><br /><br />2. SKIN (Кожа)<br />В закладке скин вы сможете настроить цвет кожи, макияж, детали лица и тела.<br /><br />Skin Color - настройка цвета, яркости и румянца кожи. <br />Face Datail - настройка лица (молодая/старая кожа), веснушки, румянец щёк и цвет губ.<br />Makeup - макияж: глаза, веки, щёки, губы, ногти.<br />Body Detail - телесный пигмент, настройка рельефности тела (мыщцы).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ6AIFmy-VmZgufymBLLKCjYYg8ZwNLF2DzCzw5g9mKZRavZyQcF96x78kW4sSAQ1CYeOyTOV6KZMTM2qBiWYsWshoYR_oTStuGPPvjDqmXNTobOBcdCMJ4AJMihiSWOyD3mOEQ-ZWHoo/s1600-h/Untitled-4.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ6AIFmy-VmZgufymBLLKCjYYg8ZwNLF2DzCzw5g9mKZRavZyQcF96x78kW4sSAQ1CYeOyTOV6KZMTM2qBiWYsWshoYR_oTStuGPPvjDqmXNTobOBcdCMJ4AJMihiSWOyD3mOEQ-ZWHoo/s320/Untitled-4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423582317333042" /></a><br /><br />Большинство резидентов SL используют готовую (покупную или созданную ими) кожу, более реалистичную или фотографическую, но к сожалению, покупная кожа, чаще всего, имеет параметр "no modify" и запрещает вносить какие-либо изменения. <br /><br />3. HAIR (Волосы)<br />В закладке скин вы сможете настроить цвет, стиль волос и бровей.<br /><br />Color (Цвет) - позволяет настроить цвет, насыщенность и яркость волос.<br />Style (Стиль) - позволяет сделать необходимую причёску (изменять размер и длину волосы)<br />Eyebrows (Брови) - позволяет настроить форму и положение бровей аватара. <br /><br />Большинство резидентов SL предпочитают волосы созданные с помощью примов (объектов), выглядящие более реалистично. Если вы покупаете примовые волосы, то чаще всего вы <br />имеете возможность редактировать их, чтобы изменять размер и положение волос или их части именно под выш аватар. <br /><br />4. EYES (Глаза)<br />Одна из самый простых настроек в редакторе внешности. Имеет всего две настройки и позволяет настроить цвет и яркость глаз.<br /><br />Все созданные шейпы/скины/глаза/волосы хранятся в Инвентаре, в папке Body Parts, также вы можете перемещать в эту папку купленные части тела, для удобства поиска.<br /><br />Передвигая бегунок слева направо вы увеличиваете размер, выбранной вами части тела.<br />Не переживайте если какая-то из настроек случайным образом сбилась, или вы передвинули бегунок не той настройки, вы всегда сможете вернуться назад, нажав Revert (Вернуться).<br /><br />Вы не привязаны к своему первоначальному выбору пола и фигуры/кожи/глаз/волос, вы всегда сможете изменить любую деталь своей внешности, чтобы совершенствовать внешность своего героя. <br /><br />Вы можете создавать несколько фигур/скинов/глаз/волос, сохраняя их в своём Инвентаре, и менять их по желанию. Пожалуйста, обращайте внимание на путь сохранения вашего шейпа, именно там вы сможете его найти в следующий раз, также, если вы сохраняете копию шейпа/скина/глаз/волос, она появится рядом, в той же папке. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdL8J6MAwrz9sesxorx4oykUdijMFYWVY2UBYP9tH9VUMhMPnYgUKjYGG5PzB4oBlySFFbviPXaFfp_iZThvgmITxkIfiZMXSntUDzQzr8IdROHI4eky6SK3alJ8y2VpoUKuPAeyZ-DoE/s1600-h/Untitled-5.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdL8J6MAwrz9sesxorx4oykUdijMFYWVY2UBYP9tH9VUMhMPnYgUKjYGG5PzB4oBlySFFbviPXaFfp_iZThvgmITxkIfiZMXSntUDzQzr8IdROHI4eky6SK3alJ8y2VpoUKuPAeyZ-DoE/s320/Untitled-5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266423250298510738" /></a><br /><br />Используя поиск в инвентаре, вы сможете быстро найти необходимые вещи и части тела. Задайте необходимый параметр для поиска в строке под меню и инвентарь автоматически отсортирует найденные по этому слову предметы. Введите значение и нажмите Enter.<br /><br />Инвентарь позволяет создавать папки, подпапки, перемещать и передвигать предметы на ваше усмотрение. Тем самым, вы сможете задать удобное расположение вещей в инвентаре по своему желанию. Размещать предметы одного типа в необходимой папке и переименовывать их для своего удобства.<br /><br />© Marie SimsManoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com3tag:blogger.com,1999:blog-875702549263866709.post-52554013577273084242008-11-06T00:18:00.001-08:002008-11-06T05:10:18.696-08:00Свое собственное интернет-радиоМногие задаются вопросом, как же заставить звучать свои любимые композиции и треки на своей земле? Конечно же, в рамках данной статьи мы считаем, что у вас есть своя земля и вопрос стоит лишь в организации потока вещания из полюбившихся треков.<br /><br />Это несложно сделать при помощи ресурса <a href="http://www.mediamaster.com" target=_blank>www.mediamaster.com</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnjj0NfbOOwHws1XZv3x92NihDvUAM7WFFyOjTacYML5vnz0oqabuWohOF4338wnPwJDNvwiw_8rXJKFczOSj5K-lEw2udJJqeNQBqGPC62rjIAqJ3QaYCc1hF9YMnBplPTX-mDS3tqOE/s1600-h/screen-1.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 210px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnjj0NfbOOwHws1XZv3x92NihDvUAM7WFFyOjTacYML5vnz0oqabuWohOF4338wnPwJDNvwiw_8rXJKFczOSj5K-lEw2udJJqeNQBqGPC62rjIAqJ3QaYCc1hF9YMnBplPTX-mDS3tqOE/s320/screen-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265508998122163074" /></a><br /><br />Нажав на кнопку <span style="font-weight:bold;">"Sign up"</span>, переходим к регистрации, где заполняем все необходимые поля.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimh-5FpPPFRzRipTRqB19UFA3qbLTQtcJl2pVLKYberE8wr6azJJ29aLFC8x_pHXbUZuvZotYiXrjpZAPE2M-Eowdaxt4Oyws1cU__mOyKmvw8ll9DyUa5yTt72KlQpH1hdULuYvJNhpY/s1600-h/screen-2.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 135px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimh-5FpPPFRzRipTRqB19UFA3qbLTQtcJl2pVLKYberE8wr6azJJ29aLFC8x_pHXbUZuvZotYiXrjpZAPE2M-Eowdaxt4Oyws1cU__mOyKmvw8ll9DyUa5yTt72KlQpH1hdULuYvJNhpY/s320/screen-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265510299971752082" /></a><br /><br />О том, что ваш аккаунт создан, вы узнаете из предложения загрузить ваши треки непосредственно на ресурс.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZRu0jRnY53ASP33WdCldPcJ47YVEhBERlsFY-r85A2KtW_0UVdzSO9RyUHJwhTslgRi5Gq7AbN-VEua3e2IpgkMG8zueIjH2m74ece3SkXlp-VAtMrKNrFk3397DnHkApK01e9MA3iaE/s1600-h/screen-3.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 146px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZRu0jRnY53ASP33WdCldPcJ47YVEhBERlsFY-r85A2KtW_0UVdzSO9RyUHJwhTslgRi5Gq7AbN-VEua3e2IpgkMG8zueIjH2m74ece3SkXlp-VAtMrKNrFk3397DnHkApK01e9MA3iaE/s320/screen-3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265510815205362050" /></a><br /><br />Хочу обратить особое внимание, что управление вашей фонотекой реализовано на технологии FLEX, поэтому убедитесь, что у вас установлен <a href="http://get.adobe.com/flashplayer/?promoid=BUIGP" target=_blank>Adobe Flash Player</a> не ниже 9 версии, а еще лучше, если вы обновите его до версии 10. Также необходимо знать, что отдельные механизмы реализованы при помощи технологии JAVA, поэтому проверьте, что <a href="http://java.sun.com/javase/downloads/index.jsp" target=_blank>Java Runtime Environment</a> у вас установлен и обновлен.<br /><br />Если все сделано правильно, то вы увидите главное окно менеджера треков, в котором вам предложат взять музыку из iTunes или же импортировать свою.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs8bzFi608LFNczgInsjcFL57emkqhCExWZYypPt4GQ-YByRUhB6OT1uTwr4yteh7Eq4C1Go-wLSSkehyphenhyphenHqkcsp1Vhdlmc8EfJeBI5TuKCZHJ8VD7vGdTM5xLLVkXp2l-5KYajm0XMFfk/s1600-h/screen-4.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 202px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs8bzFi608LFNczgInsjcFL57emkqhCExWZYypPt4GQ-YByRUhB6OT1uTwr4yteh7Eq4C1Go-wLSSkehyphenhyphenHqkcsp1Vhdlmc8EfJeBI5TuKCZHJ8VD7vGdTM5xLLVkXp2l-5KYajm0XMFfk/s320/screen-4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265513852061850082" /></a><br /><br />Выбираем импорт, нажимаем и в открывшемся окне видим загрузчик, в котором выбираем треки (кнопка "Browse"), которые хотим загрузить и, соответственно, загружаем их (большая кнопка "UPLOAD").<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY7etaKTHnvCfQpAJqKO7j2Wxr_AAuA-J832LEZRm0yUyQ_O8btcfR-PoJQ9jEWKa2PIMIh7wBPoguwBfroRthsP0Uw-khdVhc4vd0UTiaeNNamAvcIZCDsp1JK-JrSrzQCZWOE84KorY/s1600-h/screen-5.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 296px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY7etaKTHnvCfQpAJqKO7j2Wxr_AAuA-J832LEZRm0yUyQ_O8btcfR-PoJQ9jEWKa2PIMIh7wBPoguwBfroRthsP0Uw-khdVhc4vd0UTiaeNNamAvcIZCDsp1JK-JrSrzQCZWOE84KorY/s320/screen-5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265515217620732274" /></a><br /><br />Когда все файлы будут загружены, вам нужно будет сформировать плейлист, который и будет играть в эфире вашего потока. Для этого в менеджере нажмите на значок нотки и увидите список ваших файлов на сервере. Отметив нужные, просто перетащите их мышкой в папочку <span style="font-style:italic;">"My Radio"</span>, которая находится в левом фрейме.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFtC6NhFAvtbG03qS0aIT7dFeQg8q2G4TnmcbfVw6_sqeiMA3YUQNilJ6MPFHa5p2AtP-r3UD3cNaf2Qs2xIZvLOOrG88GiAgzY6sUksDuYv0ZmWfk0fyS6g8h9j8r25kFqgAPBM38cRs/s1600-h/screen-6.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFtC6NhFAvtbG03qS0aIT7dFeQg8q2G4TnmcbfVw6_sqeiMA3YUQNilJ6MPFHa5p2AtP-r3UD3cNaf2Qs2xIZvLOOrG88GiAgzY6sUksDuYv0ZmWfk0fyS6g8h9j8r25kFqgAPBM38cRs/s400/screen-6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265525871208636722" /></a><br /><br />Все, с этого момента ваша интернет-радио начнет работать.<br /><br />Следующим шагом будет получение ссылки на поток, который и нужно будет поместить на ваш парсел. Для этого нажмите кнопку "Publish" в окне менеджера треков. Список файлов сменится на панель, в которой вы найдете искомую ссылку.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIxKVbtcqXcxjYxICzkif9oAnbf13_Bqzd4wdd5_l7fb5sHCGgts2rnBw2SMiY5ROmYP3iHWujLSYX63MzBikbQ9HXNjc7nEbSE1VUtQxQ8s6OwmNAWXXSiyAbEewoE2bN9tRJzJyWE0/s1600-h/screen-7.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIxKVbtcqXcxjYxICzkif9oAnbf13_Bqzd4wdd5_l7fb5sHCGgts2rnBw2SMiY5ROmYP3iHWujLSYX63MzBikbQ9HXNjc7nEbSE1VUtQxQ8s6OwmNAWXXSiyAbEewoE2bN9tRJzJyWE0/s400/screen-7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265528489660883042" /></a><br /><br />Остальное - просто и банально. Вы открываете в Second Life свойства земли и копируете туда ссылку на поток вашего радио. С этих пор ваши гости могу наслаждаться теми же треками, которые слушаете и вы сами.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX1_ctumhU04OIMldK3AygsxcnIXxv9IScTG1fGicNeTBry8jVNq7FSwxswhai1YdCzPtO37_9tTyQzr7v9rEykmhO-4ZUdeTV-uNbVl9y-1RwDpMBP33r74L2A3Odt2Nnp8mOpMpTRXY/s1600-h/screen-8.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 365px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX1_ctumhU04OIMldK3AygsxcnIXxv9IScTG1fGicNeTBry8jVNq7FSwxswhai1YdCzPtO37_9tTyQzr7v9rEykmhO-4ZUdeTV-uNbVl9y-1RwDpMBP33r74L2A3Odt2Nnp8mOpMpTRXY/s400/screen-8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265530468829229778" /></a><br /><br />В заключение я хочу сказать, что интернет-радио, построенное на базе ресурса <a href="http://www.mediamaster.com" target=_blank>www.mediamaster.com</a> обладает массой дополнительных функций, в том числе и виджетом, который вы можете разместить в своем блоге или на своем сайте и все посетители этих ресурсов также смогут слушать ваше онлайн-радио. Кроме того, интерфейс менеджера треков поддерживает русский язык ;)<br /><br /><span style="font-style:italic;">Manoul Carnell</span>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-22682097612490977422008-11-05T07:05:00.000-08:002008-11-05T07:14:03.863-08:00Наложение текстур на скульптовые примы созданные в Блендере.Cпособ не претендует на единовозможный и правильный, но он действительно позволяет создать текстуру для наложения на скульптурный прим. Напоминаю, что программу Blender Вы можете скачать с моего сайта в закладке "Каталог файлов". Вернёмся ненадолго к <a href="http://russiansecondlife.blogspot.com/2008/11/blog-post_05.html">первой статье</a>. Остановимся на п. 14, и начнём:<br /><br />1. Прежде чем начать изменять форму нашего прима необходимо снять сетку развёртки, чтобы в последствии создавать текстуру по этой сетке. Для этого возвращаемся в режим UV/Image Editor.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-1copy.jpg"><img style="cursor:pointer; cursor:hand;width: 624px; height: 467px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-1copy.jpg" border="0" alt="" /></a><br /><br />2.Выбрать Save UV Face Layout, как показано на рисунке, и не меняя установок указать имя и путь сохранения этой сетки.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-2copy.jpg"><img style="cursor:pointer; cursor:hand;width: 623px; height: 467px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-2copy.jpg" border="0" alt="" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/prim_cube_0111_Cube.jpg"><img style="cursor:pointer; cursor:hand;width: 256px; height: 256px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/prim_cube_0111_Cube.jpg" border="0" alt="" /></a><br /><br />3.Далее создаём форму прима, делаем и сохраняем UV-карту (радужную картинку) как в первой статье. Здесь я сделал вот такую фигуру:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-3copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-3copy.jpg" border="0" alt="" /></a><br /><br />4.Выделяем весь прим (клавиша А) и переходим в режим UV/Image Editor как по п.1 настоящей статьи. Создаём новую картинку IMAGE\New:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-4copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-4copy.jpg" border="0" alt="" /></a><br /><br />Если сразу новая картинка не стала чёрного цвета, то потребуется сделать IMAGE\Reload в той же закладке.<br /><br />5. Переходим в 3Д-вид, в закладку Texture Paint:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-5copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-5copy.jpg" border="0" alt="" /></a><br /><br />6.Предварительно красим Ваш прим «кистью» изменяя цвет окраски как показано на рисунке.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-6copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-6copy.jpg" border="0" alt="" /></a><br /><br />Можно сильно не усердствовать, это только предварительная окраска, на которой только определяется какая грань чем окрашивается. По завершении такого окраса, снова переходим в режим UV/Image Editor как по п.1, сохраняем полученную картинку Save As. Я предпочитаю формат JPEG. Блендер с нашим примом я не закрываю, позже будем ещё смотреть как выглядит готовая текстура на приме.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-7copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-7copy.jpg" border="0" alt="" /></a><br /><br />7. Далее открываем полученную картинку в графическом редакторе, я предпочитаю Photoshop. Создаём новый полупрозрачный слой и добавляем в него нашу сетку, которую делали в п.2.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-8copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-8copy.jpg" border="0" alt="" /></a><br /><br />Раскрашиваем как вам хочется, по сетке. Вы уже можете представить как выглядит текстура, где у неё верх, где расположены какие грани, где границы каждой грани и т.п, это всё хорошо видно по сетке. Это уже будет чистовая текстура (при отключенном слое с сеткой). После завершения сохраним текстуру, её то и будем загружать в Second Life. Но для начала посмотрим как она будет выглядеть в Блендере.<br /><br />8. Снова заходим в Блендер, открываем в режиме UV/Image Editor нашу текстуру:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-9copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-9copy.jpg" border="0" alt="" /></a><br /><br />И просматриваем как она будет выглядеть на приме:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-91copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 469px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-91copy.jpg" border="0" alt="" /></a><br /><br />Если устраивает, то загружаем UV-карту и текстуру, созданную вами только что при помощи Photoshop, в Second Life. Накладываем текстуру на скульптурный прим, созданый при помощи UV-карты и получаем вот такой результат. Это показан один прим с растягиванием по различным осям.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-92copy.jpg"><img style="cursor:pointer; cursor:hand;width: 625px; height: 453px;" src="http://dimmtorok.ucoz.ru/Sculpt_texture/Untitled-92copy.jpg" border="0" alt="" /></a><br /><br />Вот и всё, ничего в принципе сложного, но мне понадобилось 2 месяца, что бы с этим разобраться.<br /><br />Удачи!<br /><br />© <a href="http://dimmtorok.ucoz.ru/publ/1-1-0-3">dimm Torok</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1tag:blogger.com,1999:blog-875702549263866709.post-90092734801153282262008-11-05T00:50:00.000-08:002008-11-05T01:26:14.557-08:00Создание скульптурных примов в БлендереЭта статья для чайников по созданию скульптурных примов при помощи <a href="http://www.blender.org/">программы Blender</a>. Заранее приношу извинения у специалистов 3D – моделирования, т.к. очень многого из того, как я их делаю - я не понимаю. Возможны неточности и ошибки, но так как здесь описано можно их (скультпримы) делать. Сразу должен предупредить, что эта возможность есть в Blender 2.43 и выше. Итак…?<br /><br />1. Открываем Blender.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWuihvHk9MTg6Nzd4P6WXdeCfpIpqKahAePs6uCtxEwwzSCgiNNH9Q-wlo1aXqWyieE61dHYeDVvCp1OEvMjo-mHkfWjOkLSoATeqPubrBcd7Y0TX61JWXDaR9W6IWiswrL7ZlsFM22Qg/s1600-h/screen-1.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWuihvHk9MTg6Nzd4P6WXdeCfpIpqKahAePs6uCtxEwwzSCgiNNH9Q-wlo1aXqWyieE61dHYeDVvCp1OEvMjo-mHkfWjOkLSoATeqPubrBcd7Y0TX61JWXDaR9W6IWiswrL7ZlsFM22Qg/s320/screen-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096038012164898" /></a><br /><br />2. Выбираем в закладке MODE – UV Face Select<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpW3TupwHcbjGwip71BNs5DCsm4BbCjIM4TNA1i__LWccGDvdl_WEtH63nCbXRRx0YBltvydALiyKuKHNHumtPsLRsi_LTpgzsWF6cqDNypN0Iw9NI3Tu50a5eViBAinn6-SabGldOgxc/s1600-h/screen-2.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpW3TupwHcbjGwip71BNs5DCsm4BbCjIM4TNA1i__LWccGDvdl_WEtH63nCbXRRx0YBltvydALiyKuKHNHumtPsLRsi_LTpgzsWF6cqDNypN0Iw9NI3Tu50a5eViBAinn6-SabGldOgxc/s320/screen-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096042956079138" /></a><br /><br />3. Клик правой кнопкой на верхней грани (выделили верхнюю грань), и возвращаемся в режим редактирования MODE – Edit Mode<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK5JnGOMZymoAoX35E3CeoOFZ5oVGYy2Z1l6LS1PqS3wDdErQmXJaEcMr2Fkty6xr26FZX-5ef-MqqDQPz8Xqxjmm3sUuGk3VBgSpe08keaS9FWPaP3zupc7cnqV9F41sCUWy5cHIkOoo/s1600-h/screen-3.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK5JnGOMZymoAoX35E3CeoOFZ5oVGYy2Z1l6LS1PqS3wDdErQmXJaEcMr2Fkty6xr26FZX-5ef-MqqDQPz8Xqxjmm3sUuGk3VBgSpe08keaS9FWPaP3zupc7cnqV9F41sCUWy5cHIkOoo/s320/screen-3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096049895821106" /></a><br /><br />4. В режиме MODE – Edit Mode жмём Delete и выбираем Faces. Должен заметить, что работа с камерой как и в SL, т.е. при нажатой клавише ALT. Аналогично удаляем и нижнюю грань. Наверняка есть и легче способ удалить верхнюю и нижнюю грани, но на момент написания этого текста мне пока неизвестно. В итоге получаем:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBN9EVkI1rVdw-joFOOh3QfVGfMFk6GbKvhLNuUTcFxxprOFr4xWEK0kiQdpcGt2B6wcM8VuEoi_mTW8gXLs6Yc0Ya5hBB-vUqMecfe4chZXbL0c7RgF41RlBqwuNuez7VVVb589oBnqc/s1600-h/screen-4.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBN9EVkI1rVdw-joFOOh3QfVGfMFk6GbKvhLNuUTcFxxprOFr4xWEK0kiQdpcGt2B6wcM8VuEoi_mTW8gXLs6Yc0Ya5hBB-vUqMecfe4chZXbL0c7RgF41RlBqwuNuez7VVVb589oBnqc/s320/screen-4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096050803464514" /></a><br /><br />5. Выбираем фронтальный вид, т.е. View – Front, один раз нажимаем клавишу B (режим выбора «рамкой»), выбираем верхние вершины (они ярче окрасятся), жмём CTRL-E, выбираем Mark seam.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNbkZbM88ZoK5vTQrcGLXXO8KuQdv0j9EKX9KockdsqtQUYMtJJPeHBPznPCxBwuaOvkSGEFcCczEGxm08XEG5lBwiSWA-BWWtzzXMmu9mzo9paVxX0YP-WPJspqOOwgfDgnkL3tZBCcI/s1600-h/screen-5.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNbkZbM88ZoK5vTQrcGLXXO8KuQdv0j9EKX9KockdsqtQUYMtJJPeHBPznPCxBwuaOvkSGEFcCczEGxm08XEG5lBwiSWA-BWWtzzXMmu9mzo9paVxX0YP-WPJspqOOwgfDgnkL3tZBCcI/s320/screen-5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096061753569778" /></a><br /><br />6. Выбираем правой кнопкой одну из помеченных вершин верха и с помощью Shift правой кнопкой метим дополнительно вершину, которая под ней. Снова жмём CTRL-E, выбираем Mark seam. Таким образом мы сделали шов для выполнения развёртки. При помощи CTRL-R добавляем рёбра для сетки (прокрутка колёсика мыши увеличивает количество). Дополнительные рёбра нужны для последующей трансформации нашего куба в какой-либо объект. Кнопка А снимает выделение (или выделяет всё).<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZjSPWq0q0PM3Ag06sIgKIp221C8iETobJPrCXZef0jDm6TM670SOBXuA970LLhlVyXG1XznoOhrjqI6ozdjiEtLQjb4hmOq0dugCVekRgFe1q6oEsLRtwOKJFuWliGuwFm9xvCKLxmCQ/s1600-h/screen-6.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZjSPWq0q0PM3Ag06sIgKIp221C8iETobJPrCXZef0jDm6TM670SOBXuA970LLhlVyXG1XznoOhrjqI6ozdjiEtLQjb4hmOq0dugCVekRgFe1q6oEsLRtwOKJFuWliGuwFm9xvCKLxmCQ/s320/screen-6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096311899618242" /></a><br /><br />7. Переходим в режим UV Face Select, как по п.2, жмём А (выделить всё) и U (типа развёртка) выбираем Unwrap.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsB5bMuxlKgXCU_7l0CzE1KyQvM9oJB-TNb53qaCX9cIecOrrCfzfPLpEVhkDvRE8YWcton-RfY52Wtgo92-D4yzHuYeLP5chvn2EQpYRXHADWm1dl4QgxswqImY8r3aMEHcw_prajxzk/s1600-h/screen-7.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsB5bMuxlKgXCU_7l0CzE1KyQvM9oJB-TNb53qaCX9cIecOrrCfzfPLpEVhkDvRE8YWcton-RfY52Wtgo92-D4yzHuYeLP5chvn2EQpYRXHADWm1dl4QgxswqImY8r3aMEHcw_prajxzk/s320/screen-7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096323424439874" /></a><br /><br />8. Переходим в вид UV/Image Editor<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB5L6iQWnfgCBE-K9ldhdk-WzweMsknJ3npAX05STGZt3AaYtxZVC4rFUefxSl-rWYSK2d6-DMyrCHOW7yPeOr-UygsXor3dflnR7_KtWVauExEz9eTv1akjI2-572_UlNLZc39i8qHn0/s1600-h/screen-8.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB5L6iQWnfgCBE-K9ldhdk-WzweMsknJ3npAX05STGZt3AaYtxZVC4rFUefxSl-rWYSK2d6-DMyrCHOW7yPeOr-UygsXor3dflnR7_KtWVauExEz9eTv1akjI2-572_UlNLZc39i8qHn0/s320/screen-8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096322221091714" /></a><br /><br />9. Ставим галочку как показано на рис.9, выделяем всю полученную развёртку (А), перетаскиваем её в центр квадрата.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEKcrYG5Lmo4l0pbGcDjgqtYN5dU-M44IJ0d-Scy1GX2Pr-T2jnWq1ak7DYKpCfSGkqpu25TLk45_uXW1RoLtrTYNgmUw0mTDe6Px4LG9HBoSchI_5_z1dtxpMzOXqyWkZVamTDqbqSc/s1600-h/screen-9.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEKcrYG5Lmo4l0pbGcDjgqtYN5dU-M44IJ0d-Scy1GX2Pr-T2jnWq1ak7DYKpCfSGkqpu25TLk45_uXW1RoLtrTYNgmUw0mTDe6Px4LG9HBoSchI_5_z1dtxpMzOXqyWkZVamTDqbqSc/s320/screen-9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096327501081298" /></a><br /><br />10. Растягиваем при помощи клавиши маштабирования (S) чтобы наша развёртка занимала весь квадрат. Создаём файл. (не знаю для чего)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVXS5voT-2XfQQWn0bh09CfijZJ7JyqNZIK9EhA9dmEhitVGGkUJ7bhL34X9O3HbOHwV-OPnvOJZiOcWtxEjBg14fGoghKLmv_H-tTesgMHSaCN97DhiadIplT9X9Iw-hweHhG9f1RMlQ/s1600-h/screen-10.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVXS5voT-2XfQQWn0bh09CfijZJ7JyqNZIK9EhA9dmEhitVGGkUJ7bhL34X9O3HbOHwV-OPnvOJZiOcWtxEjBg14fGoghKLmv_H-tTesgMHSaCN97DhiadIplT9X9Iw-hweHhG9f1RMlQ/s320/screen-10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096361879937010" /></a><br /><br />11. Теперь создаём сам объект-куб, выбираем как показано на рисунке.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgubomth3lFxMUkJrPmKFJ5lNH7Nqt1XEbtjiPH-eFkTxp6RUpdGml3e8AvIyg_K4IxVptNSruNBMcblSEG0iPfYi8Kn5Z4RHgYZj9hqdzCshFrSWSzXRXAdziIrLKAP-cJF3ElODOHV8g/s1600-h/screen-11.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgubomth3lFxMUkJrPmKFJ5lNH7Nqt1XEbtjiPH-eFkTxp6RUpdGml3e8AvIyg_K4IxVptNSruNBMcblSEG0iPfYi8Kn5Z4RHgYZj9hqdzCshFrSWSzXRXAdziIrLKAP-cJF3ElODOHV8g/s320/screen-11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096527133588754" /></a><br /><br />12. Создаём (Add New) три текстуры с типом blend.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht7kMnYsgaZYhtC-YxgmAe83x7JUJ8w3sS9CsgyTDGL0F04oCWNMypt4RfiqSEpinGWXf8PyJhQ1dcnPgdj2nanzWU0z8mvGY1K6ZT8YPhME_7Chsc4zkVGB2dHeIK-BGAvi8DYkV8LvA/s1600-h/screen-12.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht7kMnYsgaZYhtC-YxgmAe83x7JUJ8w3sS9CsgyTDGL0F04oCWNMypt4RfiqSEpinGWXf8PyJhQ1dcnPgdj2nanzWU0z8mvGY1K6ZT8YPhME_7Chsc4zkVGB2dHeIK-BGAvi8DYkV8LvA/s320/screen-12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096545313993634" /></a><br /><br />13. Задаём параметры текстур для нашей развёртки. (очень важный момент, два дня бился чтоб понять). Это в той же закладке, что и в п.11 справа ( для тех-1, как для X, для тех-2 как для Y, для тех-3 как для Z<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-r42DbYG45uurUmBFEz0aks7NNqLV_X6D1g2dQZ13cXCU84U5Zz-Vi3yO9tM2H0irKbRsSS_PDmpSqfpMcS1YZD9h17errvM_Gy3Z-kcLoJFWBt1tygFuSMKlNqZZA0touT0khb8cT8/s1600-h/screen-13.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-r42DbYG45uurUmBFEz0aks7NNqLV_X6D1g2dQZ13cXCU84U5Zz-Vi3yO9tM2H0irKbRsSS_PDmpSqfpMcS1YZD9h17errvM_Gy3Z-kcLoJFWBt1tygFuSMKlNqZZA0touT0khb8cT8/s320/screen-13.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096547783256274" /></a><br /><br />14. Возвращаемся в режим редактирования нашего куба, делаем какую-то фигуру из него (моделирование в Блендере не входит в цель настоящего повествования). У меня получилась вот такая загогулина. По завершению выделяем всё (клавиша А).<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5T9niArCbAzhqA_b7H85F1JkjwlQ5H1-hNcfJiQPz1jIdEifYHoaLMgiJd8tgcS3iE7EzItIppq9907VRAaVnElXwDRd5pUEDn6fI7qtZBxyc60Wqan2zTxZg3ov3Z1AtgLsEa0LZBYI/s1600-h/screen-14.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5T9niArCbAzhqA_b7H85F1JkjwlQ5H1-hNcfJiQPz1jIdEifYHoaLMgiJd8tgcS3iE7EzItIppq9907VRAaVnElXwDRd5pUEDn6fI7qtZBxyc60Wqan2zTxZg3ov3Z1AtgLsEa0LZBYI/s320/screen-14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096552730775074" /></a><br /><br />15. Возвращаемся в вид UV/Image Editor, как по п.8, выставляем нижепоказанные установки, закладки и жмём BAKE.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikQX9RqhlY-_pOqmQQoks6xkKe4GzRw542sA27LUsao-lOGjgbcVjmF5-6B4CLQCbthX67_5R4rPrazxmdwMaginnhk3a-XWJVbu4acXmhyFTX3NjMbgmiiUpYhIqdfRGsbw9qgzqjM2o/s1600-h/screen-15.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikQX9RqhlY-_pOqmQQoks6xkKe4GzRw542sA27LUsao-lOGjgbcVjmF5-6B4CLQCbthX67_5R4rPrazxmdwMaginnhk3a-XWJVbu4acXmhyFTX3NjMbgmiiUpYhIqdfRGsbw9qgzqjM2o/s320/screen-15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096562805821842" /></a><br /><br />16. Получили радужную картинку, её то и надо загрузить в SL как текстуру. Но для начала сохранить (Image- Save As) в формате .tga. Потом переносим эту картинку из инвентаря в поле скульптурного прима. Получаем в итоге:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaN9OuIHaOOh8YVrFQEKlZGzyDTNdVEsKJku6pNcmjxpFTWDGp09XNX_9JbD7-4SRd5CccVOwzmDxr4gCEVWEd44pwb-iSMRdaLnaWCG6niGzE_aMRgDPD_P5zZjlh2RqfL8Osnh8GJE/s1600-h/screen-16.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaN9OuIHaOOh8YVrFQEKlZGzyDTNdVEsKJku6pNcmjxpFTWDGp09XNX_9JbD7-4SRd5CccVOwzmDxr4gCEVWEd44pwb-iSMRdaLnaWCG6niGzE_aMRgDPD_P5zZjlh2RqfL8Osnh8GJE/s320/screen-16.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5265096620657073730" /></a><br /><br />© <a href="http://dimmtorok.ucoz.ru/publ/1-1-0-1" target=_blank>dimm Torok</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com2tag:blogger.com,1999:blog-875702549263866709.post-67951566814280266242008-11-02T12:24:00.000-08:002008-11-02T12:35:37.280-08:00Простая настройка русских шрифтовУказанные ниже настройки помогают не только, когда русских букв не видно совсем, но и в случае, если они отображаются с чрезмерно большим расстоянием между символами.<br /><br /><span style="font-weight:bold;">Windows Client</span><br /><ul><br /><li>Запускаем Second Life</li><br /><li>Нажимаем Ctrl-Alt-D (Ctrl-Alt-Shift-D, если предыдущая комбинация занята другой программой), проверяем, что в главном меню, справа от пункта "Help", появился пункт ''Advanced''.</li><br /><li>Открываем пункт меню "Advanced", выбираем подпункт ''Debug Settings'', в появившемся окошке пишем "Font" и попадаем на первый параметр настройки шрифтов "FontMonospace" (если развернуть список, то следом можно обнаружить следующие параметры настройки шрифтов)</li><br /><li>По очереди присваиваем параметрам настройки нужные значения:</li><br /><li>FontMonospace → cour.ttf<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499845.png"><img style="cursor:pointer; cursor:hand;width: 347px; height: 213px;" src="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499845.png" border="0" alt="" /></a></li><br /><li>FontSansSerif → arial.ttf<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499851.png"><img style="cursor:pointer; cursor:hand;width: 347px; height: 213px;" src="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499851.png" border="0" alt="" /></a></li><br /><li>FontSansSerifBold → arialbd.ttf<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499856.png"><img style="cursor:pointer; cursor:hand;width: 347px; height: 213px;" src="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499856.png" border="0" alt="" /></a></li><br /><li>FontSansSerifFallback → arialuni.ttf<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499861.png"><img style="cursor:pointer; cursor:hand;width: 347px; height: 213px;" src="http://www.slcontent.ru/ipb/uploads/monthly_11_2008/post-1-1225499861.png" border="0" alt="" /></a></li><br /><li>Закрываем Second Life, запускаем Second Life</li></ul><br /><span style="font-weight:bold;">Linux Client</span><br />Линукс клиент настроить еще проще. В той папке, куда вы распаковали файлы клиента, находится символическая ссылка на файл unicode.ttf. Кстати, иногда она может указывать на несуществующий файл, что может являться источником проблем. Пересоздайте ссылку на файл шрифта, который вам подходит, например, можно взять шрифт arial.ttf из Windows\Fonts. Всё.<br /><br />© <a href="http://www.slcontent.ru/ipb/index.php?showtopic=538">SOb Zemlja</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-82428606140544687392008-10-31T02:23:00.000-07:002008-10-31T02:31:39.188-07:00Основы строительстваНу что же, все взяли блокноты и ручки?<br />Начнём наш урок, посвященный азам строительства.<br /><br />Всё, что вы видите вокруг, все предметы: здания, средства передвежения, различные украшения, вплоть до ювелирных, а так же предметы одежды - все сделаны из примитивных объектов, которые в дальнейшем мы будет называть просто ПРИМЫ (prim).<br /><br />Итак, чтобы начать что-то строить, вам необходимо самое главное - желание строить!<br />Хочу отметить, что строить лучше в так называемых "песочницах" (sandbox), так как в них разрешенное время существования объектов превышает несколько часов (иногда безгранично) - всё зависит лишь от владельца земли.<br />Ну, раз мы оказались как раз в песочнице, то давайте сразу что-нибудь построим! Есть 2 простых варианта создать объект:<br />1 - нажать кнопку "Build" в нижнем меню, по умолчанию сразу будет активна кнопка "Create" (волшебная палочка);<br />2 - правой кнопкой мыши щёлкнуть по земле, затем в появившемся круглом меню нажать "Create".<br />Затем кликнуть "волшебной палочкой" по месту, где вы хотите создать прим.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build1.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build1.jpg" border="0" alt="" /></a><br /><br /> <br />*примечание: в меню строительства 5 кнопок: Focus - движение камеры обзора, Move - ручное перемещение объекта, Edit - редактирование объекта, Create - создание прима, Land - изменение параметров земли (только у тех, у кого есть такие права).<br />*в режиме редактора есть значения: Position - основное редактирование объекта, его движение, Rotate - крутить, Stretch - растягивать, Select Texture - обработка определённой текстуры, Edit linked parts - обработка определённого прима слинкованного объекта<br />Давайте каждый из нас создаст по приму.<br />По умолчанию всегда создаётся куб.<br />Примы могут принимать следущие формы: куб (Box), цилиндр (Cylinder), призма (Prism), шар (Sphere), тор (Torus), туба (Tube), кольцо (Ring), скульптурный прим (Sculpted).<br />Все примы можно редактировать.<br />Нажмите кнопку "More>>" в меню строительства, затем выберите закладку "Object".<br />В левой части меню мы можем регулировать расположение прима по осям X,Y,Z (Position), изменять его размеры (Size) и вращать по осям (Rotation).<br />Так же можно выбрать материал (Material) своего прима - по крайней мере каждый материал производит определённый звук, если по нему ударить)))<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build2.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build2.jpg" border="0" alt="" /></a><br /><br />*в закладке Object есть несколько параметров под заголовком Edit object parameters<br />Locked - не изменить тогда объект, Physical - становится физическим, Temporary - временный (исчезнет сам через минутку), Phantom - "призрак" - то есть через него можно будет пройти<br />"вес" объекта зависит от его размера и от материала, из которого ты его "сделал"<br />Рассмотрим правую часть меню:<br />Нажав кнопку "Building Block Type" мы можем изменить форму прима на любую другую.<br />Однако давайте пока разберёмся с кубом!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build3.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build3.jpg" border="0" alt="" /></a><br /><br />Все сделали свои примы в форме куба? Поехали дальше!<br />Дальше мы видим "Path Cut Begin and End". Буквально "Резка от начала (B) до конца (E)".<br />Увеличивая параметр B (начало) или уменьшая E (конец) - мы фактически вырезаем часть прима.<br />Чтобы снова сделать его целым - вручную проставьте значения "0" для B и "1" для E.<br />Продолжим?<br />"Hollow" - отверстие, полость. Чем больше вы поставите значение, тем больше будет отверстие внутри прима. Максимальное значение - 95. Этот параметр есть у примов всех форм.<br />"Hollow Shape" - отверстие (полость) может быть разной формы: круглой, квадратной, треугольной. Измените - увидите.<br />Дальше начинается самое интересное!<br />"Twist Begin and End" - закручивание начала (B)и конца (E).<br />Максимальное значение - 180 градусов. Но если закрутить начало (B) на 180 градусов в одну сторону, а конец (E) - на 180 градусов в другую, т.е. поставить значение "-180", то в итоге мы получим все 360!<br />Frige Fride: Примы типа торуса допускают твист от -360 до 360<br />Головокружительно, не так ли? :) Это удобно использовать при создании чего-то элегантного...<br />Вернём все значения к "0", чтобы разобраться в остальных параметрах. Готовы?<br />"Taper" - сведение сторон по оси X и Y друг к другу.<br />Сведя их вплотную (крайние значения "1" и "-1") можно получить пирамиду или что-нибудь другое. Хотя и не всегда требуется сводить их вплотную - иногда достаточно минимального "искривления"<br />Выравняли на нули? Поехали дальше!<br />"Top Shear" - "сдвиг" паралельных сторон по оси X и Y.<br />Ну а теперь можете поиздеваться над примом - крутите и режьте как вам угодно)))<br />Итак, у куба (Box), цилиндра (Cylinder) и призмы (Prism) параметры редактирования, которые вы сейчас подробно рассмотрели, ОДИНАКОВЫ.<br />У шара (Sphere) - меньше.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build4.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build4.jpg" border="0" alt="" /></a><br /><br />"Вращение" (Twist) начала и конца - выглядит так, будто вы его завязываете в узел.<br />"Dimple Begin and End" - "Впадина" - фактически это "резка", но только по другой оси.<br />Кстати, "треугольная" полость в шаре даёт интересный результат!<br />Перейдём к следующему типам примов. Торус (Torus), Труба (Tube), Кольцо (Ring). <br />На мой взгляд - это самые интересные примы)))<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build5.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build5.jpg" border="0" alt="" /></a><br /><br />Рассмотрим Торус, его специфические параметры<br />"Hole Size" - "размер отверстия" - Уменьшение числа X уменьшает высоту прима, Изменение числа Y меняет радиус внутреннего отверстия - увеличивая Y, вы увеличиваете боковые стенки прима (и наоборот).<br />"Profile Cut Begin and End" - "вырезание внутренней (B) и/или внешней (E) стороны прима".<br />Красивый вид резки)))<br />"Taper" при изменении значения X уменьшает высоту одного из концов прима, при изменении занчения Y - толщину (значение может быть как отрицательным, так и положительным).<br />"Radius Delta" - различие радиуса начала прима от его конца. То есть прим получается "завёрнутым" вовнутрь (значение может быть как отрицательным, так и положительным).<br />"Revolutions" - создание спирали. Максимальное количество полных витков - 4. Минимальное соответственно - 1.<br />При изменении параметра Skew в отрицательную сторону, Спираль может создаваться закрученной всегда не только в одну сторону.<br />В сочетаниями с другими параметрами "Revolutions" может дать нам пружину, штопор или ещё какую-нибудь "финтифлюшку", которой вы сами придумаете имя.<br />Теперь создайте свежий прим Торуса (тубы или кольца) и закрутите его с помощью "Twist Begin and End". Интересный получается результат))<br />Если закрутить B и E в обратных направлениях (360 и -360), то получим полноценный четырёхлопостной винт!<br />Итак. Торус, Туба и Кольцо имеют одинаковые параметры. Если вы поменяете тип прима (Building Block Type) на другой тип (торус, туба, кольцо), то увидите, что слегка изменяется только форма прима. Параметры объектов остаются прежними.<br />Кстати, если вы переключите тип на другой, с более "бедной" палитрой параметров объекта, то настройки первоначального могут "обнулиться".<br />Так. А теперь давайте что-нибудь построим! Ну например стул.<br />Создайте ножку стула. Любую: из куба, цилиндра... Уменьшите её стороны (X и Y) и увеличьте высоту (Z) в параметре (Size).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build6.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build6.jpg" border="0" alt="" /></a><br /><br />Все параметры задаются в метрах, так что прикиньте сами какой высоты и размера будет стул.<br />Двигайте ножку так, чтобы она нормально стояла на земле (ну или слегка висела в воздухе). Постарайтесь её не потерять))<br />Чтобы не создавать заново вторую (третью и четвёртую) ножки, можно всего лишь ЗАЖАВ (и удерживая) SHIFT, слегка подвинуть ножку влево или вправо (можно и вверх, но сейчас это не требуется).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build7.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build7.jpg" border="0" alt="" /></a><br /><br />Вот у вас и получилась копия!!! Подвиньте её на нужное расстояние.<br />Теперь, чтобы скопировать сразу две ножки, зажав SHIFT, кликните по второй. После того, как у вас выделены 2 ножки - копируете, зажав SHIFT их в сторону на нужное расстояние.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build8.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build8.jpg" border="0" alt="" /></a><br /><br />Готовы ножки? Сделаем сиденье! Создадим куб. Изменим до нужной величины длину-ширину-высоту и подвинем её, поставив на ножки.<br />Готово? Чтобы собрать объект воедино, соединить между собой примы, мы их "слинкуем"! Сначала SHIFT-ом выделим ВСЕ свои примы, которые надо "склеить". "Склеивание" выполняется через верхнее меню Tools -> Link (или нажатием Ctrl+L).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build9.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build9.jpg" border="0" alt="" /></a><br /><br />Кстати, выделять для линковки можно просто мышью, только надо быть уверенным, что в "объединение" не попадут другие, чужие объекты.<br />*SOb Zemlja: чтобы не попали, в меню Tools можно отметить пункт "Select only my objects"<br /><br />Присядьте теперь на своё творение! Надо увеличить или уменьшить стул? Нет проблем! Встаньте с него. А теперь , зажав и удерживая CTRL+SHIFT подвигайте за один из белых маркеров. Меняется размер объекта целиком.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build10.jpg"><img style="cursor:pointer; cursor:hand;width: 512px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build10.jpg" border="0" alt="" /></a><br /><br />Максимальный размер прима - 10 метров. Минимальный - 0.01 метра. Соответственно увеличить "слинкованный" объект можно до тех пор пока один из примов не достигнет максимального размера - 10 метров, уменьшить - пока один из составляющих примов не достигнет 0.01 метра.<br />"Link" срабатывает для объектов, находящихся между собой на расстоянии до 30 метров. Максимальное количество примов при "линковке" - 256.<br />Итак... У нас получилась табуретка. В принципе можно создать новый прим, чтобы сделать спинку стула. А можно скопировать и развернуть сиденье.<br />Чтобы "разлинковать" объект - нажмём в верхнем меню Tools -> Unlink (либо Ctrl+Shift+L).<br />Все разлинковали?<br />Скопируем сиденье стула вверх. А теперь, Зажав и удерживая CTRL, повернём по нужной оси так, чтобы получилась спинка! Теперь, двигая спинку по осям, поставим её на место.<br /><span style="font-style:italic;">*SOb Zemlja:</span> при строительстве сложных объектов лучше менять размеры прима, чем лишний раз его вращать. Не развёрнутый прим легче ровнять, проще считать в уме положение и размеры, проще размещать на нём текстуру.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dimmtorok.ucoz.ru/Lekcia_building/build11.jpg"><img style="cursor:pointer; cursor:hand;width: 1024px; height: 512px;" src="http://www.dimmtorok.ucoz.ru/Lekcia_building/build11.jpg" border="0" alt="" /></a><br /><br />Чтобы увеличить сторону объекта - зажать и удерживать CTRL+SHIFT - я растянуть один из цветных квадратиков в нужное направление!<br />Получилось? Теперь можно снова "слинковать" стул! Присядем? :)<br />Итак, ещё немного о строительстве. Можно строить, двигая предметы "на глаз", а можно изменять необходимые знчения в строительном меню вручную.<br />Если двигать объект по какой либо оси (т.е. левая кнопка мыши" у вас зажата при этом), то чем дальше мы отведём от оси мышь, тем с большим округлением будет объект перемещаться по оси (например на каждые 0.5 метра или больше).<br />То же самое происходит, если мы "тянем" объект, зажав CTRL+SHIFT. Чем дальше отводится мышь от оси движения, тем с большим шагом происходит изменение.<br />При линковке последний выделенный прим становится "главным", т.е. именно его параметры мы будем видеть из всего объекта.<br />Чтобы сделать "главным" нужный прим, надо выделив весь объект в "неслинкованном" состоянии, щёлкнуть, зажав SHIFT, по необходимому приму (он отделяется от общего объекта), а потом снова нажимаем по нему с SHIFT-ом. Можно линковать!<br />последнее тогда: в режиме редактирования в закладе General (или щёлкнув дважды по объекту в инвентаре) можно: Allow anyone to move - все смогут двигать твой объект, Allow anyone to copy - смогут каопировать его к себе в инвентарь, For Sale - ты сможешь установить на него цену - может кто-нибудь купит.<br /> <br /> <br />Спасибо Омону и Собу!!!<br /><br />© <a href="http://dimmtorok.ucoz.ru/news/2008-09-09-58">Omon Rau, SOb Zemlja, dimm Torok</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-37757458910738171452008-10-31T00:20:00.000-07:002008-10-31T00:42:28.887-07:00Режим Flycam с мышкойДля съёмки Machinima в Second Life сделан специальный режим — Flycam. В этом режиме камера перемещается отдельно от аватара и как бы летает над снимаемой местностью.<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/SYooU4UNej0&color1=0xb1b1b1&color2=0xcfcfcf&hl=ru&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/SYooU4UNej0&color1=0xb1b1b1&color2=0xcfcfcf&hl=ru&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br /><br />Одно «но» — режим рассчитан на управление джойстиком, в крайнем случае манипулятором Space Navigator. Попробуем заставить его работать с мышкой (в моём случае с <a href="http://www.slcontent.ru/ipb/index.php?showtopic=86">трекболом</a>).<br /><br />Т.к. без джойстика режим Flycam просто не активируется, нам нужно добавить в систему джойстик. Мы добавим эмулятор. После недолгих поисков я остановился на <span style="font-weight:bold;"><a href="http://personne.newmail.ru/PPJoystick/PPJoySetup.zip">PPJoystick</a></span>. Штука, судя по <a href="http://forum.wbfree.net/forums/showthread.php?p=488230#post488230">форуму</a>, проверенная, к тому же периодически обновляется. Качаем, распаковываем, запускаем Setup.exe, соглашаемся установить неподписанные драйверы. В системе появится устройство Parallel Port Joystick bus.<br /><br />После установки программы скорее всего откроется окно с ярлыками настройки. Если не открылось, открываем: Пуск → Программы → Parallel Port Joystick → Configure Joysticks.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/add-j-01.png"><img style="cursor:pointer; cursor:hand;width: 564px; height: 565px;" src="http://www.slcontent.ru/files/images/add-j-01.png" border="0" alt="" /></a><br /><br />Нажимаем Add.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/add-j-02.png"><img style="cursor:pointer; cursor:hand;width: 462px; height: 343px;" src="http://www.slcontent.ru/files/images/add-j-02.png" border="0" alt="" /></a><br /><br />Ещё раз.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/add-j-03.png"><img style="cursor:pointer; cursor:hand;width: 564px; height: 565px;" src="http://www.slcontent.ru/files/images/add-j-03.png" border="0" alt="" /></a><br /><br /><br />Проверяем, что появился PPJoy Virtual joystick 1, нажимаем Done.<br /><br />В папке, откуда мы запускали setup.exe, лежит программа PPMouse.exe, собственно она занимается переводом движений мыши в команды джойстика. Запускам и настраиваем соответствие движений мыши осям джойстика. Всего в данном эмуляторе мы можем настроить 4 «оси»: наклон вперёд-назад, наклон вправо-влево, сдвиг вверх-вниз, и вращение.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/ppmouse-01.png"><img style="cursor:pointer; cursor:hand;width: 756px; height: 533px;" src="http://www.slcontent.ru/files/images/ppmouse-01.png" border="0" alt="" /></a><br /><br />Движение мыши горизонтально будет отображаться на ось 0, с зажатым Shift — на ось 3, при этом движение по оси 0 будет продолжаться.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/ppmouse-02.png"><img style="cursor:pointer; cursor:hand;width: 756px; height: 533px;" src="http://www.slcontent.ru/files/images/ppmouse-02.png" border="0" alt="" /></a><br /><br />Движение мыши вертикально будет отображаться на ось 1, с зажатым Shift — на ось 2, при этом движение по оси 1 будет остановлено (условие 1: ни один Shift не должен быть нажат).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/ppmouse-03.png"><img style="cursor:pointer; cursor:hand;width: 756px; height: 533px;" src="http://www.slcontent.ru/files/images/ppmouse-03.png" border="0" alt="" /></a><br /><br />Вращение колеса мыши сбрасываем.<br /><br />На закладке Centering (сброс позиции осей по центру) проверям, чтобы в первых двух строчках фигурировал только LAlt, ненужные кнопки можно удалить крестиком. Для назначения — нажать на кнопку в программе потом на кнопку на клавиатуре.<br />На закладке Test Joystick можно посмотреть, как двигается джойстик, параметры на ней лучше во внимание не принимать.<br />Нажимаем Save Config и задаём имя файлу конфигурации.<br />Запускаем Second Life (программа PPMouse должна быть открыта, т.к. фактически она и есть эмулятор). Заходим в Edit → Preferences → Input & Camera → Joystick Setup, настраиваем всё по картинке:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.slcontent.ru/files/images/joy-sl-01.png"><img style="cursor:pointer; cursor:hand;width: 551px; height: 501px;" src="http://www.slcontent.ru/files/images/joy-sl-01.png" border="0" alt="" /></a><br /><br /><ul><li>Ось X — движение камеры влево-вправо, не поворот!</li><br /><li>Ось Y — движение камеры вверх-вниз, не поворот!</li><br /><li>Ось Z — движение камеры вперёд-назад, не Zoom!</li><br /><li>Yaw — поворот камеры влево вправо</li><br /><li>Pitch — поворот камеры вверх-вниз</li><br /><li>Zoom — и в Африке зум (наезд камерой, увеличение)</li><br /><li>Roll — не понял</li></ul><br /><br />Значение Scale, применительно к данному описанию — чувствительность мыши. Скорее всего придётся подстраивать на каждой конкретной системе. Менять имеет смысл с шагом не более 0.1.<br /><br />К сожалению наши возможности при использовании мышки — любые 4 пункта из 7.<br /><br />Внимательнее с галочками. Из важного: Auto Level — отвечает за автоматическое выравнивание «крена» после разворотов камеры; Feathering — «тяжесть» камеры, в крайнем левом положении камера наиболее инерционна, все движения неспешные и плавные, в крайнем правом… лучше не пробовать, истина, в нашем случае, где-то ближе к левому положению.<br /><br />Теперь можно попробовать режим Flycam. Жмём Alt-Shift-F, сбрасываем положение осей джойстика нажатием на левый Alt, двигаем мышь и смотрим, что получилось.<br /><br />© <a href="http://www.slcontent.ru/ipb/index.php?showtopic=439" target=_blank>SOb Zemlja</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-66838405911847889322008-10-30T08:00:00.000-07:002008-10-30T10:07:44.889-07:00Работа с камеройДля того, чтобы снимать по-настоящему хорошие ролики, нужно научиться правильно работать с камерой, точно ее позиционировать, перемещать и т.п., в том числе и отдельно от аватара при помощи джойстика, что позволяет снимать как бы со стороны, выполняя те или иные действия.<br /><br />Для начала давайте рассмотрим основные настройки камеры и отображения, которые нам могут пригодиться. Во-первых, давайте снимем ограничения с радиуса удаления камеры непосредственно от аватара. Для этого войдя в расширенное меню (<span style="font-style: italic;">Advanced Menu</span>) найдем пункт <span style="font-style: italic;">Disable Camera Constraints</span> и влючем его.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtqkLmvpOggijezCnaZUC1acg-363j3gyxitrzcJDn_uGy6fDu-yQkLYbu2blF6CYmGIQYDYj-5Uw1PASaoRRiZj5RKRiCHNzmhJl3SSSeGpQUNcMKAXxhmwL6N4W29elU38Aa5GlQERo/s1600-h/screen-1.jpg"><img style="cursor: pointer; width: 210px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtqkLmvpOggijezCnaZUC1acg-363j3gyxitrzcJDn_uGy6fDu-yQkLYbu2blF6CYmGIQYDYj-5Uw1PASaoRRiZj5RKRiCHNzmhJl3SSSeGpQUNcMKAXxhmwL6N4W29elU38Aa5GlQERo/s400/screen-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5262970940548535746" border="0" /></a><br /><br />Теперь ваша камера может удаляться от аватара настолько, насколько позволяет настройка окружающей видимости (<span style="font-style: italic;">Ctrl-P -> Graphics -> Draw Distance</span>). Теперь вы можете, используя клавишу <span style="font-style: italic;">Alt,</span> одну или в комбинациях с <span style="font-style: italic;">Ctrl</span> и <span style="font-style: italic;">Shift</span>, нажав и удерживая левую кнопку мыши, перемещать камеру в довольно-таки широких пределах. Рекомендую потренироваться перемещать ее плавно и относительно медленно.<br /><br />Неплохие результаты дает состояние <span style="font-style: italic;">mouselook</span>, если отключить "прицел". Делается это также через расширенное меню:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3u7P17IMARsFZYHKMKihoX4pTPP04XOsLibLF5zs8TinoNEv-ksXOprxp_XcBQpODvvvG8mHryBYBIfOivaCAqBmwBYSx41fOOaAWUvdmuugisMX4RLP4JltQDjCczXDpjAUSxc0YWc/s1600-h/screen-2.jpg"><img style="cursor: pointer; width: 209px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3u7P17IMARsFZYHKMKihoX4pTPP04XOsLibLF5zs8TinoNEv-ksXOprxp_XcBQpODvvvG8mHryBYBIfOivaCAqBmwBYSx41fOOaAWUvdmuugisMX4RLP4JltQDjCczXDpjAUSxc0YWc/s400/screen-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5262971004658482434" border="0" /></a><br /><br />Таким образом, находясь в режиме видения отпервого лица, вы можете, передвигая аватар, осуществлять плавные движения камеры, наезд и отъезд, боковое смещение. Такое движение камеры хорошо либо при панорамировании, либо при съемке движущихся с небольшой скоростью объектов.<br /><br />Однако клиент Second Life обладает встроенным механизмом перемещения камеры отдельно от аватара, причем, аватар может при этом жить самостоятельной жизнью - камера становится полностью независимой. Для управления камерой в этом режиме вам потребуется джойстик. Впрочем, можно обходиться и без него, выставив камеру в позицию и "отвязав" ее от аватара, если нужно заснять какие-либо его действия. Но с джойтиком куда удобнее. Включается этот режим достаточно просто:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqYnZ59xlQVNGs9RGWf4GuMQAoOPnJqUckqmxpoAJM8W-GqMipXavltOKmQgQtxipsVw_SSFOzbrooknlQPonJb22gixTGL1oh6LyNp66HAnx5Kh9jctzDfFEzJ2OG-o8HUKhEdH_WlM/s1600-h/screen-3.jpg"><img style="cursor: pointer; width: 161px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqYnZ59xlQVNGs9RGWf4GuMQAoOPnJqUckqmxpoAJM8W-GqMipXavltOKmQgQtxipsVw_SSFOzbrooknlQPonJb22gixTGL1oh6LyNp66HAnx5Kh9jctzDfFEzJ2OG-o8HUKhEdH_WlM/s400/screen-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5262971061095642578" border="0" /></a><br /><br />Однако, следует помнить, что до того, как воспользоваться этим режимом вы должны разрешить использование джойстика в настройках: <span style="font-style: italic;">Ctrl-P -> Input & Camera -> Joystick Setup -> Enable Joystick</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyUMdBhOHFjZSMMxLbzEoIexguZfh_dsPg8iWVAqCznRu394KtlyJGg-HabpnzJsTBisnRlgWbG-q2ae3RhC9dzLUKMmPR-nslV-UQsEJEGUg6Ww90tmnB4U35j_kL8hFPczmjMCB2X_g/s1600-h/screen-4.jpg"><img style="cursor: pointer; width: 400px; height: 277px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyUMdBhOHFjZSMMxLbzEoIexguZfh_dsPg8iWVAqCznRu394KtlyJGg-HabpnzJsTBisnRlgWbG-q2ae3RhC9dzLUKMmPR-nslV-UQsEJEGUg6Ww90tmnB4U35j_kL8hFPczmjMCB2X_g/s400/screen-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5262990631444269778" border="0" /></a><br /><br />Если вы сразу пошевелите джойстиком, вы заметите, что ваш аватар начинает двигаться. При помощи выставления коэффициентов по осям подберите нужные параметры конкретно для вашего джойстика, иными словами, откалибруйте его.<br /><br />Теперь, при нажатии комбинации <span style="font-style: italic;">Alt-Shift-F</span> камера перейдет в независимый режим и будет управляться только с джойстика. Изменяя значения коэффициентов по осям вы можете регулировать скорость отклика камеры на отклонения джойстика, а также глубину этих отклонений.<br /><br />Также рекомендую поиграться с этим режимом для того, чтобы набить руку и действовать точно и уверенно. К сожалению, без должной подготовки вам не удастся добиться устойчивой моторики ваших мышц, поэтому не пренебрегайте тренировкой.<br /><br />Более подробно про настройку различных джойстиков и режим FlyCam можно почитать <a href="http://wiki.secondlife.com/wiki/Flycam">в официальной вики от липедоидов</a>, но, к сожалению, на английском языке.<br /><br />Итак, пока вы осваиваетесь в управлении камерой, я напишу цикл статей о том, как же выбрать подходящий план, как снимать кадрами (кадром в кино считается короткое законченое действие одного плана), как осуществлять монтаж при помощи программы <span style="font-style: italic;">Sony Vegas</span>, а также как подобрать музыкальное сопровождение и как записать и наложить озвучку. Маленьким бонусом будет инструкция по использованию <span style="font-style: italic;">Macromedia Encoder'a</span> для того, чтобы создавать файлы формата <span style="font-style: italic;">FLV</span> высокого графического качества, чтобы ваши ролики выглядели на все сто.<br /><br /><span style="font-style: italic;">Manoul Carnell</span>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com0tag:blogger.com,1999:blog-875702549263866709.post-47715581066743446202008-10-30T04:53:00.000-07:002008-10-30T04:59:59.251-07:00Как снимать видеоролики в Second Life при помощи программы FRAPSПроцесс съёмки программой FRAPS прост до невозможности. Но есть несколько моментов, которые помогут вам более качественно снять Ваш видеоролик. По порядку...<br /> <br /> 1. Скачиваем и устанавливаем программу FRAPS. Можно <a href="http://depositfiles.com/files/mxcgm8mye">вот здесь</a>, но можете поискать более продвинутые версии на просторах интернета. <a href="http://www.fraps.com/setup.exe">Ссылка с официального сайта</a>, но в той версии можно снимать отрывки не более 30 секунд.<br /> <br /> 2. Запускаем Second Life, думаю уже многие научились это делать))).<br /> <br /> 3. Запускаем FRAPS.<br /> <br /> 4. Настройки минимальные, нужно всего лишь в закладке MOVIES:<br /> -выбрать папку, куда будут сохраняться Ваши отснятые .avi-файлы (показано стрелочкой на рисунке);<br /> -выбрать клавишу с помощь которой будет стартовать и останавливаться съёмка (у меня это F9, показано на рисунке)<br /> -и первая небольшая хитрость, поставить галочку в поле "NO CURSOR". Если стоит эта галочка, то на снятых эпизодах не будет виден курсор от мыши. (всё это также показано на рисунке ниже).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Fraps1.jpg"><img style="cursor:pointer; cursor:hand;width: 603px; height: 436px;" src="http://dimmtorok.ucoz.ru/Fraps1.jpg" border="0" alt="" /></a><br /><br />5. Скидываете FRAPS значком свернуть. Продолжаете наслаждаться виртуальным миром Second Life. И вдруг, Вам захотелось что-то запечатлеть, например какой-то интересный момент для конкурса машинимы. Просто нажимаете кнопку старта записи (у меня F9). Остановка записи выполняется той же клавишей. Видите как всё просто?<br /> <br /> 6. Каждый эпизод (с момента старта и до остановки) записывается отдельным .avi-файлом (с датой и времени съёмки в названии этого файла) в папке, которую Вы указали при настройке.<br /> <br /> 7. Должен предупредить, что записаные файлы будут достаточно большими по объёму, так что небольшой совет - не старайтесь снимать длинные эпизоды.<br /> <br /> 8. Как отключить показ имён и групп над аватарами? В клиенте в меню настроек (ctrl+P) в закладке общие (General) убрать галочки в разделе "Show names"<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dimmtorok.ucoz.ru/Fraps2.jpg"><img style="cursor:pointer; cursor:hand;width: 555px; height: 412px;" src="http://dimmtorok.ucoz.ru/Fraps2.jpg" border="0" alt="" /></a><br /><br /> 9. Как отключить панель чата? Нажать ESC, включение панели чата - ENTER<br /> <br /> 10. Как включить полноэкранный режим? Нажать комбинацию клавиш Alt+Enter.<br /> <br /> 11. Как отключить показ нижнего меню? В верхнем меню в закладке ВИД (VIEW) снять выделение в строчке Toolbar.<br /> <br /> 12. Как отключить верхнее меню? Комбинацией клавиш ctrl+alt-F1, этой же комбинацией и обратно включается.<br /> <br /> <br />Применяя пункты 8-12 вы можете получить чистую картинку без ненужного для ролика мусора на экране.<br /> <br />Всем удачи!<br /><br />© <a href="http://dimmtorok.ucoz.ru/publ/1-1-0-6" target=_blank>dimm Torok</a>Manoulhttp://www.blogger.com/profile/04440949222061140078noreply@blogger.com1