「一打鍵ローマ字入力 ローナ」を試してみた。

 ってゆーか、何の予備知識も練習もなしに一つの配列を使い始めることができるというのは非常に新鮮な感じが。
 Qwertyロマかなのほとんどを阻害しないので、AZIKよりもローマ字入力に近い(妨害する要因が少ない)んですな。
 AZIKも確かに近いけど、「KK」で「きん」が出るなどの拡張が、案外と「初期導入時には戸惑いの元となる」だけに、それがないローナの方が「より素のローマ字入力に近い」と思います。


 ALT+1を叩いてからすぐさまハマってしまったのはナイショ(互換母音キーは慣れていないので使っていませんが、ふつうに同時打鍵できる部分は同時打鍵しつつ書いています)。AZIKよりも先にこれを見つけていたら、AZIKにするかどうかできっと迷いまくっただろうなぁ……^^;
 「非常に少ない移行コストで試せる・試すときの心理的負担が少なくすむ」というのは間違いなくアピールポイントになりますし。


 ええと……姫踊子草では「単層同時打鍵」か「複層逐次打鍵」の「どちらか一方」しか定義できないので、完全実装はたぶん無理かと。
 繭姫であれば実装可能……ただし、同時打鍵部分(かな入力部分)に関しては実装が容易なのですが、逐次打鍵部分(ローマ字入力部分)に関しては、実装をどこまで厳密にやるかによって違いますが、結構大変かもしれません。


 なぜ逐次打鍵部分が大変かというと、ローナは基本的に「IMEが持っているQwertyロマかな変換機能を利用して」実装されているのに対し、姫踊子草/繭姫は「ローマ字変換に特有の綴り変換機能」を実装ていないんですね。


 どういうことかというと、

  • 子音を重ねて「っ」を出すための定義を、子音ごとに書かねばならない
    • 【 s e t t o 】→【 せっと 】など
  • 「N」キー単打の後にほかの子音を続けた場合は「N」単打でも「ん」となる定義を、子音ごとに書かなければならない
    • 【 k a n t a n n 】→【 かんたん 】など
  • 「N」キー単打の後に変換操作をした場合は「N」単打でも「ん」となる定義を、子音ごとに書かなければならない
    • 【 k a n t a n [変換] 】→【 かんたん 】など(Nキーの後に変換・無変換・スペースキーが押された場合の定義を書く必要がある)
  • これらが同時に発生する場合もあるので、それに対応する定義を書かねばならない
    • 【 s i m a s e n t t e 】→【 しませんって 】など

 ……というわけで、先に「まともに動くJIS X 4063+α」の定義を作成しないと、ローナの逐次打鍵部分は実装できないことになりそうです(ここを手抜きしてしまうという手もありそうですけれども、それでは「ほぼローマ字」なローナの魅力が台無しになってしまう恐れがあるので、できればそれは避けたいところで)。


 「姫踊子草用の標準ローマ字入力定義」って、いったいどれくらいの長さになるのでしょうか……

そうか……そういえば。

 Nキーは二打鍵しても、「んん」にも「っn」にもならない(「ん」になる)んですな。ということは、Nの連打は単純に「ん」確定でよし&NNAとかは「んんあ」でも「っな」でもなく「んあ」になる、と。


 ついでに「子音2連打+母音」の場合は「母音が来た時点で確定してしまって問題ない」から、ここで切ってよし、と。


 とすると、全体では「普通のロマかな定義に対して4倍弱」の定義があればよさそうですな。

  • 通常定義全て
  • 通常定義(一打鍵定義は除く)をコピペして、先頭文字を二重に定義したもの全て
  • 通常定義(一打鍵定義は除く)をコピペして、先頭文字にNを付加し定義したもの全て
  • 先頭文字を二重に定義したものをコピペして、先頭文字にNを付加し定義したもの全て

 ……大体こんな感じだろうか。
 とりあえず、以前作った「【akiduki.lzh】に、W-ZERO3で実現可能なキー配列を4つ突っ込んでみました。」の定義を流用してみます。新規に作るとなれば面倒ですが、流用だけならばそう面倒でもなさそうですし。

 ちょっと試してみます。

akiduki.lzhに入っている「JISX4063.srt」を流用することに。

 このファイルは、jisx4063.txtをDOSコンソールのSortコマンドでソートした結果が記録されている中間ファイルです。
 まず、ここから余計な空改行・定義ではないものなどは削除。
 あとは、ただひたすらにコピペしまくり、サクラエディタのキーマクロを使って淡々と編集しました(ゆえに、ぼけーっとして作業しています……別に疲れるような部分はほとんど無かった気も)。


 キレイに書けばそれほど行数は増えないはずなのですが、今回は「動作検証ができればそれでよし」と割り切って、かなり手抜きな方法で書いています……そのため、時間は掛からなかったものの、定義の行数は2200行を超えています(^^;)。
 先頭に「=」を追加し、ストローク定義の「最後尾→Tab→文字」のみを改行する……という方法なので、行数の増え方が半端ではありませんでした。
 実定義を張るとさすがに邪魔になるので、一部のみ。

=ntt
a	んった
=ntt
e	んって
=ntth
a	んってゃ
=ntth
e	んってぇ
=ntth
i	んってぃ
=ntth
o	んってょ
=ntth
u	んってゅ
''定義重複''=ntth
''定義重複''u	んってゅ
=ntt
i	んっち
=ntt
o	んっと
=ntts
a	んっつぁ
=ntts
e	んっつぇ
=ntts
i	んっつぃ
''定義重複''=ntts
''定義重複''i	んっつぃ
=ntts
o	んっつぉ
=ntts
u	んっつ
=ntt
u	んっつ
=nttw
a	んっとぁ
=nttw
e	んっとぇ
=nttw
i	んっとぃ
=nttw
o	んっとぉ
=nttw
u	んっとぅ
=ntty
a	んっちゃ
=ntty
e	んっちぇ
=ntty
i	んっちぃ
=ntty
o	んっちょ
=ntty
u	んっちゅ

 こういう感じで定義しています。
 定義ファイルそのものは http://www.eurus.dti.ne.jp/~yfi/keylayout/bin/_jis_x_4063_2000_plus_alpha.lzh で公開しています。


 多分これで大丈夫だろう……と思ってはいますが、かなの定義ミスや「他にも規則があるだろ!」などという瑕疵を発見されましたら、お知らせいただけるとうれしいです。