npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kotonone/pikimerin

v0.1.0

Published

<h1><img src="./docs/assets/[email protected]" alt="Pikimerin" width="208" height="64"></h1>

Downloads

85

Readme

Pikimerin は、Kotonone によって開発されている、ビジュアルノベルなどのシナリオを直感的に記述できるスクリプト言語 AmeriScript のスクリプト再生エンジンです。

組み込みのテキスト表示・制御機能やピクチャレンダリング用のコンテキストを備えており、Vue や React などのフロントエンドフレームワークとの連携も容易です。

特徴

シンプルなスクリプト構文

行頭の @ によるコマンド(@page, @sleep, @pause 等)や、文章中へのインラインコマンド ({@sleep ...}) による直感的なシナリオ作成が可能です。

@name りい
「……お姉ちゃん…………」
@name ふぁみ
「むにゃ……あと10分~」
@name りい
「起きて……!」
@name ふぁみ
「うぅ~ん、やっぱりあと20分……
 ……うん?」
@name りい
「起きて~!」
@name ふぁみ
「……なんか声遠くない? ……って、{@pause}ここどこ!?」

カスタムコマンドの拡張性

文字色・サイズ変更などの組み込みコマンドに加え、独自の機能(キャラクター名の表示、背景切り替え、音声再生など)を容易に定義できます。

また、既存コマンドを上書きして挙動を変更することも可能です。

import { Pikimerin, text } from "@kotonone/pikimerin";

new Pikimerin(script, {
    commands: {
        text: (context, t) => {
            console.log("テキストコマンドが呼び出されました: " + t);
            return text(context, t); // 元の挙動も呼び出す
        },
        fadeIn: (type) => {
            // ..
        },
        ripple: () => {
            // ..
        },
         // さらにコマンドを追加可能
    },
});
@name ???
……{@sleep 0.2}…{@sleep 0.5}
たまき…{@sleep 0.2}…{@sleep 0.2}…

@name たまき
@ripple
むにゃ…
あと5分〜。

@name ???
@fadeIn shrink
@picture tamaki.png
@play se.wav
起きなさい!

Web 連携の高い親和性

描画用のコンテキストをDOM構造として取得できるため、既存のウェブアプリケーションに自然に組み込めます。

<div id="scenario-container"></div>

<script>
const merin = new Pikimerin(script);
document.getElementById("scenario-container")?.appendChild(merin.context.text.container);
</script>

<style>
#scenario-container {
    /* 文字の表示アニメーションなどを CSS で実装可能 */
}
</style>

使い方

シナリオスクリプト文字列と、カスタムコマンドなどの設定を渡すだけで Pikimerin インスタンスを生成・実行できます。

import { Pikimerin } from "@kotonone/pikimerin";

// 実行するシナリオスクリプト
const script = `
@name キャラクターA
シナリオテキストを入力します。{@sleep 1000}1秒待ちました。
@page
ページを切り替えて次のテキストを表示します。
`;

// エンジンの初期化
const merin = new Pikimerin(script, {
    commands: {
        // カスタムコマンドを独自に定義したり、既存コマンドを上書き可能
        name: (nameTag) => {
            console.log("名前枠の表示変更: " + nameTag);
        }
    }
});

// コンテキスト内のテキストコンテナ(HTMLElement)をDOMに追加して表示する
document.body.appendChild(merin.context.text.container);

// クリック等で処理を進行(ポーズの解除や、テキストのアニメーションスキップ)
window.onclick = () => merin.abort();

詳しい実装例については、examples/ フォルダ内の Vue プロジェクトを参照してください。