16:28 

Как создать шимеджика, разбор действий

Shimeji
Предлагаю ещё раз разобрать тему «Как нарисовать своего шимеджика». Возьмем для примера шимеджики Squalo_01 из Katekyo Hitman Reborn и Byakuya_01 из Bleach.
Попробуем разобрать файлы в папке conf. Возьмем английскую версию из shimeji-ee, так будет проще =)
Открыть xml файл можно, используя, например, Notepad++. Или любой браузер, но он не позволит посмотреть нумерацию строк и не позволит редактировать файл. Поэтому я рекомендую использовать Notepad++
Начнем с файла actions.xml или 動作.xml. Это тот файл, который больше весит. В нем описано каким образом шимеджик выполняет различные действия, то есть какие изображения он использует для этого и каким образом эти изображения перемещаются. Надеюсь, в формулировке я не ошиблась =).
Изображение обычного шимеджика имеет 128 пикселей в высоту и столько же в длину. Если требуется изображене другого размера, придется корректировать файл с настройками.
Несколько первых строчек выглядит так:

Разбираться с настройкой всех этих действий не является сегодняшней задачей, если кому-нибудь интересно, можно посмотреть в прошлом посте на тему рисования, там есть ссылка на урок и туториалы с DA. Может быть, когда-нибудь разберем и их, а на сегодня пока рассмотрим какие действия выполняет и какие изображения использует простой шимеджик, с программированием которого автор не мучился =)
Некоторые моменты с программированием, однако, я постараюсь описать, если вспомню какие-нибудь интересные особенности.

Первое действие — Stand.
Использует файл shime1.png
Как понятно из названия, шимеджик здесь просто стоит.
Как это выглядит на примерах:
СкуалоБьякуя

Бьякуя отличается тем, что у него есть отдельное изображение, когда он смотрит в правую сторону. Зовется оно shime1-r.png. Насколько я понимаю, для такого эффекта исправлять в файле настроек ничего не нужно, просто дописать к имени нужного файла -r. Если отдельного изображения для правой стороны нет, будет использоваться зеркальное изображение обычного кадра.
Кстати, полезно: если Вы хотите, чтобы шимеджик не просто стоял, а, например, моргал, то код можно изменить, добавив ему дополнительных изображений.
Для примера, Джотто из того же Реборна, чтобы далеко не ходить. Автор выбрал для изображений другие имена, но суть от этого не меняется.
Вот так выглядит его файл actions:

Выглядит он примерно так:

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

Затем, действие Walk.
Использует изображения: shime1 - shime2 - shime1 - shime3
СкуалоБьякуя


Действие Run практически не отличается от Walk. Оно использует те же кадры, но их скорость в три раза выше (Duration="2") и изображение перемещается на 4 пикселя вместо двух при ходьбе (Velocity="-4,0")
Кстати, полезно: чтобы анимация бегущего шимеджика отличалась от анимации идущего, нужно просто прописать в этой строчке другие изображения.
Например, шимеджик Хром.
Код её действия Run выглядит так:

Здесь видно, что она использует кадры shime1shime47shime1shime1. Впрочем, имена не имеют особого значения, главное, чтобы в них не запутаться и правильно указать в файле настроек.
Вот как выглядит Хром идущая и Хром бегущая :D
WalkRun

Прошу прощения за то, что так много Реборна. Просто эти шимеджики мне кажутся вполне симпатичными, да и с ними я уже разбиралась когда-то, уже знаю их особенности и для примера долго искать не нужно =)
За ним идет Dash. Оно тоже практически не отличается от ходьбы или бега, но перемещает шимеджик на 8 пикселей с каждым кадром. Такой немного ускоренный бег. Скорость анимации такая же, как и при беге.

Следующее действие — Sit.
Использует изображение shime11.
СкуалоБьякуя

Как сделать так, чтобы шимеджик при этом ещё и моргал, вы уже знаете :)

Далее SitAndLookUp.
Использует shime26.
СкуалоБьякуя


SitAndLookAtMouse использует тот же кадр.
Насколько я понимаю, это изображение используется, когда курсор находится в верхней половине экрана. Когда курсор находится в нижней половине экрана, используется изображение shime11 (Condition="#{mascot.environment.cursor.y < mascot.environment.screen.height/2}")
Чаще всего шимеджик использует эти кадры после клика по третьей строчке меню и команды подойти к курсору.

SitAndSpinHeadAction состоит из последовательности shime26shime15shime26shime16shime28shime29shime11 и выглядит так:
СкуалоБьякуя

Эта анимация, насколько мне удалось выяснить, используется, когда шимеджик следит за курсором. Периодически он использует это действие, а затем снова переходит в состояние слежения за курсором.

SitWithLegsUp и SitWithLegsDown описывают сидячего шимеджика. Используют изображения shime30 и shime31 соответственно.
SitWithLegsUp выглядит так:
СкуалоБьякуя

А SitWithLegsDown так:
СкуалоБьякуя

Прошу обратить внимание, что файл shime31 также является частью анимации. Необходимо сделать такое изображение, чтобы оно хорошо смотрелось само по себе и в анимации. Это на случай, если вы ничего не хотите исправлять в файле с настройками. Но ведь никто не запрещает сделать отдельное изображение для анимации, и отдельное для сидящего шимеджика, нужно только правильно всё указать =)

А вот и вышеупомянутая анимация — SitAndDangleLegs. Шимеджик сидит и болтает ногами. Конечно, можно сделать всё, что угодно, например, читающего книгу или пьющего чай.
Действие использует изображения shime31shime32shime33shime31 и выглядит следующим образом:
СкуалоБьякуя

Совершив это действие несколько раз, шимеджик встает и перестаёт следить за курсором.

Затем, Sprawl. Состоит из изображения shime21.
СкуалоБьякуя

Это изображение используется ещё в двух действиях — когда шимеджик приземляется на землю и когда он ползает.

Довольно интересное действие Creep. shime20shime20shime21shime21shime21
Кадры одни и те же, но у них разная продолжительность и расстояние, на которое шимеджик перемещается. Анимация Бьякуи выглядит так:

Я не стану делать анимацию его перемещения, но сделаю её для Скуало. Первое изображение, shime20 находится на месте и никуда не перемещается. Его длительность ~1.12сек. Изображения shime21 длятся ~0.16сек, первые два перемещают картинку на 8 пикселей, третье на четыре. (Хотя в файле написано 2 и 1, на мой взгляд, каждое значение здесь нужно увеличивать в четыре раза). Последнее изображение shime20 длится 0.96сек и также остается на месте.
Выглядит Скуало при этом примерно вот так:

Действие повторяется пока ему не надоест.

Мы закончили с действиями, происходящими на земле, теперь переходим в воздух на потолок.
GrabCeiling описывает висящего на потолке шимеджика и использует для этого shime23.
СкуалоБьякуя

Прошу обратить внимание на то, что «потолок» находится примерно на уровне рук Скуало или Бьякуи. Часть головы при этом не видно. Не нужно рисовать руки у верхней границы изображения, думая, что этим краем оно крепится к потолку. Изображение обрезается как раз примерно на уровне нарисованных у этих шимеджиков рук. Голова становится видна тогда, когда шимеджик ползет по низу окна браузера, но при этом он цепляется за него руками, а не макушкой. Просто нарисуйте руки на том же уровне =)

ClimbCeiling. Шимеджик ползет у верхней границы экрана. shime25shime25shime23shime24shime24shime24shime23shime25.
Продолжительность показа изображения и расстояние, на которое при этом перемещается шимеджик можно посмотреть в файле с настройками.
СкуалоБьякуя


А теперь стены.
Действие GrabWall — цепляющийся за стенку шимеджик.
СкуалоБьякуя

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

ClimbWall это карабкающийся шимеджик. Как видно из файла настроек, это действие состоит из двух частей: когда шимеджик карабкается вверх и когда он спускается вниз. Используемые изображения: shime14shime14shime12shime13shime13shime13shime12shime14.
СкуалоБьякуя


Теперь действия с окошком браузера.
Начнем с FallWithIe.
Это действие описывается кадром shime36. Оно используется для «притягивания» окошка браузера к шимеджику.
СкуалоБьякуя

У Бьякуи хорошо видно где расположено при этом окно браузера. Для рисования этого кадра можно использовать картинки с Бьякуей в качестве основы, а можно просто выделить область под браузер самому. Угол окна при этом будет в точке (64; 64), то есть ровно по середине рисунка, если размеры изображения не менялись.

Действия WalkWithIe и RunWithIe используют одни и те же изображения, но с разной скоростью. Шимеджик бежит с окошком браузера.
Используются shime34shime35shime34shime36.
СкуалоБьякуя


ThrowIe это пинок окошка браузера. Как только шимеджит отнесет это окно достаточно далеко, он его ударяет и идет по своим делам дальше.
Изображение shime37
СкуалоБьякуя


С браузером закончили, переходим к шимеджику в воздухе.
Прыгающего на край окна шимеджика описывает Jumping. Это изображение shime22.
СкуалоБьякуя


Falling описывает падение персонажа. Используется при этом изображение shime4.
СкуалоБьякуя

Кстати, интересно: Вполне можно сделать так, чтобы при падении шимеджик дергал ногами или руками. Делается это примерно так же, как и моргание при спокойном положении.
Ещё интересно: присмотритесь, пожалуйста, к описанию этого действия:

Этот код расположен между 213 и 217 строками. В оригинальном файле этот кусочек выглядит так: 空気抵抗X="0.05" 空気抵抗Y="0.1" 重力="0.1". Первое значение — RegistanceX, второе — RegistanceY, третье и есть Gravity.
Там есть довольно интересный параметр Gravity="2". Если изменить его значение, то скорость, с которой персонаж падает на землю, изменится. Чем больше это значение, тем быстрее он падает. Однако, если поставить слишком маленькое значение, можно просто не дождаться, пока шимеджик появится в пределах видимости =) Не думаю, что стоит использовать меньше 0.5, хотя я ради эксперимента выставляла и 0.01. Получилась такая пушинка, которая довольно больно ударяется о землю даже при такой небольшой скорости падения.
Остальные два параметра влияют на расстояние, которое пролетает шимеджик, если его бросить вверх или в сторону. Больше 1 эти параметры ставить не рекомендую, значение больше 1 по y вообще привело к тому, что падения шимеджика я не дождалась.

Bouncing это приземление шимеджика на землю. Изображения: shime18shime19. Затем шимеджик встает, используется изображение shime1.
СкуалоБьякуя


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

Последний кадр, shime19, насколько я понимаю, описывает сам полет шимеджика по дуге. Поэтому тут он отсутствует, чтобы не путаться.
Кстати, параметр Gravity, используемый в действии Falling, здесь также влияет на скорость падения копии шимеджика.

Resisting это поведение шимеджика, когда его дежит курсор. Сначала он спокойно виси, затем начинает дергаться, останавливается, опять дергается и в итоге падает.
Это действие использует чередование кадров shime6, shime5 и shime1. Если у вас отдельное изображение для висящего на курсоре шимеджика, shime1 следует заменить на нужное имя.
В этом действии нет ничего сложного, советую просто подержать любого шимеджика, через несколько секунд он покажет эту анимацию =)

Почти закончили =)
Через несколько строчек кода можно найти описание действия можно найти описание действия PullUpShimeji1, состоящее из кадров shime1shime38shime39shime40shime41.

Затем одна из копий шимеджика использует анимацию Tripping.

Divide1 это ещё одно деление шимеджика, использующее изображения shime42shime43shime44shime45shime46.


Небольшой бонус тем, кто был с нам до конца: :)
Многие интересуются как сделать так, чтобы шимеджик не создавал свои копии, которые могут повесить систему, если их становится слишком много, а машина слабая. Давайте разберемся.
На этот раз нам потребуется файл behaviors.xml. Откройте его для редактирования и найдите описание действия SplitIntoTwo или 分裂する, если версия японская. Этот действие находится в 58 строке. В этой строке также есть параметр 頻度="10" или Frequency="50" (почему-то в оригинале и в переведенной версии значения отличаются). Этот параметр отвечает за частоту совершения действия. Чем больше значение, тем чаще шимеджик будет совершать данное действие. Если установить значение, равное 0, то шимеджик не будет самостоятельно его использовать. То есть, если вы хотите, чтобы шимеджик размножался чаще, нужно установить значение немного больше, а если хотите, чтобы он вообще не создавал своих копий, нужно установить значение, равное нулю.
На самом деле, количество копий одного шимеджика ограничено. Где это настраивается, я уже не помню, просто читала, что больше 25 копий, если память мне не изменяет, шимеджик самостоятельно не создает. Возможно, более изящным решением было бы ограничение числа его копий в этой настройке, но её ещё найти надо.
Добавлено:
Пишет Shimeji:
24.08.2012 в 08:17


хм, есть у него там ещё одно действие. 引っこ抜く, которое, похоже, как раз у меня и сработало сейчас. Его тоже занулить нужно. Попытка поставить 1000 у этих действий поочередно привела к тому, что начался быстрый процесс размножения... до 10 штук сначала одним способом, а затем вторым, что доказывает правильность найденного параметра. Теперь мне понятно, где была ошибка в первом эксперименте. Максимальное количество копий ограничено, похоже, как раз 10 штуками. Об ограничении я знала, но почему-то вбила себе в голову, что их может быть до 20. То есть, я спокойно сделала копий по максимуму, конечно, больше они не размножались.
Получается, 0 нужно поставить у действия 引っこ抜く и 分裂する, то есть у обоих, где есть строчка 条件="#{mascot.totalCount < 10}" (кажется, вот и ограничение нашлось. Попытка поставить 20 вместо 10 в одной строчке привела к тому, что шимеджиков вместо 10 стало 22. 22, а не 20, видимо, из-за быстрой скорости размножения. То есть, теоретически можно поставить в обоих строчках 1 (только в одной не пойдет, проверено) и будет максимум 1 копия. Либо 0 у обоих вероятностей.)
URL комментария

И в завершение, если после прочтения всего этого текста вопрос «Как создать своего шимеджика» так и остался не ясен: чтобы создать своего персонажа, вам нужно заменить изображения какого-либо шимеджика на свои. Действия, которые этот шимеджик совершает и какие изображения он при этом использует, мы описали, как настроить его поведение, если потребуется, тоже. Остальное — дело фантазии и терпения. Если останутся какие-нибудь вопросы, — задавайте, попробуем разобраться вместе =)

Вопрос: Помогло?
1. Да :)  56  (53.85%)
2. Нет :(  3  (2.88%)
3. Ниасилил :|  45  (43.27%)
Всего: 104
Всего проголосовало: 99

@темы: Shimeji, Вопросы и ответы, Как сделать шимеджика

URL
Комментарии
2012-07-17 в 02:25 

Здравствуйте.
Скажите, пожалуйста, где взять английскую версию файла с настройками "маленького друга"? Хочу самостоятельно поковыряться - добавить пару действий или подкорректировать время, но не понимаю иероглифы совершенно :(

URL
2012-07-17 в 17:10 

Shimeji
Гость, она есть на code.google.com, слева ссылка на Shimeji-ee_1.0.3_Mischievous.zip =)
там же есть Shimeji-ee_1.0.3_Calm.zip, но это версия, которая только ходит по панели задач и размножается =)

URL
2012-07-17 в 19:00 

Спасибо преогромное! Будем творить :)

URL
2012-07-18 в 15:40 

Shimeji
Гость, не за что =) удачи в создании экранных друзей =)

URL
2012-07-24 в 18:33 

Reyko32
Не хочу траву курить и других наркотиков, а хочу чесать за ушком добродушных котиков! (c)
Статья очень полезная. Как раз для начинающего шимеджестроителя
Shimeji, она есть на code.google.com, слева ссылка на Shimeji-ee_1.0.3_Mischievous.zip =) Спасибо за ссылку на исходники.

2012-07-24 в 22:05 

Shimeji
Reyko32, не за что )))
Рада, что кому-то это пригодилось =)

URL
2012-07-27 в 16:46 

Спасибо за информацию ^^ Создаю своего шимеджика. Всё получается. Только вот... я ленивая задница xD

URL
2012-07-27 в 20:33 

Shimeji
Гость, не за что =) удачи в создании =)
Только вот... я ленивая задница xD
с этим я помочь не могу, увы xD

URL
2012-07-29 в 14:47 

А где она я её скачала а там не то :depress:

URL
2012-07-29 в 17:53 

Shimeji
Гость, А где она я её скачала а там не то
не то это что?) и что скачали?) единственная ссылка здесь была на shimeji-ee, там что качается, то и скачивается =)

URL
2012-08-09 в 00:07 

Мой мозг как то отказывается воспринимать такое количество информации... :thnk::kto:Прям курсы юного программиста):bug: Придется все на практике пробовать, но в любом случае спасибо за информацию):vo:

URL
2012-08-09 в 15:50 

Shimeji
Гость, не за что ))) я представляю xD А сперва планировалось "Давайте посмотрим что можно настроить", но я слегка увлеклась :D

URL
2012-12-18 в 00:20 

Серпентария
меня всегда отвращал от фанфиков инстинкт сохранения души
Блин, мне пришлось перечитать это десять раз в течение двух недель, НО Я РАЗОБРАЛАСЬ
РАЗОБРАЛАСЬ, ФАК ЕА
СПАСИБО, Shimeji,
СПАСИБОСПАСИБОСПАСИБО

2012-12-24 в 19:42 

Shimeji
Дитя Лилии, оу... да не за что =) рада, что помогло =)
я там совсем не много меняла параметров, не уверена, что всё описать удалось, потому что вдруг выяснилось через какое-то время, что одно действие в самокопировании шимеджика всё-таки пропустила. Если что - пишите, разберемся =)

URL
2013-12-22 в 15:38 

спасибо, планирую сделать Сашку Грей .-.

URL
2014-02-22 в 11:32 

НейроКонструктор
Своровал вора у воров
Очень полезная информация. В принципе, я подозревала, что шимеджик создается как то примерно так и ваш пост устаканил понимание в моей голове. Буду пытаться.

2014-07-19 в 13:36 

Не подскажите, как делать картинки шимеджиков? Может их в какой-то программе надо делать? а то они в белых квадратиках бегают.

URL
2014-07-19 в 13:41 

Все. я разобрался) Спасибо, вам, за статью)

URL
2014-07-23 в 19:32 

Здравствуйте, я прочла эту статью, нарисовала все кадры. Но кода я запускаю шимеджи вылетает ошибка с надписью "Failled to load configuration files. See log for more details" вопрос : что с этим делать?

URL
2015-02-07 в 23:16 

как сделать чтобы право и лево работали ? о.о

URL
2015-02-15 в 00:50 

А можно сделать свою команду, ну чтоб он сделал сальто или ещё что-то там? А то они однообразные движения делают всё.

URL
2015-03-28 в 15:24 

Я нечего не поняла( что такое архив, что такое java. Я не разбираюсь в компьютерах...

URL
2016-05-09 в 00:36 

А в какой программе рисовать шимеджиков? Я пробовала в саи, но он получался пиксельный. Подскажите пожалуйста. :С

URL
2016-05-09 в 00:37 

А в какой программе рисовать шимеджиков?
Я пробовала в саи, но он получался пиксельный.
Подскажите пожалуйста. :С

URL
2016-06-04 в 15:01 

А можете подсказать как собственно изменить размер шимеджика? Чтобы он, например, 200х200 был а не 128?

URL
2016-06-06 в 03:47 

У меня есть один проблемный шимеджик.... Он не может делиться и следить за курсором. Точнее, за курсором он следит, но используется для этого одно из изображений анимации SitAndSpinHeadAction. Саму анимацию я никогда у этого шима не видела. Ещё никогда не замечала, чтоб он утаскивал окошко браузера (но меня это вполне устраивает, так как другие шимы делают это слишком часто) Пыталась полазать в настройках и исправить проблему с отсутствием деления. Нашла оба параметра. У одного действия было 0, а у второго - 50. Казалось бы, проблема найдена, но сколько бы я не меняла первый на число побольше, ничего не происходило. Наверное, мне бы удалось что-то понять, если бы настройки все были на английском, но.... Всё на японском. При этом изображения с анимациями присутствуют. Отсюда такой вопрос. Можно ли скопировать текст программ других шимеджика и вставить его в программу проблемного шима? Хотелось бы, чтоб он мог делать то же, что и другие шимы :з

URL
2016-06-06 в 04:04 

Есть, проблема решена! ~
Исправилось ещё несколько недочетов, которые не были описаны в предыдущем комментарии. Например, шим не залезал на "потолок" и сам не прыгал на окошко браузера. А если его поднять мышкой, он не сопротивлялся и падал, как остальные, а исчезал, после чего появлялся новый.
Если бы не эта статья, даже бы не подумал о попытке исправлении всего этого.
Спасибо большое! с:

URL
2016-07-12 в 11:18 

А где можно настроить так, что бы шимеджик мог работать с другим размером, а не только с 128?

URL
2016-07-12 в 12:49 

Гость, Возможно из-за неправильного размера, или же проблемы в коде.

URL
2016-07-30 в 15:20 

А где скачать программу на создания шимеджиков?

URL
   

Shimeji Collection

главная