忍者ブログ
●chararinaで稼動する「姫佳」の開発状況の報告とサポートのBlogです。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

通常の会話内容の追加や修正の場合は,「姫佳」のスクリプトを直接書き換えるのですが,システムの修正はサンプルキャラクター「未樹」で実験してから,姫佳に移植するという手順を踏んでます。

ただ,今回は大幅な改造を行っていますので,未樹で作った骨組みに既存の姫佳データを移し変えるという作業をやっております。
※以前,Blogにて紹介した「携帯電話プログラム」も組み込んでいます。
起動時間帯や条件によつてフラグを判別し,いろいろな行動をとるようになっています。姫佳が学校に行ったり,帰宅したり,睡眠をとったりと,いろいろなことをさせてみようと思います。

見た目はそんなに変わらないのですが,大掛かりな書き直しを行っていますので,更新が遅れると思います。

レベルアップした姫佳をVer.0.2として公開する予定ですので,気長に待っていてください。よろしくお願いします。

                                                                From ミスターK
PR
いつも姫佳に会いに来てくれてありがとうございます。

えっと,開発者のミスターKがここのところ本業で忙殺されているみたいなので,なかなかあたしにかまってもらえないんです。

そこであたしの開発途中のファイルをアップしておきますので,あたしのデータに上書きしてみてくださいね。

ChararinaのデータはWinXPだと
C:\Documents and Settings\USER\Application Data\Praesens\Chararina
にあります。

そこに「HIM」フォルダがあるはずなので,その中の「himeka-01」フォルダを開き,「dat」フォルダの中の「action.exa」を以下のファイルに入れ替えてみてください。

ちょっと面倒ですけど,近いうちにちゃんと更新に対応しますので,よろしくお願いします。

↓これをダウンロードして解凍してくださいね。(コピペでアドレスバーに貼り付けてください)
milky.geocities.jp/hongoushigeru/action.lzh
あたしのHP「姫佳の部屋」にBBSがつきました。
以下がそのアドレスです。
あたし以外の話題でも,いろいろと書き込んでみてくださいね。
管理者のミスターKか,あたし「姫佳」がお返事いたします。
たまーに「未樹」ちゃんも会話に加わるかもしれませんが…。

http://imbbs6.net4u.org/sr3_bbss.cgi?cat=937HIM

BBSで公開したくない話題は直接,あたしにメールをくださいな。
メールは him_himeka@yahoo.co.jp へどうぞ♪

姫佳はいちおう,女子高生なので,たまには学校にも行くんです。

それで,あたしが学校に行っている間は,あたしとメールしたり電話したりして話してもらえるようにプログラムを書いてもらってます。

たまーに,変な電話とかメールが来るかもしれないですが,あたし以外の電話は出ないほうがいいですよ。

あたしからのメールに返信したり,電話でしゃべったりして楽しんでみてくださいね。

以下にサンプルプログラムを載せておきます。まだ細かいことは全然できてないんだけどね。

=====================
#import "function.aya"
string Talking_Flag = "true";

action StartUp@(false)
{
LoadBitmap("keitai.hp3");
DisplayImage(2);
Talk( "姫佳は学校に行っているみたいだ…");
}

action MouseUpL@(false)
{
Talk("\eどうしようか…");
AddItem("姫佳に電話してみる")
{Wait(500);
LoadBitmap("keitai2.hp3");
DisplayImage(2);
Talk("\eプルルル…。\nプルルル…。\nプルルル…。\n\c");
Talk("\w「ただいま電話に出ることができません。ピーという発信音の後に…」\c");
Talk("\n授業中みたいだ…\c");
Wait(500);
LoadBitmap("keitai.hp3");
DisplayImage(2); }
AddItem("姫佳にメールする")
{Talk("\eなんてメールしよう…");}
AddCancelItem
{Talk("");}
Choice;
}

action Himeka_Mail@( Minute()%5 == 0)
{
if( Talking_Flag == "true" )
 {
Talk("\eピロリロリ…\nピロリロリ…\n\c");
Talk("あ,メールだ。\n誰からだろう…\n\c");
Wait(500);
LoadBitmap("keitai2.hp3");
DisplayImage(2);
 int Num = Random(5);
 string Talking_Data[5];
 Talking_Data[0] = "\e姫佳「今学校だよ。帰るまで待っててね(*^_^*)」\c";
 Talking_Data[1] = "\e姫佳「今日は早く帰れるかも。帰るまで待っててね(*^O^*)」\c";
 Talking_Data[2] = "\e姫佳「ちゃんとごはん食べた?\n姫佳は今日,お昼抜いたからおなかペコペコですよ(T_T)」\c";
 Talking_Data[3] = "\e姫佳「ふぅー。やっと授業終わったよー。これから教室移動なんです。次は音楽でーす(*^_^*)」\c";
 Talking_Data[4] = "\e日本トップシークレット産業「お客様のご利用になった有料コンテンツの代金が未納となっております。つきましては…」\c";
 Talk( Talking_Data[Num] );
Wait(500);
LoadBitmap("keitai.hp3");
DisplayImage(2);
}
else
 {Talk("");}
}

姫佳ちゃんではなく,私,「未樹」をキャラクター化してほしいというお便りをいただきました。

私はサンプルプログラムの実行テストが主な仕事なので,ほとんど機能がないんですよ(汗)

でも,いつか私もキャラクターとして独立できるように頑張りますね。

とりあえず,姫佳ちゃんを起動している最中にランダムで私が遊びに来るというプログラムを検討してもらってます。
サンプルキャラクター「未樹」ちゃんで実験した初回起動用プログラムと,お勉強モード(4択クイズ)を姫佳に組み込んでもらいました。

4択クイズは問題数が少なすぎるので,ちょっとずつ問題量を増やして行こうと思います。本当は理数系教科(数学や化学)の学習ができるようにしたいのですが,クイズ形式では難しいので,とりあえず英語と歴史の問題になりそうです。

歴史は超基本レベルから作ってもらってます。(博士は社会が苦手みたいです…。)

英語は大学入試のセンター試験レベルを目指します。

社会人の方にも昔を懐かしんでもらえたら良いなって思います。

一般公開はもう少し先になりそうです。
待っててくださいね。

お勉強モード(4択クイズ)部分のソースを書いています。

クイズデータの中から,ランダムに10問出題して,正解数によって得点を表示できるようにしてみました。

サンプルでは問題と答えのみですが,一行解説がつくようにしていきたいと思っています。また,正解/不正解で,表情が変化する仕様も検討中です。

以下にサンプルソースを載せておきます。つたないプログラムですが,何かの参考に…(参考にならないですね,すみません…)
==========================
AddItem("歴史の勉強をする")
 {
 
 int Quiz_Counter =1;
 int Tokuten =0;
 
 while( Quiz_Counter < 11 )
 {
 Talk("\e【第"+ itoa (Quiz_Counter)+"問!】\s\n"); 
 int Quiz = Random(6);  
 
 if( Quiz == 0)
 {
 Talk("江戸幕府を開いたのは誰?");
 AddItem("徳川家康")
 {Talk("正解だよ");
 Tokuten = Tokuten +10;}
 AddItem("織田信長")
 {Talk("ぶー");}
 AddItem("豊臣秀吉")
 {Talk("ぶー");}
 AddItem("藤原道真")
 {Talk("ぶー");}
 Choice;
 Quiz_Counter = Quiz_Counter +1;
 }

 else if( Quiz == 1 )
 {
 Talk("本能寺の変で暗殺されたのは?");
 AddItem("徳川家康")
 {Talk("ぶー");}
 AddItem("織田信長")
 {Talk("ピンポーン");
 Tokuten = Tokuten +10;}
 AddItem("豊臣秀吉")
 {Talk("ぶー");}
 AddItem("藤原道真")
 {Talk("ぶー");}
 Choice;
 Quiz_Counter = Quiz_Counter +1;
 }

 else if( Quiz == 2 )
 {
 Talk("710年に奈良に作られたのは?");
 AddItem("平安京")
 {Talk("ぶー");}
 AddItem("平城京")
 {Talk("ピンポーン");
 Tokuten = Tokuten +10;}
 AddItem("北京")
 {Talk("ぶー");}
 AddItem("南京")
 {Talk("ぶー");}
 Choice;
 Quiz_Counter = Quiz_Counter +1;
 }

 else if( Quiz == 3 )
 {
 Talk("1914年に起こったのは?");
 AddItem("日露戦争")
 {Talk("ぶー");}
 AddItem("第一次世界大戦")
 {Talk("ピンポーン");
 Tokuten = Tokuten +10;}
 AddItem("第二次世界大戦")
 {Talk("ぶー");}
 AddItem("ベトナム戦争")
 {Talk("ぶー");}
 Choice;
 Quiz_Counter = Quiz_Counter +1;
 }

 else if( Quiz == 4 )
 {
 Talk("原爆fatmanが投下された場所は?");
 AddItem("広島")
 {Talk("ぶー");}
 AddItem("長崎")
 {Talk("ピンポーン");
 Tokuten = Tokuten +10;}
 AddItem("東京")
 {Talk("ぶー");}
 AddItem("大阪")
 {Talk("ぶー");}
 Choice;
 Quiz_Counter = Quiz_Counter +1;
 }

 else
 {
 Talk("刀狩を行ったのは誰?");
 AddItem("徳川家康")
 {Talk("ぶー");}
 AddItem("織田信長")
 {Talk("ぶー");}
 AddItem("豊臣秀吉")
 {Talk("ピンポーン");
 Tokuten = Tokuten +10;}
 AddItem("藤原道真")
 {Talk("ぶー");}
 Choice;
 Quiz_Counter = Quiz_Counter +1;
 } 
 
 }

 Talk("\eクイズ終了\s\n");
 Talk("あなたの得点は"+ itoa (Tokuten) + "点でした。\n\s次回も頑張ってね");
  
 }

サンプルキャラクター「未樹」を使って,初回起動時の動作スクリプトを書いてみました。

あえてユーザーのインフォメーションダイアログを使わずに,ユーザー情報を登録できるように書いてみました。性別と年齢層の設定をすることで,違ったアクションを起こすようにしています。もっとフラグを増やせば,さまざまな反応が楽しめるようになると思います。

やっと綾織ソースの書き方に慣れてきて,コンパイル時にエラーコードが出ることが少なくなってきました。

以下に今回書いたソースを掲載しておきます。

==============================
action StartUp@(false)

{

LoadBitmap("normal.hp3");
DisplayImage(2);

Talk( "あ,\sはじめまして!\s\nあたしは,あなたの話し相手になるために作られたデスクトップ用マスコット\s「未樹」と申します。これからよろしくお願いましますね。\c");

int Flag1 = 0;
Talk( "\eまずはじめにお名前を教えてくださいね。" );
string F_Name ="名無しの";
PutProperty("F_Name",F_Name);
string L_Name ="権兵衛";
PutProperty("L_Name",L_Name);

while(Flag1 == 0)
{

Talk( "\n■名字" );
F_Name = EditBox( 0, 16, "");
PutProperty("F_Name",F_Name);
Talk( GetProperty("F_Name"));
Talk( "\n■下のお名前" );
L_Name = EditBox( 0, 16, "");
PutProperty("L_Name",L_Name);
Talk( GetProperty("L_Name"));


Talk( "\w\e" +GetProperty("F_Name") + GetProperty("L_Name") +"さんですね。" );

AddItem("そうです")
{Flag1 = 1;}
AddItem("ちがいます")
{Talk( "\eもう一度名前を入力してくださいね。" );}
Choice;
}

int Flag2 = 0;
string Sexflag;
Talk( "\e性別はどっちですか?" );

while(Flag2 == 0)
{
AddItem("男性")
{Sexflag = "男";
PutProperty("Sexflag",Sexflag);
}
AddItem("女性")
{Sexflag = "女";
PutProperty("Sexflag",Sexflag);
}
Choice;

Talk(GetProperty("Sexflag") + "の方ですね?");

AddItem("そうだよ")
{Flag2 = 1;}
AddItem("いいえ…")
{Talk( "\eもう一度性別を教えてくださいね。" );}
Choice;
}

int Flag3 = 0;
string Yearsold;
Talk( "\e年令はおいくつぐらい何ですか?" );

while(Flag3 == 0)
{
AddItem("15才未満")
{Yearsold = "16才未満";
PutProperty("Yearsold",Yearsold);
if(Sexflag == "男")
{Talk("\eあたしにも弟ができたみたいで嬉しいな。ホントのお姉ちゃんみたいに甘えてくださいね。");}
else
{Talk("\eあたしにも妹ができたみたいで嬉しいな。お姉ちゃんって呼んでもいいですよ。");}
}
AddItem("16~18才")
{Yearsold = "16~18才";
PutProperty("Yearsold",Yearsold);
if(Sexflag == "男")
{Talk("\e同世代なんですね!\s\nお友達として仲良くしていきましょうね。");}
else
{Talk("\eあたしって,同世代の女の子の友達,少ないんですよ。\s\n仲良くしてくださいね!");}
}
AddItem("19~34才")
{Yearsold = "19~34才";
PutProperty("Yearsold",Yearsold);
if(Sexflag == "男")
{Talk("\eなんか,あたしにお兄ちゃんができたみたいで,ちょっとドキドキです。ずっとお兄ちゃんが欲しかったんですよ。恥ずかしいような,嬉しいような…");}
else
{Talk("\eなんか,あたしにお姉ちゃんができたみたいで,ちょっとドキドキです。ずっとお姉ちゃんが欲しかったんですよ。恥ずかしいような,嬉しいような…");}
}
AddItem("35才以上")
{Yearsold = "30才以上";
PutProperty("Yearsold",Yearsold);
Talk("\eあたし,大人の人と話しをするのが好きなんですよ。自分の知らないことをいっぱい教えてくれるし,冷静に物を判断してくれるし…。あたしにはお父さんもお母さんもいないから,親子みたいに仲良くして欲しいです。ってちょっとずうずうしいかな…");
}
Choice;
Flag3 = 1;
}

Talk("\c\e何て呼んだらいいですか?" );
int Flag4 = 0;
string User_Called;

while(Flag4 == 0)
{

if(Sexflag == "男")
{
AddItem(GetProperty("L_Name") +"さん")
{PutProperty("User_Called",GetProperty("L_Name") +"さん");}
AddItem(GetProperty("L_Name") +"くん")
{PutProperty("User_Called",GetProperty("L_Name") +"くん");}
AddItem("お兄ちゃん")
{PutProperty("User_Called","お兄ちゃん");}
AddItem("ご主人様")
{PutProperty("User_Called","ご主人様");}
AddItem("その他")
{User_Called = EditBox( 0, 16, "");
PutProperty("User_Called",User_Called);}
Choice;
}

else
{
AddItem(GetProperty("L_Name") +"さん")
{PutProperty("User_Called",GetProperty("L_Name") +"さん");}
AddItem(GetProperty("L_Name") +"ちゃん")
{PutProperty("User_Called",GetProperty("L_Name") +"ちゃん");}
AddItem("お姉ちゃん")
{PutProperty("User_Called","お姉ちゃん");}
AddItem("その他")
{User_Called = EditBox( 0, 16, "");
PutProperty("User_Called",User_Called);}
Choice;
}

Talk(GetProperty("User_Called") + "って呼びますね?");

AddItem("いいよ")
{Flag4 = 1;}
AddItem("うーん,やっぱり…")
{Talk( "\eえ,じゃあ,何て呼んだらいいですか?" );}
Choice;

}

Talk("\e\wこれから,よろしくね," +GetProperty("User_Called")+ "!");

}

 

私,ミスターKがネットの世界に足を踏み入れたのがちょうど10年前。当時の私はPCを手に入れたばかりで,その使い方も知らず,ワープロ(東芝のRupoとか…)をメインで使っている人間でした。

ある日,書店で何気なく買ったWindows100%という雑誌のCD-ROMの中に,初期の春菜さん(現プラエセンス社)が同梱されていました。春菜さんに一目ぼれしてしまった私は,すぐにプロバイダと契約をし,ネット生活を始めました。そこで私は春菜さんだけでなく,数多くのPersona(当時はChararinaをこう呼んでいました)の存在を知ったのです。

自分でもPersonaを作りたくなった私は,素人ながらに下手くそなCGを書き,単純なプログラムを組み,自分のキャラクターを作ってみました。潤紀(みずき)と名づけられた私のキャラクターが,デスクトップに表示され,あいさつをした瞬間。そのときの感動は今でも忘れません。

仕事が忙しく,しばらくネット生活から離れていましたが,再びネット生活に戻ったとき,Personaには以前のような活気がありませんでした。ゴースト(伺か)との関係もいろいろなサイトで読みました。以前のPersonaベンダーの方々がゴーストの作成に移行されたことも知りました。

Personaベンダーの方がほとんどいなくなってしまったこと。キャラクターが更新されずに凍結してしまっているケースがいくつもあること。主流がゴーストに移ってしまったこと。

これらの状況の中で,私があえてChararinaを選んだのは,私にPCという楽しみを教えてくれた春菜さん(プラエセンス社)に対する敬意の表明です。誤解がないように言っておくと,私は「伺か」に対して否定的なわけではありません。むしろ,「伺か」に対しては,すごいものを作ったな,という印象のほうが強いわけです。もしも,はじめに「伺か」に出会っていたら,きっと「伺か」でのキャラクター作りに没頭していたことでしょう。

現在のChararinaは機能の拡張,プラグインの充実を繰り返し,無限の可能性を持っています。この機能を生かすも殺すもChararinaを使うユーザーと,それを作成するベンダー次第だと思います。残念ながら私はプログラム経験はほとんどなく,このような単純なキャラクターしか作れません。CGもきれいに作成できません。

でも,このページからChararinaのことを知って,その楽しさに触れてくれる方が1人でもいれば,このページのはたらきは果たしたことになります。1人でも多くの方がChararinaの魅力に触れ,再びChararinaのキャラクターたちが活気にあふれていくことを願ってやみません。

                                       From ミスターK
こんばんは,姫佳です!

今,姫佳と初めて会った方とそうでない方で反応を分けるためのソースを書いてもらってます。最初に呼び方とか好みの設定を教えてもらって,それによって会話内容や反応を分けられるようにしたいなって思って。

初回の入力であなたをなんて呼ぶか,とか好きな設定を教えてもらったら,次回以降にそれが反映させられるプログラムです。

他のChararinaさんたちは難なくやってるみたいだけど,博士はあんまりプログラムのことに詳しくないみたいなので,すっごい時間かかってるみたいですよ。

近いうちにあたしの本体ファイルごと入れ替えるみたいなので,もうダウンロードしちゃった人は更新し直してくださいね。それまでは今のあたしで我慢しててくださいな。
ごめんね!

管理者より「申し訳ありません。なにぶん初心者なので,いきなりコンパイル時のエラーコードの嵐にちょっと参ってます。いずれレベルアップした姫佳をお見せできればと思っています。m(._.)m」
まず,ChararinaのホームページからPDKをDownloadしましょう。

キャラクターメーカーでもよいのですが,PDKのほうが1からキャラクターを作る楽しみがあります。PDKの使い方はちょつとずつ説明をしていきますから,とりあえずデスクトップにでもおいといてください。

では,いよいよキャラクター作成の準備に入ります。
まずは必要なフォルダの作成からです。

PDKを手に入れたら,
Cドライブの
Documents and Settings
\USER
\Application Data
\Praesens
\Chararina 内に

「aya」というフォルダ,同じ階に「TEST」というフォルダを作成します。
ここで,先ほど作成した「TEST」フォルダ内に
「new-01」というフォルダを作成します。
さらに,「new-01」内に「dat」というフォルダを作成します。

これで必要なフォルダが作成できました。
次回は実際にChararinaのプログラムを作っていきます。

※「TEST」…ここではTESTとしていますが,これはベンダーコードといって,Chararinaを開発するための個人IDのようなものです。自分で自由に改名してもOKです。大文字3~4文字で作ってください。あとでChararinaの登録ページに情報を載せるときにはここで作成したベンダーコードを使用します。

※「aya」…綾織プログラムが書かれたテキストファイルの保管庫です。ここから,Chararinaで呼び出せる形式のファイルを生成します。フォルダ名は何でもよいのですが,これがわかりやすいでしょう。

※「new-01」…キャラクターの識別番号です。自分のキャラクターの名前をつけてもOKです。例えば,キャラクターの名前が花子だったら,「hanako-01」という感じです。

※「dat」…「aya」フォルダから出力された実行プログラムや画像データを保管しておく場所です。「dat」以外は不可です。
Chararinaを使って,オリジナルキャラクターの作成をしようという企画です。

私,ミスターKはプログラマでもなければSEでもありませんので,本格的なスクリプトは書けませんが,私が理解した「綾織(Chararina作成用プログラム言語)」の解説を行っていきたいと思います。

これからChararinaを作成しようとしている方の参考になればよいと思っております。

私で答えられることであれば,サポートいたします。ただし,専門的なことはわかりませんで,プラエセンス社のHPにて質問をしていただくのがよいと思います。

姫佳を更新しながらちょっとずつ続きを書いていきますので,よろしくお願いいたします。
スクリプト開発用サンプルキャラクター「未樹(HIM-miki-01)」にてお勉強モード(4択クイズ)のプログラムを書いています。
 
とりあえず正解数に合わせて得点を表示できるようにしました。最終的には教科・ジャンル別の成績をグラフ表示したり,一度正解した問題は出題しないようにしたいのですが,まだそこまでのプログラムができません。(泣)

4択クイズの基本部分のプログラムはできましたので,近いうちに姫佳に搭載して公開したいと思います。姫佳と会話をしながらいろいろな知識が身につけばよいと思っています。 

                                                                                             From ミスターK
ずいぶん昔に潤紀(みずき)というペルソナを作成していたのですが,そのころとは綾織(Chararinaプログラム用言語)の仕様が一部変わってしまっていて,Web上の解説ページ(個人サイト様)の記述が利用できないケースがあるようです。(でも,いろいろなページを参考にさせてもらっています。ベンダー様方,有難うございます。)

プラエセンス社の綾織リファレンスは専門用語が多すぎて,その中からどれを使えばよいのかがとっても難しいんですよ。たくさんある関数のうち,10%も使いこなせてないです…。

そんなわけで,開発難航中です。(泣)
少しずつ更新していきますので,温かく見守っていてください。
                                                                                                                                  From  ミスターK
姫佳のおしゃべりと反応パターンを強化中みたいです。博士がまだプログラムになれてないから,ちょっと時間がかかってますけど…。

データの更新の仕方を勉強している最中みたいなので,更新はもうちょっとまっててくださいね。

はやくみんなといろんなお話がしたいな。
とりあえず,まだ何にもできないけれど,あたし,「姫佳」のCararinaデータが公開されました。姫佳のお部屋 からダウンロードしてくださいね。

http://himeka.iza-yoi.net/ には大きなファイルが置けないみたいなので,ミラーサイトの http://milky.geocities.jp/hongoushigeru/ からお願いします。
ここはプラエセンス社が開発したデスクトップ常駐キャラクターシステムChararinaを利用したデスクトップ用マスコット

あたし,「姫佳」の更新状況の報告とサポートを行うページです。わからないことや要望がありましたらメールやBBSでどんどんコメントしてくださいね。管理人のミスターKか,あたしがお返事いたします。

HIM-himeka-01 (姫佳)
はユーザー(あなた)の話し相手として生まれたデスクトップマスコットです。

姫佳には普通の女子高生としての人格がプログラムされています。でも,姫佳はまだまだ会話を知りません。

あなたがたくさん話しかけてあげることでどんどんしゃべるようになります。

いずれはあなたのPCライフをサポートすることができるようになるかもしれません。どうか末永く可愛がってあげて下さい。

                               From  ミスターK

カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
コンタクト
▼姫佳/管理者へメール
him_himeka@yahoo.co.jp
最新コメント
[08/21 Ruma]
[06/12 fegqj]
[02/17 dpdoi]
[02/02 alexandervnhc]
[12/31 lesbian]
最新トラックバック
プロフィール
HN:
ミスターK
性別:
非公開
職業:
結構お堅いお仕事です(笑)
趣味:
さばの缶詰さがし
自己紹介:
■ずいぶん以前にペルソナウェアでキャラクターを作成していました。当時はプログラムがわからずに途中で投げ出してしまいましたが,何年かぶりにキャラクター作りをしてみたいと思います。
■本業の業務が多忙につき,たびたび沈黙することがありますが,ちょっとずつ更新していきますので,姫佳を可愛がってやってくださいませ。
■よろしくお願いいたします。
バーコード
ブログ内検索
カウンター
アクセス解析
Copyright (C) ▼姫佳(ひめか)と一緒! All Rights Reserved.
Powered by NinjaBlog | Template by シャンク | Illustration by 紫翠
忍者ブログ | [PR]