【伺か】ブラウザ上ゴースト実行環境「如何か」【on the Web】(伺か Advent Calendar 2014)
-- 2014/12/10 05:26
今日も今日とて1ヵ月ごとのFC2広告消し投稿やで。
あとこの記事は伺か Advent Calendar 2014の10日目(初日(ぉぃ)の記事だったりしますよ。
10日にたてられたカレンダーの主催が日和って11日から書くことにした隙を突いて初日を掻っ攫ってゆくスタイル。
その後色々あって11日も僕で、こちらです。
さて、現在修論のかたわらWebベースウェア「如何か」を@duxca(レゴキチ)さんと一緒につくっております。
ほら、SSPとかmateriaとかCROWとか、あるいは何か on 林檎、偽林檎、ninixとか、あるやん。ベースウェア。伺かの。
あれのWeb版。
「これまでも色々とブラウザでゴーストっぽいのを動かそうという試みはありました」って?レゴキチ/Webゴーストとか - 駄でべろぱの小ネタWikiとか?
違いますー。大半の有象無象の実験とは決定的に「如何か」は違うんです。
何が違うか、デモページを見ていただければわかります。
→Ikagaka.demo

おわかりいただけただろうか?
既存のnarが動かせます。
大事なことなので2回言いました。
これが「如何か」を「Webゴースト」や「ブラウザで伺か」ではなく「Webベースウェア」と呼ぶ理由であり、またこれが伺かの「Web対応テスト」の再発明に終止符を打つものとして、信じて開発をする理由です。
のちに残るのは技術ではなくコンテンツです。
HTML5/CSS3つかいまくりこと「webさくら」も、開発窓を持つ「JavaScriptで動く何か。」も、SiReFaSo現役の「うじゅら&うじゅう」も、伺かのWindowsべったり仕様の枷を捨てて携帯化をなんとかした功労者「まめフラスコ」も、なしえなかったゆえに、それらは決定打になりませんでした。
『プラットフォームとしての「伺か」がしたがえる膨大な既存のゴーストたちを動かすこと。』
これを「如何か」は達成しました。
方法としては単純で、単にCやC++のコードをJavaScriptのコードにコンパイルする新しくできたコンパイラ「emscripten」で既存の栞をブラウザで動作させただけです。
つまるところ時代による技術革新の勝利です。無論この方法が使えない栞(オープンソースでない・CやC++でない)を使っているゴーストはまだ動きませんし、SAORI等外部ツールを使ったゴーストもまだ動きません。さくらスクリプトとかイベントも未実装なのは当然動きません。それでもこれは大きな、決定的な一歩です。
僕がこの栞関連の作業を達成したあと、シェル関係について過去に旧如何かを作ってノウハウをもっていた@duxcaさんを知り、現在なんとなく共同で作業にあたることとなっています。
既存ゴースト対応!とはいうものの、どれくらい動くの?という疑問。あると思います。
大前提として、如何かは発展途上です。まー動かない機能もたくさんあります。まだゴーストの切り替えイベント対応してませんし、ブラウザの制約でネットワーク関係の機能は将来的にも実装されない可能性大です。
他よく使われるところとしては、着せ替えと3人目以降の挙動があやしかったりします。
栞としてはデモに書いてあるとおり、華和梨、里々、YAYA(機能制限あり)、文5、華和梨7なら動きますが、それ以外はまだ未対応です。SAORI使うとエラーはきます。
でも動きます。
よく使われるさくらスクリプトを重点的になんとかして、SakuraScriptPlayer.jsにあるさくらスクリプトは対応済みです。
執筆現在以下に対応済みです。
\0, \1, \h, \u, \p0 \p[0]
\s0, \s[0], \i0, \i[0]
\b0, \b[0], \c, \n, \n[half]=\n (temporary)
\w8, \_w[800], \_q, \t, \_s, \_s[0,1,2], \x
\q[], \__q[], \_a[], \*, \![set,choicetimeout,timeout], (\q[][]), (\q0[][])
\e, \-, \\, (\z)
\![open,communicatebox], \![open,inputbox,id,wait,text], (\__c)
\![raise]
\_u[], \_m[], \&[]
この範囲で結構なことができます。単純にしゃべるだけのゴーストなら十分といっていいと思います。
事実、アコとなかまたちver2.0はほぼ完璧に動きます。narをダウンロードして如何かに突っ込んでみてください。
「華和梨、里々、文5、華和梨7を栞にして、適切なシェルと場合によってはバルーンを使い、上記さくらスクリプトの範囲で記述されたゴースト」は、動きます。
この点強調しておきます。「ブラウザ上で満足に動くゴースト」はもう作れます。(それは同時にSSPでも満足に動くゴーストでしょう。)
またこのブラウザ対応はGoogle Chromeのエンジンをメインにしているので、Android版Chromeでも動作します。iOSはファイルの取り扱いの関係で今動かせなかったりするそうですが、ベースウェアとしての機能は動くはずです。
Androidの方はスマートフォンにゴーストのnarをダウンロードして、気がついたときにChrome立ち上げてつついたりするといいかもしれません。
そして如何かは進化します。materia、SSPの良く使う機能をさらに実装すること、いずれはSAORI対応や、まだ見ぬ美坂等の栞対応も将来的に視野に入れています。
ベースウェアとしての起動機能、状態の保持なども順次作業していくでしょうし、スマートフォンのタッチ対応もより進んでゆくでしょう。
将来の用途として、これまでGIFアニメとかスクリーンショットPNGとかでやるしかなかった「ゴーストのプレビュー」を、ちゃんと動くサンプルで行うことも可能になるかもしれません。
CordovaなんかをつかってAndroid、iOSアプリにするなんてこともできるかも?不定形ウインドウを作れればLinux、Macなんかでデスクトップ上アプリとしてのクロスプラットフォーム対応もできるかも?
夢はひろがりんぐです。
デバッグがまだまだ必要です。
伺か界隈のみなさんの力をお貸しください。
具体的には、narをつっこんでなんか変だったらバグ報告してください(詳しくはデモページ)。
そういう地道な積み重ねが、ソフトを育ててゆきます。
なにとぞ、よろしくお願いします。
この記事は伺か Advent Calendar 2014の10日目の記事です。
11日はこちらです。
あとこの記事は伺か Advent Calendar 2014の10日目(初日(ぉぃ)の記事だったりしますよ。
10日にたてられたカレンダーの主催が日和って11日から書くことにした隙を突いて初日を掻っ攫ってゆくスタイル。
その後色々あって11日も僕で、こちらです。
さて、現在修論のかたわらWebベースウェア「如何か」を@duxca(レゴキチ)さんと一緒につくっております。
「Webベースウェア」ってなんだって?
ほら、SSPとかmateriaとかCROWとか、あるいは何か on 林檎、偽林檎、ninixとか、あるやん。ベースウェア。伺かの。
あれのWeb版。
「これまでも色々とブラウザでゴーストっぽいのを動かそうという試みはありました」って?レゴキチ/Webゴーストとか - 駄でべろぱの小ネタWikiとか?
違いますー。大半の有象無象の実験とは決定的に「如何か」は違うんです。
何が違うか、デモページを見ていただければわかります。
デモページ
→Ikagaka.demo

おわかりいただけただろうか?
既存のnarが動かせます。
既存のnarが動かせます。
大事なことなので2回言いました。
これが「如何か」を「Webゴースト」や「ブラウザで伺か」ではなく「Webベースウェア」と呼ぶ理由であり、またこれが伺かの「Web対応テスト」の再発明に終止符を打つものとして、信じて開発をする理由です。
のちに残るのは技術ではなくコンテンツです。
HTML5/CSS3つかいまくりこと「webさくら」も、開発窓を持つ「JavaScriptで動く何か。」も、SiReFaSo現役の「うじゅら&うじゅう」も、伺かのWindowsべったり仕様の枷を捨てて携帯化をなんとかした功労者「まめフラスコ」も、なしえなかったゆえに、それらは決定打になりませんでした。
『プラットフォームとしての「伺か」がしたがえる膨大な既存のゴーストたちを動かすこと。』
これを「如何か」は達成しました。
方法としては単純で、単にCやC++のコードをJavaScriptのコードにコンパイルする新しくできたコンパイラ「emscripten」で既存の栞をブラウザで動作させただけです。
つまるところ時代による技術革新の勝利です。無論この方法が使えない栞(オープンソースでない・CやC++でない)を使っているゴーストはまだ動きませんし、SAORI等外部ツールを使ったゴーストもまだ動きません。さくらスクリプトとかイベントも未実装なのは当然動きません。それでもこれは大きな、決定的な一歩です。
僕がこの栞関連の作業を達成したあと、シェル関係について過去に旧如何かを作ってノウハウをもっていた@duxcaさんを知り、現在なんとなく共同で作業にあたることとなっています。
どのくらい動くの?
既存ゴースト対応!とはいうものの、どれくらい動くの?という疑問。あると思います。
大前提として、如何かは発展途上です。まー動かない機能もたくさんあります。まだゴーストの切り替えイベント対応してませんし、ブラウザの制約でネットワーク関係の機能は将来的にも実装されない可能性大です。
他よく使われるところとしては、着せ替えと3人目以降の挙動があやしかったりします。
栞としてはデモに書いてあるとおり、華和梨、里々、YAYA(機能制限あり)、文5、華和梨7なら動きますが、それ以外はまだ未対応です。SAORI使うとエラーはきます。
でも動きます。
よく使われるさくらスクリプトを重点的になんとかして、SakuraScriptPlayer.jsにあるさくらスクリプトは対応済みです。
執筆現在以下に対応済みです。
\0, \1, \h, \u, \p0 \p[0]
\s0, \s[0], \i0, \i[0]
\b0, \b[0], \c, \n, \n[half]=\n (temporary)
\w8, \_w[800], \_q, \t, \_s, \_s[0,1,2], \x
\q[], \__q[], \_a[], \*, \![set,choicetimeout,timeout], (\q[][]), (\q0[][])
\e, \-, \\, (\z)
\![open,communicatebox], \![open,inputbox,id,wait,text], (\__c)
\![raise]
\_u[], \_m[], \&[]
この範囲で結構なことができます。単純にしゃべるだけのゴーストなら十分といっていいと思います。
事実、アコとなかまたちver2.0はほぼ完璧に動きます。narをダウンロードして如何かに突っ込んでみてください。
「華和梨、里々、文5、華和梨7を栞にして、適切なシェルと場合によってはバルーンを使い、上記さくらスクリプトの範囲で記述されたゴースト」は、動きます。
この点強調しておきます。「ブラウザ上で満足に動くゴースト」はもう作れます。(それは同時にSSPでも満足に動くゴーストでしょう。)
またこのブラウザ対応はGoogle Chromeのエンジンをメインにしているので、Android版Chromeでも動作します。iOSはファイルの取り扱いの関係で今動かせなかったりするそうですが、ベースウェアとしての機能は動くはずです。
Androidの方はスマートフォンにゴーストのnarをダウンロードして、気がついたときにChrome立ち上げてつついたりするといいかもしれません。
今後
そして如何かは進化します。materia、SSPの良く使う機能をさらに実装すること、いずれはSAORI対応や、まだ見ぬ美坂等の栞対応も将来的に視野に入れています。
ベースウェアとしての起動機能、状態の保持なども順次作業していくでしょうし、スマートフォンのタッチ対応もより進んでゆくでしょう。
将来の用途として、これまでGIFアニメとかスクリーンショットPNGとかでやるしかなかった「ゴーストのプレビュー」を、ちゃんと動くサンプルで行うことも可能になるかもしれません。
CordovaなんかをつかってAndroid、iOSアプリにするなんてこともできるかも?不定形ウインドウを作れればLinux、Macなんかでデスクトップ上アプリとしてのクロスプラットフォーム対応もできるかも?
夢はひろがりんぐです。
その夢のために
デバッグがまだまだ必要です。
伺か界隈のみなさんの力をお貸しください。
具体的には、narをつっこんでなんか変だったらバグ報告してください(詳しくはデモページ)。
そういう地道な積み重ねが、ソフトを育ててゆきます。
なにとぞ、よろしくお願いします。
この記事は伺か Advent Calendar 2014の10日目の記事です。
11日はこちらです。
- 関連記事
-
-
ゴースト「ずん子on伺か」 東北ずん子賞受賞 (マスコットアプリ文化祭2014) 2014/12/20
-
【伺か】Webベースウェアの作り方(伺か Advent Calendar 2014) 2014/12/11
-
【伺か】ブラウザ上ゴースト実行環境「如何か」【on the Web】(伺か Advent Calendar 2014) 2014/12/10
-
【伺か】Shiolink/Perlの実装【栞】 2011/12/09
-
【伺か】ミドルウェアのんびり制作中【華和梨】 2011/09/10
-

コメント