プログラマブルプラグイン

Created at 2026-06-30 UTC [Last edited at: 2026-07-04 10:23:34 UTC]


プログラマブルプラグインとは?

このwikiにあるプラグインのうち、プログラム的なことを可能にするプラグインのこと。書式が@@から始まるので、他のプラグインと見分けがつきやすい。なお、正式名称は@@ActionTrigger。
従来のwikiwikiや、他wikiサービスのプラグインとは一線を画した[要出典]ものであり、なんと1つのページで完結できる高度なギミックを組むことができる。もちろん、ミニゲームページを作ることが余裕で可能になる。一度やってみれば意外と難しいものでもないので、とにかくやってみよう!
というかミニゲーム系ページを皆もっと作ろう!!

普通の記事でも使い道はもちろんあるよ。

用語解説

以下からのテンプレの解説のために、用語解説を簡単にしておく。ただし、このページはあくまでプログラマブルプラグインの解説とテンプレのためのページであって、プログラムを解説する場所ではないためガバガバである。

  • 変数
    中身を変えることができるもの。変数は箱であり、箱の中身を変えることができると例えた方が分かりやすいか。
    数と名前に付いているが、数字にこだわる必要はない。変数の名前を決める時は、全て文字でも良いし、中身も数字じゃなくたって良い。
  • 変数の中身。つまり箱の中身。1つの変数は1つの値しか取ることができず、新しい値が指定されたときは、古い値が消えてしまうので注意。
    値とは言うが、こちらも数字にこだわる必要はない。
  • 定義
    変数に値を指定すること。逆に、変数に値がなにも指定されていないときは、未定義と言う。未定義状態はnullと表現されるので、覚えておこう。
  • 演算子
    計算や比較するために必要な記号のこと。具体的には「+,-,*,/,<,>,=,<=,>=」のこと。なお、このうち「*,/」に関しては現在、対応しているものがない。
  • 関数
    ある変数の値がどうなっているかを常に監視して、値が条件を満たせば特定の処理をする機能。現在はwhen関数のみの実装に留まっている。

プログラマブルプラグイン

変数定義系

@@var

@@var(変数=値)
変数を作って、値を定義するもの。値を定義しなかった(空欄にした)場合は、nullとして扱われる。
これがないと何も始まらない。ページの途中途中に点在していると、分かりにくくなってしまうため、見やすいところにまとめて書いておこう。また、どれだけ書いても本文中に文字として出力されることはない。他のも大体そう。

↓ここにあるよ↓
↑ここにあるよ↑
書式
↓ここにあるよ↓
@@var(he=ボブ)
@@var(you=田中)
↑ここにあるよ↑


@@RNG

@@RNG(変数=値0,値1,値2)
変数を作って、値を指定したものからランダムに選んで定義するもの。値が数字であれば、n-mという書き方で「n以上m以下の整数」をランダムに定義することができる。上では値が3つしかないが、もちろん何個あっても良い。
値の切り替え方については@@buttonを参照。

↓ここにあるよ↓
↑ここにあるよ↑

書式
↓ここにあるよ↓
@@RNG(his_action=✊️,✌️,🖐️)
↑ここにあるよ↑


@@list

@@list(変数=値0,値1,値2)
変数を作って、指定した順番通りにそれぞれの値を定義するもの。最初は値0を値に持つ。
どうやって値を切り替えるのかについては、@@buttonを参照。
ちなみに、変数の番号は1番目が最初なのではなく、0番目が最初である。

↓ここにあるよ↓
↑ここにあるよ↑

書式
↓ここにあるよ↓
@@list(your_action=✊️,✌️,🖐️)
↑ここにあるよ↑


変数出力・入力系

@@show

@@show(変数)
指定した変数の値を表示するもの。値がnullな時は、何も表示されなくなる。
これと@@buttonと@@whenのみが、文中でも動かすことができる(他のものは単独の行でないと動かない)。また、値が変わると表示もそれに変わる。

あなたの名前:

書式
あなたの名前:@@show(you)


@@input

@@input(変数){表示文字}
指定した変数の値を、入力欄を使って自由に変えられるもの。表示文字は、入力欄が空白時に薄く表示される。
変数を決定させる時のsendボタンは、@@buttonとのものとは違って、1つの変数を変更するためだけの独立したボタンになっている。@@buttonみたいに他の変数も同時にいじることはできない。

なるほど…  と言うんじゃな!

書式
@@input(you){君の名は?}
なるほど… @@show(you) と言うんじゃな!


@@button

@@button(=値0,=値1){変数0,変数1}[表示文字]
指定した変数の値を、他の値にしたり、(値が数値であれば)足し算や引き算したりすることができるもの。とても重要。表示文字は、ボタンに表示される文字のこと。
()部分で使える演算子と記号、その意味は下の通り。

=値
指定した変数を任意の値に変更する
 
+値(数値)
指定した変数に任意の値を加算する*1
 
-値(数値)
指定した変数に任意の値を減算する*2
 
$変数
任意の変数の値を扱うことができる
たとえば=$変数Aで、指定した変数を任意の変数Aの値にコピーすることができる
同じ具合で+と-でも勿論使える*3


また、@@RNGまたは@@listで定義された変数に対しては、下のような操作が可能となる。

=reroll
指定した値の中からランダムに1つ選び、定義する
 
=next
現在定義されている値の次の値を定義する
 
=previous
現在定義されている値の前の値を定義する
 
=n (nは番号)
n番目に指定されている値を定義する


君は…  と言うんじゃな!
ライバルは…  と言うんじゃな!

自分の名前:

ライバルの名前:

書式
君は… @@show(you) と言うんじゃな!
ライバルは… @@show(he) と言うんじゃな!

自分の名前:
@@button(=ああああ){you}[ああああ]
@@button(=不適切なユーザーネーム){you}[うんこ!w]
@@button(=わしにしね){you}[わしにしね]

ライバルの名前:
@@button(=ひひひろし){he}[ひひひろし]
@@button(=うーん、こ!w){he}[うーん、こ!w]
@@button(=$you){he}[自分の名前をコピー]


関数系

@@when

@@when(変数=値)[
中身
]
指定した変数が、設定された条件を満たした時に中身を表示するもの。条件を満たしていない時は表示されず、隠されている。ただし、あくまで表示が隠されているだけなので@@varは働いてしまう。特定の時に@@buttonを介さず変数を設定したいなら、@@ifの実装を待とう。
中身に@@whenを入れるという入れ子構造が可能。しかし、;(and条件)の登場により登場機会は減った。また、中身は複数行書くこともできるが、@@buttonのように1文だけにすることもできる。
()部分で使える演算子と記号、その意味は下の通り。

=値
指定した変数が任意の値と一致する時
 
!=値
指定した変数が任意の値と不一致の時
 
>値(数値)
指定した変数が任意の値より大きい時*4
 
<値(数値)
指定した変数が任意の値より小さい時*5
 
>=値(数値)
指定した変数が任意の値以上の時*6
 
<=値(数値)
指定した変数が任意の値以下の時*7
 
=null
指定した変数が未定義の時
 
!=null
指定した変数に何か定義されている時
 
$変数
任意の変数の値を扱うことができる
たとえば=$変数Aで、「変数Aの値と一致する時」という条件になる
同じ具合で<や!=などでも勿論使える*8
 
変数0=値0;変数1=値1
指定した全ての条件を満たした時
条件はいくつでも増やせるし、演算子も何でもいい


ジャンケンをしよう!


書式
@@var(mode=)
@@RNG(battle_stance=eternal_won,eternal_drawn)
ジャンケンをしよう!

@@when(mode=null)[
出す手:@@button(=0,=$battle_stance){your_action,mode}[グー]@@button(=1,=$battle_stance){your_action,mode}[チョキ]@@button(=2,=$battle_stance){your_action,mode}[パー]
]
@@when(mode!=null)[
あなたの出した手:@@show(your_action)
 @@when(mode=eternal_won)[
  @@when(your_action=✊️)[@@show(he)の出した手:🖐️]@@when(your_action=✌️)[@@show(he)の出した手:✊️]@@when(your_action=🖐️)[@@show(he)の出した手:✌️]

 負け!
 ]
 @@when(mode=eternal_drawn)[
  @@show(he)の出した手:@@show(your_action)

 あいこ!
 ]

@@button(=,=reroll){mode,battle_stance}[もう一回]
]


コメント


閲覧数

今日0
昨日0
合計0