Skip to content
This repository was archived by the owner on Aug 24, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ This is a Linux version of the popular desktop mascot program, Shimeji.

I appreciate any bug reports or suggestions. Use the issue tracker here or contact me directly on IRC (Rizon) where I'm called 'asdfman'.

Additions by Vertmo
===================
You can now add multiple Shimejis in the Shimejis directory (add the conf and img directories of the Shimeji inside the Shimejis/*yourshimejiname* directory), and start them using ./launch.sh *yourshimejiname*

Changelog
=========
Expand Down
File renamed without changes.
174 changes: 174 additions & 0 deletions Shimejis/bec-noir/conf/Behavior.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
<?xml version="1.0" encoding="UTF-8" ?>
<マスコット xmlns="http://www.group-finity.com/Mascot" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.group-finity.com/Mascot Mascot.xsd">

<行動リスト>

<!-- システムが使用する -->
<行動 名前="マウスの周りに集まる" 頻度="0">
<次の行動リスト 追加="false">
<行動参照 名前="座ってマウスのほうを見る" 頻度="1" />
</次の行動リスト>
</行動>

<行動 名前="座ってマウスのほうを見る" 頻度="0">
<次の行動リスト 追加="false">
<行動参照 名前="座ってマウスのほうを見る" 頻度="100" />
<行動参照 名前="座ってマウスのほうを見てたら首が回った" 頻度="10" />
<行動参照 名前="座って足をぶらぶらさせる" 頻度="1" />
</次の行動リスト>
</行動>

<行動 名前="座ってマウスのほうを見てたら首が回った" 頻度="5">
<次の行動リスト 追加="false">
<行動参照 名前="座ってマウスのほうを見る" 頻度="1" />
</次の行動リスト>
</行動>

<!-- システムが使用する -->
<行動 名前="落下する" 頻度="0" />

<!-- システムが使用する -->
<行動 名前="ドラッグされる" 頻度="0" />

<!-- システムが使用する -->
<行動 名前="投げられる" 頻度="0" />

<行動 名前="引っこ抜かれる" 頻度="0" />
<行動 名前="分裂した" 頻度="0" />

<!-- 地面に接しているとき -->
<条件 条件="#{mascot.environment.floor.isOn(mascot.anchor) || mascot.environment.activeIE.topBorder.isOn(mascot.anchor)}">
<行動 名前="立ってボーっとする" 頻度="200" />
<行動 名前="座ってボーっとする" 頻度="200">
<次の行動リスト 追加="true">
<行動参照 名前="座って足をぶらぶらさせる" 頻度="100" />
<行動参照 名前="寝そべってボーっとする" 頻度="100" />
</次の行動リスト>
</行動>
<行動 名前="座って足をぶらぶらさせる" 頻度="0" />
<行動 名前="寝そべってボーっとする" 頻度="0">
<次の行動リスト 追加="false">
<行動参照 名前="座ってボーっとする" 頻度="100" />
<行動参照 名前="IEの天井でずりずり" 頻度="100" 条件="${mascot.environment.activeIE.topBorder.isOn(mascot.anchor)}" />
<行動参照 名前="ワークエリアの下辺でずりずり" 頻度="100" 条件="${mascot.environment.floor.isOn(mascot.anchor)}" />
</次の行動リスト>
</行動>

<行動 名前="分裂する" 頻度="50" 条件="#{mascot.totalCount &lt; 50}" />
</条件>

<!-- 壁に接しているとき -->
<条件 条件="#{ mascot.lookRight ? (
mascot.environment.workArea.rightBorder.isOn(mascot.anchor) ||
mascot.environment.activeIE.leftBorder.isOn(mascot.anchor) ) : (
mascot.environment.workArea.leftBorder.isOn(mascot.anchor) ||
mascot.environment.activeIE.rightBorder.isOn(mascot.anchor) ) }">
<行動 名前="壁に掴まってボーっとする" 頻度="100" />
<行動 名前="壁から落ちる" 頻度="50" 条件="${!mascot.environment.floor.isOn(mascot.anchor)}" />
</条件>

<!-- 天井に接しているとき -->
<条件 条件="#{mascot.environment.ceiling.isOn(mascot.anchor) || mascot.environment.activeIE.bottomBorder.isOn(mascot.anchor)}">
<行動 名前="天井に掴まってボーっとする" 頻度="100" />
<行動 名前="天井から落ちる" 頻度="50" />
</条件>

<!-- ワークエリアの下辺に接しているとき -->
<条件 条件="#{mascot.environment.floor.isOn(mascot.anchor)}">
<行動 名前="ワークエリアの下辺を歩く" 頻度="100" />
<行動 名前="ワークエリアの下辺を走る" 頻度="100" />
<行動 名前="ワークエリアの下辺でずりずり" 頻度="10">
<次の行動リスト 追加="false">
<!-- ずりずりした後はそのままボーっとする -->
<行動参照 名前="寝そべってボーっとする" 頻度="1" />
</次の行動リスト>
</行動>
<行動 名前="ワークエリアの下辺の左の端っこで座る" 頻度="100" />
<行動 名前="ワークエリアの下辺の右の端っこで座る" 頻度="100" />
<行動 名前="ワークエリアの下辺から左の壁によじのぼる" 頻度="100" />
<行動 名前="ワークエリアの下辺から右の壁によじのぼる" 頻度="100" />
<行動 名前="走ってワークエリアの下辺の左の端っこで座る" 頻度="100" />
<行動 名前="走ってワークエリアの下辺の右の端っこで座る" 頻度="100" />
<行動 名前="走ってワークエリアの下辺から左の壁によじのぼる" 頻度="100" />
<行動 名前="走ってワークエリアの下辺から右の壁によじのぼる" 頻度="100" />
<行動 名前="IEの下に飛びつく" 頻度="50" 条件="#{mascot.anchor.x &gt;= mascot.environment.activeIE.left &amp;&amp;
mascot.anchor.x &lt; mascot.environment.activeIE.right}" />

<行動 名前="引っこ抜く" 頻度="50" 条件="#{mascot.totalCount &lt; 50}" />
</条件>

<!-- ワークエリアの壁に接しているとき -->
<条件 条件="#{mascot.lookRight ? mascot.environment.workArea.rightBorder.isOn(mascot.anchor) :
mascot.environment.workArea.leftBorder.isOn(mascot.anchor)}">
<行動 名前="ワークエリアの壁を途中まで登る" 頻度="100" />
<行動 名前="ワークエリアの壁を登る" 頻度="100" />
</条件>

<!-- ワークエリアの上辺に接しているとき -->
<条件 条件="#{mascot.environment.ceiling.isOn(mascot.anchor)}">
<行動 名前="ワークエリアの上辺を伝う" 頻度="100" />
</条件>

<!-- IEの上辺に接しているとき -->
<条件 条件="#{mascot.environment.activeIE.topBorder.isOn(mascot.anchor)}">
<行動 名前="IEの天井を歩く" 頻度="100" />
<行動 名前="IEの天井を走る" 頻度="100" />
<行動 名前="IEの天井でずりずり" 頻度="10">
<次の行動リスト 追加="false">
<!-- ずりずりした後はそのままボーっとする -->
<行動参照 名前="寝そべってボーっとする" 頻度="1" />
</次の行動リスト>
</行動>
<行動 名前="IEの天井の左の端っこで座る" 頻度="100" />
<行動 名前="IEの天井の右の端っこで座る" 頻度="100" />
<行動 名前="IEの天井の左の端っこから飛び降りる" 頻度="100" />
<行動 名前="IEの天井の右の端っこから飛び降りる" 頻度="100" />
<行動 名前="走ってIEの天井の左の端っこで座る" 頻度="100" />
<行動 名前="走ってIEの天井の右の端っこで座る" 頻度="100" />
<行動 名前="走ってIEの天井の左の端っこから飛び降りる" 頻度="100" />
<行動 名前="走ってIEの天井の右の端っこから飛び降りる" 頻度="100" />
</条件>

<!-- IEの壁に接しているとき -->
<条件 条件="#{mascot.lookRight ? mascot.environment.activeIE.leftBorder.isOn(mascot.anchor) :
mascot.environment.activeIE.rightBorder.isOn(mascot.anchor)}">
<行動 名前="IEの壁を途中まで登る" 頻度="100" />
<行動 名前="IEの壁を登る" 頻度="100" />

</条件>

<!-- IEの下辺に接しているとき -->
<条件 条件="#{mascot.environment.activeIE.bottomBorder.isOn(mascot.anchor)}">
<行動 名前="IEの下辺を伝う" 頻度="100" />
<行動 名前="IEの下辺から左の壁によじのぼる" 頻度="100" />
<行動 名前="IEの下辺から右の壁によじのぼる" 頻度="100" />
</条件>

<行動 名前="左の壁に飛びつく" 頻度="50" 条件="#{!mascot.environment.workArea.leftBorder.isOn(mascot.anchor) &amp;&amp;
mascot.anchor.x &lt; mascot.environment.workArea.left+400 &amp;&amp;
Math.abs(mascot.environment.workArea.bottom-mascot.anchor.y) &lt;mascot.environment.workArea.height/4}" />
<行動 名前="右の壁に飛びつく" 頻度="50" 条件="#{!mascot.environment.workArea.rightBorder.isOn(mascot.anchor) &amp;&amp;
mascot.anchor.x &gt;= mascot.environment.workArea.right-400 &amp;&amp;
Math.abs(mascot.environment.workArea.bottom-mascot.anchor.y) &lt;mascot.environment.workArea.height/4}" />

<!-- IEが見えるとき -->
<条件 条件="#{mascot.environment.activeIE.visible}">
<行動 名前="IEの左に飛びつく" 頻度="50" 条件="#{mascot.anchor.x &lt; mascot.environment.activeIE.left &amp;&amp;
Math.abs(mascot.environment.activeIE.bottom-mascot.anchor.y) &lt;mascot.environment.activeIE.height/4}" />
<行動 名前="IEの右に飛びつく" 頻度="50" 条件="#{mascot.anchor.x &gt; mascot.environment.activeIE.right &amp;&amp;
Math.abs(mascot.environment.activeIE.bottom-mascot.anchor.y) &lt;mascot.environment.activeIE.height/4}" />

<行動 名前="IEを右に投げる" 頻度="20" 条件="#{mascot.environment.activeIE.bottom &lt; mascot.anchor.y-64 &amp;&amp;
mascot.anchor.x &lt; mascot.environment.activeIE.left}" />
<行動 名前="IEを左に投げる" 頻度="20" 条件="#{mascot.environment.activeIE.bottom &lt; mascot.anchor.y-64 &amp;&amp;
mascot.anchor.x &gt; mascot.environment.activeIE.right}" />
<行動 名前="走ってIEを右に投げる" 頻度="20" 条件="#{mascot.environment.activeIE.bottom &lt; mascot.anchor.y-64 &amp;&amp;
mascot.anchor.x &lt; mascot.environment.activeIE.left}" />
<行動 名前="走ってIEを左に投げる" 頻度="20" 条件="#{mascot.environment.activeIE.bottom &lt; mascot.anchor.y-64 &amp;&amp;
mascot.anchor.x &gt; mascot.environment.activeIE.right}" />
</条件>


</行動リスト>
</マスコット>
198 changes: 198 additions & 0 deletions Shimejis/bec-noir/conf/Mascot.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.group-finity.com/Mascot" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.group-finity.com/Mascot">

<element name="マスコット" type="tns:マスコット" />

<complexType name="マスコット">
<sequence>
<element name="動作リスト" type="tns:動作リスト" maxOccurs="unbounded" minOccurs="0" />
<element name="行動リスト" type="tns:行動リスト" maxOccurs="unbounded" minOccurs="0" />
</sequence>
</complexType>

<complexType name="動作リスト">
<choice maxOccurs="unbounded" minOccurs="0" >
<element name="動作" type="tns:最上位動作" />
</choice>
</complexType>

<complexType name="動作引数" abstract="true">
<attribute name="条件" type="tns:パラメータ" />
<attribute name="長さ" type="tns:パラメータ" />
<attribute name="目的地X" type="tns:パラメータ" />
<attribute name="目的地Y" type="tns:パラメータ" />
<attribute name="初速X" type="tns:パラメータ" />
<attribute name="初速Y" type="tns:パラメータ" />
<attribute name="X" type="tns:パラメータ" />
<attribute name="Y" type="tns:パラメータ" />
<attribute name="右向き" type="tns:パラメータ" />
<attribute name="IEの端X" type="tns:パラメータ" />
<attribute name="IEの端Y" type="tns:パラメータ" />
<attribute name="ずれ" type="tns:パラメータ" />
<attribute name="生まれる場所X" type="tns:パラメータ" />
<attribute name="生まれる場所Y" type="tns:パラメータ" />
<attribute name="生まれた時の行動" type="tns:パラメータ" />
<attribute name="速度" type="tns:パラメータ" />
<attribute name="空気抵抗X" type="tns:パラメータ" />
<attribute name="空気抵抗Y" type="tns:パラメータ" />
<attribute name="重力" type="tns:パラメータ" />
</complexType>

<complexType name="動作">
<complexContent>
<extension base="tns:動作引数">
<choice>
<element name="アニメーション" type="tns:アニメーション" maxOccurs="unbounded" minOccurs="0" />
<sequence>
<choice maxOccurs="unbounded" minOccurs="0" >
<element name="動作参照" type="tns:動作参照"/>
<element name="動作" type="tns:下位動作" />
</choice>
</sequence>
</choice>
<attribute name="種類" use="required">
<simpleType>
<restriction base="string">
<enumeration value="組み込み"></enumeration>
<enumeration value="移動"></enumeration>
<enumeration value="静止"></enumeration>
<enumeration value="固定"></enumeration>
<enumeration value="複合"></enumeration>
<enumeration value="選択"></enumeration>
</restriction>
</simpleType>
</attribute>
<attribute name="クラス">
<simpleType>
<restriction base="string">
<pattern value="com\.group_finity\.mascot\.action\.[a-zA-Z][a-zA-Z0-9]+" />
</restriction>
</simpleType>
</attribute>
<attribute name="枠">
<simpleType>
<restriction base="string">
<enumeration value="地面"></enumeration>
<enumeration value="壁"></enumeration>
<enumeration value="天井"></enumeration>
</restriction>
</simpleType>
</attribute>
<attribute name="繰り返し" type="tns:パラメータ" />
</extension>
</complexContent>
</complexType>

<complexType name="最上位動作">
<complexContent>
<extension base="tns:動作">
<attribute name="名前" type="string" use="required" />
</extension>
</complexContent>
</complexType>

<complexType name="下位動作">
<complexContent>
<extension base="tns:動作" />
</complexContent>
</complexType>

<complexType name="アニメーション">
<sequence>
<element name="ポーズ" type="tns:ポーズ" maxOccurs="unbounded" minOccurs="1" />
</sequence>
<attribute name="条件" type="string" />
</complexType>

<complexType name="ポーズ">
<attribute name="画像" use="required">
<simpleType>
<restriction base="string">
<pattern value=".+\.(png|gif|jpeg|jpg|bmp|PNG|GIF|JPEG|JPG|BMP)" />
</restriction>
</simpleType>
</attribute>
<attribute name="基準座標" use="required">
<simpleType>
<restriction base="string">
<pattern value="-?\d+,-?\d+" />
</restriction>
</simpleType>
</attribute>
<attribute name="移動速度" use="required">
<simpleType>
<restriction base="string">
<pattern value="-?\d+,-?\d+" />
</restriction>
</simpleType>
</attribute>
<attribute name="長さ" type="int" use="required" />
</complexType>

<complexType name="動作参照">
<complexContent>
<extension base="tns:動作引数">
<attribute name="名前" type="string" use="required" />
</extension>
</complexContent>
</complexType>

<complexType name="行動リスト">
<sequence>
<choice maxOccurs="unbounded" minOccurs="1" >
<element name="行動" type="tns:行動" />
<element name="条件" type="tns:行動条件" />
</choice>
</sequence>
</complexType>

<complexType name="行動">
<sequence>
<choice maxOccurs="1" minOccurs="0" >
<element name="次の行動リスト" type="tns:次の行動リスト" />
</choice>
</sequence>
<attribute name="名前" type="string" use="required" />
<attribute name="頻度" type="int" use="required" />
<attribute name="条件" type="tns:パラメータ" />
</complexType>

<complexType name="次の行動リスト">
<sequence>
<choice maxOccurs="unbounded" minOccurs="1" >
<element name="行動参照" type="tns:行動参照" />
<element name="条件" type="tns:行動参照条件" />
</choice>
</sequence>
<attribute name="追加" type="boolean" use="required" />
</complexType>

<complexType name="行動参照条件">
<complexContent>
<extension base="tns:次の行動リスト">
<attribute name="条件" type="string" />
</extension>
</complexContent>
</complexType>

<complexType name="行動参照">
<attribute name="名前" type="string" use="required" />
<attribute name="頻度" type="int" use="required" />
<attribute name="条件" type="tns:パラメータ" />
</complexType>

<complexType name="行動条件">
<complexContent>
<extension base="tns:行動リスト">
<attribute name="条件" type="tns:パラメータ" />
</extension>
</complexContent>
</complexType>

<simpleType name="パラメータ">
<restriction base="string">
<pattern value="([$#]\{.+\})|(\-?[0-9]+(\.[0-9]+)?)|true|false" />
</restriction>
</simpleType>

</schema>
Binary file added Shimejis/bec-noir/img/Thumbs.db
Binary file not shown.
Binary file added Shimejis/bec-noir/img/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime14.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime17.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime18.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime19.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime21.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime22.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime23.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime25.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime26.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime28.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime29.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime30.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Shimejis/bec-noir/img/shime31.png
Binary file added Shimejis/bec-noir/img/shime32.png
Binary file added Shimejis/bec-noir/img/shime33.png
Binary file added Shimejis/bec-noir/img/shime34.png
Binary file added Shimejis/bec-noir/img/shime35.png
Binary file added Shimejis/bec-noir/img/shime36.png
Binary file added Shimejis/bec-noir/img/shime37.png
Binary file added Shimejis/bec-noir/img/shime38.png
Binary file added Shimejis/bec-noir/img/shime39.png
Binary file added Shimejis/bec-noir/img/shime4.png
Binary file added Shimejis/bec-noir/img/shime40.png
Binary file added Shimejis/bec-noir/img/shime41.png
Binary file added Shimejis/bec-noir/img/shime42.png
Binary file added Shimejis/bec-noir/img/shime43.png
Binary file added Shimejis/bec-noir/img/shime44.png
Binary file added Shimejis/bec-noir/img/shime45.png
Binary file added Shimejis/bec-noir/img/shime46.png
Binary file added Shimejis/bec-noir/img/shime5.png
Binary file added Shimejis/bec-noir/img/shime6.png
Binary file added Shimejis/bec-noir/img/shime7.png
Binary file added Shimejis/bec-noir/img/shime8.png
Binary file added Shimejis/bec-noir/img/shime9.png
Loading