ピケの力
次の日、わたくしは書斎に籠もり、対策を練ることにしました。
真っ先に思いつくのはロープを何重にも張り巡らせる案です。たとえば、わたくしの身長を超える高さに一本、その三分の一と三分の二の位置にそれぞれ一本張り巡らせます。しかし、これではロープとロープの間をくぐり抜けてしまうかもしれません。
「ピーヤ(笑)」
わたくしの頭の中で、鹿が白い歯を見せながら野菜をもぐもぐしています。ああ、腹立たしい。
それを防ぐには、おそらく網のようなものを張り巡らせることが必要でしょう。漁師の網が使えるかもしれません。しかし、そもそも王宮には漁師の網を仕入れるルートがありません。その上、王室御用達ともなれば、最高級の特注品となる故、今から発注しても届くのは数週間後から数ヶ月後になってしまうことでしょう。シルク百パーセントの無駄に肌触りの良い網が届いてしまうかもしれません。エイヤに発注させたらどうなることやら。
現実解として、まずは今あるもので野菜を守らなければなりません。
となれば、スキル〝C#〟を用い、何とか鹿を追い払う必要があります。しかし、どうやって?
『は~ぴ!!! はぁぴ!!!!』
『鹿! 出ていきなさい!』
『ぽふ~!!!』
少なくとも鹿はわたくしたちの声に反応しました。ならば、大きな音を立てればよいのです。大きな音といえば――。
ピケが白い皿の上で眠っています。まるで本当の目玉焼きのように。
「スイちゃん、ピケちゃんは自分で大きな声を出せるのですか?」
スイに小声で尋ねます。
スイが口腕を大きく振ると、ピケが目を覚ましました。
「ぇあ?」
「ぽふぃ?」
「ぃあ……」
……たぶん、無理なのでしょう。
ピケは、すぐに眠りに落ちます。
「ごめんなさい、起こしてしまいましたね」
「ぽふぃぽふぃ」
「構わないのですか?」
「ぽふぃ!」
スイは肯定したあと、こてんと転がります。五秒ほど寝たふりをして、一秒だけ身体を起こし、また再び五秒ほど寝たふりをします。
「もしかして、一日の殆どを寝て過ごしているのですか?」
「ぽふぃ!」
「羨ましいですね。でも、寝ているのにずっとステータスウィンドウは見えてますよ」
「ぽふ」
スイは、口腕で、ピケの黄身の部分を指します。
「この大きな目玉は寝ていても見えているのですね」
「ぽふぃ♪」
寝ながら仕事ができるということです。なかなか羨ましい奴め。
そういえば、ピケには遠くの景色を見せる以外にできることはあるのでしょうか?
「スキル〝C#〟何かピケちゃんができること」
雑にスキルを発動してみます。
光る文字がぽわんと浮かび上がりました。
``` csharp
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSwibo();
builder.Services.AddSkillDiscoveryMetadataGenerator();
var app = builder.Build();
app
.ExposeSkillDiscoveryMetadata("csharp.何かピケちゃんができること")
.WithSwiboEventHook("/");
app.MapPost("/", async ([FromBody]SwiboEventNotification notification, ISwiboContext context, CancellationToken cancellationToken) =>
{
if(notification.EventType == SwiboEvent.ChangeReport && notification.TryParseContextData<SwiboCameraEventData>(out var data) && data.DetectionState == SwiboDetectionState.Detected)
{
Debug.WriteLine("動体を検知しました");
}
return Results.Ok();
});
app.Run();
```
ピケはまだ眠っています。
この可愛い寝顔を覗き込むと――。
「えぇあぃあぃ!」
突然、ピケが目を覚ましました。
『デバッグ:動体を検知しました』
どこからともなく声が聞こえてきます。世界の声です。
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
わたくしが身体を動かす度に、世界の声が聞こえてきました。
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
……さすがに、鬱陶しいですね。
「スキル〝C#〟キャンセル」
『デバッグ:動体を検知しました』
『スキル〝csharp.何かピケちゃんができること〟には、サブスキル〝cancel〟が公開されていません。代わりにプログラムを終了しますか?』
『デバッグ:動体を検知しました』
『デバッグ:動体を検知しました』
「え? ……はい、そうしてください」
そうすると、やっと世界の声が止まりました。
「……世界の声と会話してしまいました」
そんなこともできるのですね。
さて、この実験を踏まえると、ピケは普段は寝ていますが、何か動くものを見つけると、目を覚まします。そして、それを起点に何か命令を実行できるのでしょう。
たとえば、『ピケが動体を検知したらお手』とか。
となれば――。
退屈そうに机の上を転がるスイの頬を、指でぷにっとします。
「ぽふ~」
「スイちゃん、出番です」
わたくしがそう言うと、スイは目を輝かせて、わたくしに飛び寄りました。
「ぽふぃ♪」
「アピィちゃんを呼んできてくれますか?」
「ぽふぃ!」
スイがくるりくるりと舞うと、アピィが幻空間からふわりと顕現しました。




