2017年8月12日

決まりは変えることができる

なのでまあ、ぶつくさ言ってないで働きかけてみろ、と思うのですよ。
もちろん、働きかけても変わらないこともあるのですが。

例えば、小学校の決まりに低学年は校区外に、高学年は町の外へ子供だけで行ってはいけません、なんて決まりありませんか?
私は、校区の端っこに住んでいました。その上、町の境です。
小学校へ行くよりも近いのに、校区外だから別の町だからと行ってはいけないなんて、理不尽です。
で、長期休暇前のそういう話が出る度に、そんなのおかしいと先生に訴えたわけですよ。
その結果、私の地区の子は保護者が知っていればある程度は行っていいことになりました。
他の地区の子には「いいよなぁ、親が知っていれば行っていいんやろ」なんて言われることもありましたが、コツコツ訴え続けた戦利品です。

中学も「下着は肌色もしくは白」という教師に守らせる気も無い、生徒に守る気も無い校則とか、支給される自転車が校則の違反自転車になっている、なんて言うのは割と簡単にこっそり翌年の生徒手帳から消えていました。
あと、中学の時は生徒会が1年掛けて何かしら生徒に有利な校則に変えていく、っていう伝統みたいなものがあったんです。それで、学年末の集会で、校長先生から、「生徒手帳のこの部分が来年からこう変わります」という説明があって。
そういう、校則を変えていこうという環境にあったためか、何もせずただただ文句を言うのは、とりあえず変えるために動けよ、って思ってしまうのです。

普通に渡りきるのでギリギリ、高齢者は青信号になってすぐ渡りだしても渡りきれないくらいの歩行者用信号の青の時間が、県警に訴えてちょっと延びたりもしました。
暴風警報が出たら「寮生(徒歩圏)は上司から被害確認等指示があれば出社」、「公共交通機関を利用していない人は、自宅待機」、「公共交通機関を利用している人は公共交通機関が動いていれば出社」というのもありました。これ、おかしいと思いませんか? 家から駅も駅から会社も直結していないんですよ。家から駅まで徒歩だったり自転車だったりするのだから、そこが危険なことは他の場合と変わりはないわけですよ。訴えた結果、公共交通機関の利用かどうかの別はなくなりました。

とりあえず、自分はこういうもので、ここはこうおかしいと思う。とはっきり訴えられるのであれば、訴えてみればいいと思うのです。
単なるクレーマー化しないことも大切ですけどね。

もちろん、訴えても変わらないことはあります。
一人の訴えでは動かなくても、複数から同じ訴えがあれば変わるかもしれません。
それと、誰かがなんて思っていたら、誰も動きません。

2017年4月16日

ATOM のパッケージ作ってました

何やってるんだ? って感じですね。
AIRNovelでのゲーム制作にあたり、テキストエディタを物色し直してまして。
ATOMがいいかなって感じだったのですが、AIRNovel用の文法ファイルなどあるはずがなく、自作していました。

文法定義:language-an
タグ、属性、コメント、&計算、&表示&、ラベル、一部の定数を認識します。

予測変換:autocomplete-an
タグ、属性、値、組み込み変数・定数、layoutの属性を入れ込みました。

この二つは、設定画面のインストールからairnovelで検索すると下の方に出てくるはずです。
ATOMでanスクリプトを書こうとしていらっしゃいましたら、どうぞ。

ついでに、私好みのテーマも作ってました。
上記のスナップショットで利用しているテーマです。
jpcastle-light-syntaxという名前で公開しています。


ブログランキング・にほんブログ村へ

2017年3月21日

jekyll のpluginを作ってました

サイトをjekyllで作成しているのですが、AIRNovelのスクリプトをハイライトしようとしても、データがあるわけはなく、プラグインを作ってました。

{% an %};comment
[tag class=true text="test"]
文字[r]
&cal = 2
*label
{% endan %}
の記述を
このように変換します。
色は、cssで指定しているだけですが。

ついでに、折りたたみ用のプラグインも。

## laptext demo
{% laptext open %}
Start lapped text.
...
...
Last row of lapped text.
{% endlaptext %}

After "endlaptext"


の記述で実現できるように。htmlとcssのみで折りたたみ機能を実現しています。
参考サイト

もうひとつ、相対パス指定をできるようにするためのincludeファイルも。
最初に{% include %}しておけば、{{ relative }}でトップページのパスへ戻れるように。


anスクリプトのハイライトは私しか使わないでしょうが、残りの二つはGitHubにおいています。
jekyll_laptext
getRelative


ブログランキング・にほんブログ村へ

2017年3月5日

config画面ちょっと動くようになりました。

AIRNovelで常駐タイプのconfigをと頑張っている件ですが、ちょっとずつ動くようになってきています。

今は、フルスクリーン、スクリーンショット、終了、スクリーンショット保存フォルダ、音量・テキストスピード関連が機能します。
キーから(右に表示してるキーです)のショートカットもつくる予定ですが、そこまではまだです。


にほんブログ村 ゲームブログ ゲーム制作へ

2017年3月1日

config画面を作ってました

画面サイズを決めるところから始めまして、全体は1120*630の16:9にすることに。
そのうち、上部30はコンフィグ用のバーに。下部600のうち左800でメイン画面を。残りにサブ画面を。
そう、メインだけを見れば800*600サイズです。

で、まずはconfig部分に手を付けました。
私は仕込みを作りたい人なので、やりたいところから手を付けると、こういう所からになっちゃうのですね。
今はとりあえず見た目だけ。
大きな項目から選択すると、サブ項目が表示されるという仕込みだけです。
何にも連動していませんので、まだ本当に見た目だけです。

AIRNovelのサンプルゲームはconfig画面を用意するというパターン(タイトル、メッセージウィンドウのメニュー、右クリックからいける)なのですが、常駐タイプも頑張ればできるはず!
次は、きちんと選択した機能が動くように仕込んでいく予定です。



にほんブログ村 ゲームブログ ゲーム制作へ

2017年2月20日

LiLyEのファイルを見直しました

wysの活動再開がなさそうということもあり、メンバーにも伝えて、wysのサイトは閉鎖、LiLyEの紹介は私の個人サイトへ移動という形にしました。

ゲームに付属させているreadmeを更新するついでに、現在の最新版でアプリ化しなおしました。
で、見直していたのですが仕様変更で手直しが必要だったり、ただやり直せばいいというものではありませんでした。

「epic of "Cyprus"」の方は、探し出せたのが暗号化後のファイルで、今のANBooksでは複合化がよくわからなくて、戻すところから一苦労。
戻したファイルも、ものによってはFinderでもプレビューでもフォトショでも見えているのに、AIRNovel上では見えなくて、保存しなおしたり。

「a Reporter's PocketBook」の方は、袋文字にしてたのが消えたり、カラー背景の上に半透明の画像をのせて動かしていたのに、カラー背景が真っ黒になっていたり、疑似環境実行だと問題ないのに、ビルド実行したら画像の位置がずれていたり、原因から探さなければならず、大変でした。
最後のは原因不明のまま、スクリプトをいじってどうにか見た目に問題が無いようにしました。
後の二つは、仕様変更によるもので、スクリプトどうこうするのが面倒でしたので、ソースファイルの一部をコメント化して乗り切りました。

袋文字は[er]時にフィルターも戻されていたのが原因ですので、
Layer.as 87行目 コメント化
// filters = [];

半透明の画像の方は、プラグインでスナップショットを利用していたのですが、塗りつぶしが行われるようになっていたのが原因ですので、
Trans.as 594行目 コメント化
// bmd.fillRect(bmd.rect, MainThread.uiBgColor);

Trans.as 605行目 コメント化
// bmd.fillRect(bmd.rect, MainThread.uiBgColor);

を行いました。

にほんブログ村 ゲームブログ ゲーム制作へ

2017年1月19日

AIRNovel用DB参照プラグイン完成

ゲーム作成の第一歩として、プラグインを作っていたのですが、できました。
もうちょっと具体的なエラーメッセージを出してくれないかと、格闘しつつおよそ10日、DBに格納されているデータを参照するプラグインができました。

RPGを作成しようとしているわけで、敵のデータなんかをDBに入れておきたかったんですよね。
ちょっと英語版も考えていて、テキストを全てDBに格納しておこうかな、なんてのも思っているのです。
最初は、参照するだけのつもりだったのですが、エラーと格闘中に色々試していて、その結果、書き込み対応できました。

AIRNovelでDB参照したいという方って、いらっしゃるのでしょうか。
需要が自分だけだと思うので、公開する予定はないのですが、使いたいという方がいらっしゃいましたら、ご連絡ください。

[getDB DB=データベース名 table=テーブル名 select=抽出カラム where=抽出条件]
で「DB.(テーブル名).(カラム名)(通し番号)」という変数に抽出結果を代入します。

次のようなDBで、

こんなスクリプトを実行すると、

こうなります。

DB作成には、SQLite SorcererというAIRアプリを使用しました。

書き込みする場合は、
[setDB DB=データベース名 text=命令]
で。上級向けです。

---2017/1/22追記
下記の件、アプリからサーバー上のDBを直接操作するのは無理そうです。
そこをなんとかできないことには無理そうです。
一旦、ダウンロードして、書き換えたのをアップロードして、というのは考えたのですが、選択ダイアログが開くんですよね。---

自サイトで販売からする場合、独自プロテクトができるんじゃなかろうか、なんて思ってます。
販売時、メールアドレスをDB格納(PHPとか)
初回起動時、ゲーム画面はメールアドレスとキー入力欄。ブラウザ起動(AIRNovel)
ブラウザで、メールアドレス入力。チェックとキー発行(DB記録)、キーはメール送信。(PHPとか)
ゲーム画面でこの二つを入力してもらって、一致チェック。発行済みチェックしてDB記録。チェック完了とMACアドレスをsys:変数で保存。(AIRNovel)
次の起動からはチェック完了済みでMACアドレスと保存したMACアドレスが同じなら起動、そうでなければ認証やり直し。
という感じで。

キーを毎回発行して、使用チェックするのは、メールアドレスとキーがセットであれば起動できるのを防ぐため。このメールアドレスとキーでいけるよ、という流出を防ぐ。
MACアドレスの一致チェックはセーブファイルごと流出すれば、そのセーブファイルで解除できてしまうのを防ぐため。
キーの再発行はできるようにしておかないと、PCの買い換えに対応できないから。
キーの有効期限を作ると、もうちょっと厳しくできるかな。
なんて考えてます。


その前に、暗号化キーありのDBに接続できる仕組みを入れた方がいいですね……。
---2017/1/22追記
暗号化対応はできました。---

にほんブログ村 ゲームブログ ゲーム制作へ