超簡単なAnimationLayer

アニメーションGIF的な簡素なAnimationLayerを作ってみました。
──あなたの心の琴線に触れるようなものは何もないです。かといって、他の何があるわけでもないですが。
アニメーションGIF的な簡素なAnimationLayerを作ってみました。
珍しくKAGネタ。
かなり需要のある内容だと思うし、それでなくてもKAG周りは色んなサイトでしゃぶりつくされてると思うんで、探せば同じ内容のTIPSなんか簡単に見つかるのかも知れませんが……一応、俺様用メモという事で。^^;
つーわけで、KAGで©や♡などの特殊な文字を表示させる方法です。こんな感じ。
ひぐらしのなく[ch text="&'\\x2661'"]頃に[r] ぶっちゃけJASRA[emb exp="'\\xa9'"]って、法律に守られてる分893より性質悪いよね。
@chと@embのどちらでも可ですが、個人的には@embの方が冗長さが少なくてスマートかなと思います。
内側のアポストロフィまでがTJS2側のリテラルとして解釈されて、その結果が返されるという感じですね。
その後、色々試してたんですが、TJS2のArray.assignメソッドってオブジェクト型ならなんでも食っちゃえるみたいですね。
つーわけで、さらに改良してみました。
吉里吉里のイベント周りを一括で管理できるクラスを作ってみました。
KAYはよくjavascriptとかで
a == 1 && (b = 2); //もしaが1ならbに2を代入
みたいな事をやるんですが、これを吉里吉里でやるとこんな警告が出るんですねえ。
05:51:48 警告: 論理値が求められている場所で = 演算子が使用されています(== 演算子の間違いですか?代入した上でゼロと値を比較したい場合は、(A=B) != 0 の形式を使うことをお勧めします) at event_dispatcher.tjs line 70
まあ、スクリプトの動作に影響は無い(?)みたいですが……。
普通にif文使えば事足りる話だし、あんまり変な書き方すなという事ですかね。^^;
前回のエントリで書いたforeachですが、ちょっと意図したとおりには動かないみたいですねー。
クロージャが生きてると思ったのは、単にグローバルのメンバを参照してただけみたいです……。
普段javascriptばかり書いてるので、もうすっかりこういうもんだと思ってました。^^;
てなわけで、少々不恰好ですが、やはり明示的に変数を渡す仕様に変えてみました。
TJS2では、javascriptのfor文やPHPのforeach文のような、連想配列を列挙していく構文が無いので、辞書配列(連想配列)の全てのメンバに対して処理を行いたい時にちょい面倒です。
唯一の方法として、Arrayクラスのassignメソッドを使えばキーと値が交互に出てくる配列が得られます。
で、これを利用して簡単なforeach関数を作ってみました。
もっと根気よく探せばどっかに落ちてるのかも知れませんが、KAG用はあってもなぜか吉里吉里、TJS2用の定義ファイルが見つからなかったので。
吉里吉里の組み込みクラス関連とTJS2関連は別ファイルに分けてあります。
吉里吉里用のやつは、かなりざっくり作ったので足らなかったりいらんのが入ってたりするかもです。
※シナリオに関するネタバレは書いてないつもりですけど、見たくない人は見ないで下さいね。^^;
(続きを読む…)
「日刊スレッドガイド」より
Wiiのコントローラーで俺だったらこんなゲーム作る
やはりモーションセンサやポイント機能を駆使したアイデアが多いですね。ホラーゲームで懐中電灯として使う、というのはなかなかそそるものがあります。KAYはアドベンチャーゲーム狂なので、ホラーも普通に好きですし。
個人的には、>>56の
> 寝っ転がって片手で操作してぇ。
を見て、やっぱり俺だけじゃないんだなと思いました。
やっぱそうですよね、片手で操作出来るのって、すごいアドバンテージですよね。加えて、右手、左手を問わないという点も重要なポイント。
最初に見た時、これほどアドベンチャーゲームに適したインターフェースは無いと思ったもんですが、なぜか世間は振り回す事ばかり。
アンチも、叩くポイントはグラフィック性能と「振り回す」という操作に対してのみ。
実際に触ってみるとよくわかりますが、ヌンチャクを装着した状態でもそこらのコントローラよりよっぽど快適ですよ。感覚としては、右手側の握りと左手側の握りが分離したという感じなので、ポイント操作を考えなければ手の置き場所の幅はぐんと広がります。
両手をだらんと落としたままゲームがプレイ出来るなんて!!
んで、ポイントする時だけ手を持ち上げると。
最初は「まあ出たばっかだし振り回すゲームばっかりでもいっか……」とか思ってましたが、「リモコンを振り回すなんて……」という意見も結構見受けられますし、もうちょい早期に振り回す以外の使い方も提示しておいた方がいいのではないかと思い始めてます。
どうすか? 任天堂さん。A・D・V !! A・D・V!!
……とか言いつつ今トワプリにハマっててリモコン振り回しまくってるんですけどね。
コンシューマ機インターフェースネタ第三弾。
今回は任天堂の歴代コントローラについて。
ファミコン時代、当時ゲームにはまった世代の方なら誰でもスーパーマリオブラザーズをプレイした事と思います。
あの単純でありながら爽快な操作性はほんとに画期的だったと思います。
「Bダッシュ」という単語は、このゲームをプレイした事の無い人でも一度は耳にした事があるでしょう。
Bボタンを押しながら移動するとマリオが走り、放すと歩く、というものです。
で、Bダッシュ状態でAボタンを押すと助走が付いた状態でジャンプするわけですが、これは飛距離、高さ共により遠く、より高く跳ぶ事が出来るため、ゲームを進めていく上で非常に重要な操作でした。
この、Aボタンでジャンプ、Bボタンでダッシュという操作はその後のアクション系ゲームでも幅広く採用され、ほぼスタンダードと言っていいほど定着しました。
後に任天堂は、満を持してファミリーコンピュータの後継機であるスーパーファミコンを発売するわけですが、当時小学生だったKAYは、発表されたコントローラを見て「うわあ……使いにくそう……」という印象を受けたものです。(何気に以前のエントリの批判と矛盾した発言ですが、その辺はスルー力を発揮して下さい)
ファミコンのコントローラの場合、Bボタンが内側、Aボタンが外側という風に2つのボタンが横に並ぶ形で配置されていたため、親指の腹でBボタンを押さえ、同じ指の節の部分あたりを使って同時にAボタンを押す、という操作が出来ましたが、スーファミのコントローラではこれが出来るとは思えなかったのです。
ファミリーコンピュータのコントローラ
スーパーファミコンのコントローラ
ただ、ファミコンのコントローラとて完璧ではなく、ボタン中央に窪みがあり縁が出っ張っているという形状もあって、プレイし続けるといわゆる「ゲームダコ」が出来るという弊害もありました。
スーパーファミコンでも、Yボタンでダッシュ、Bボタンでジャンプ、という割り当てであれば、ファミコン以上に快適な操作も可能なのではないかという淡い期待も合ったのですが……思いっ切り裏切られましたね。
やはりファミコン時代のスタンダードを突き崩す事は難しかったようで。
案の定、スーファミのボタン配置でBダッシュ→Aジャンプの操作は非常に扱いづらいものでした。
こう、あらかじめAボタンを押すという前提で微妙に親指の位置をずらしてBボタンを押しているうちはいいのですが、やはりちょっと気を緩めるとどうしても親指の中央でBボタンを押してしまうんですよね。で、その状態であわててAボタンを押そうとするとBボタンから指が離れてしまい、それが操作ミスに繋がる。
明らかに設計ミスだろうがよー任天堂さんよー。
で、やはり任天堂もこの事に気付いたのか、NINTENDO64ではABボタンの高さが逆転しています。
うんうん、やっぱこうですよねー……って。
Opera/9.00 (Nintendo Wii; U; ; 1309-9; ja)
です。
バージョンがちょい古いのが気になる。
うちのお絵描き掲示板のAjaxはちゃんと動いた。まあ、当たり前か。Operaだし。
これって、ネット通してアップデートとか出来るようになるんだろうか。
まさか、メジャーバージョンアップの度にWiiポイント消費するとかじゃないだろうな……。
PSPでもDSでもウィルス出回ってるし、Wii狙いのやつもそのうち絶対出てくると思うんだよねえ……。
まあ、とりあえず今、mixiにログインしたとたんフリーズしちゃってどうしようとか思ってる最中なわけですが。
前回のエントリでWiiリモコンについて語ったので、今回はPSで。
PSのコントローラは、初代からずっと同じ形状を踏襲していますが、PS3に関しては、発表当初はこんな形でした。
この形状が思いのほかユーザの不評を買い、結局はそれまでのものとほぼ同じ形状が採用されたわけですが、KAYはこの時、ちょっとした違和感を覚えましたね。
「なんで実際に触ってもいないのに反発するんだろう」と。
初代PSのコントローラは非常に洗練された使い易いコントローラだったと思うんですが、アナログスティックが搭載されたデュアルショック以降のコントローラについては、一点、どうしても腑に落ちない部分があったんですよね。
皆さん、SELECTボタン、STARTボタンを押すとき、どうしてます?
ちょっと試してみますか。ぽちっとな。

あれれれれれ? 用もないのにアナログスティックが倒れちゃったよ?
自然な形で握りを持った状態でSELECT、STARTボタンを押そうとすると、どうしてもこうなっちゃうんですよね。で、結局真ん中の2つのボタンを押す時には微妙に持ち方を変えなくちゃいけない。これがどーーーーーーにも納得いかなくて。
世間一般の認識としては「どーせそんなマイナーなボタンたまにしか押さないからいいんじゃね?」という感じなんでしょうか? 皆さん、ほんとにそんな事でいいんですかっ!!!(怒
でさあ、初期型のコントローラとデュアルショックの形状を見比べてみると笑える。
デュアルショックは微妙に両ボタンの位置が上なのね。SCEIも最初から問題点認識してたんちゃうん。(笑)
上にずらしても結局問題は解決しなかったけどな。
やはり「どーせそんなマイナーなボタンたまにしか押さないからいいんじゃね?」という結論に至ってこの形状で販売しちゃったんでしょうねえ……。
てゆーかな。アナログスティックに関して、素朴な疑問なんだけど。
なんでどのコントローラも例外なく、コントローラの前面に対して垂直に生えてんの?
握りに手を添えたときの親指の腹に対して垂直じゃだめなの?
こう、手前方向、および内側に少し傾斜した感じでさあ。
いや、実際そういう形状が使いやすいのかどうかは判らんけどね。もしかしたら既にどっかのメーカーがチャレンジしてて、試作段階でやっぱり使いづらいという事で没になったのかもしれないし。
まあ、任天堂がDSやWiiで新しいインターフェースをゲームの世界に持ち込んだように、まだまだゲームのインターフェースって過渡期ですよねって事で。
はい。Wii手に入れました。
触ってみました。まだWii Sportsのみですが。
面白いです。
ポインティングデバイスとしての使い方はマウスで慣れきってるので特に目新しさは無いですが、やはりモーションセンサーは強力ですね。
正直、狭い部屋では危険です。早速脇に置いてあったシンセにリモコンぶつけちゃいましたよ。orz
このインターフェースは、DS同様、おそらく層の拡大に貢献するんだろうなと思います。
ただ、購入前から気になっていた事がひとつ。
メーカーもユーザも、「振り回す」事ばっかりに目が行きすぎじゃね?
でもね……そうじゃない、そうじゃないんだ……。Wiiリモコンのキャパはもっと広いだろ常識的に考えて……。
KAYは昔、サード製のこんなコントローラを買ったことがあります。

これはPSの互換コントローラで、見てのとおり、片手で操作できるように設計されたものです。KAYはこれを、アクション性の全く無いADV専用コントローラとして買いました。
これ、何かに似てると思いませんか?
右手、左手を問わず、片手で操作できるインターフェース。そう、Wiiリモコンです。
アクションを必要としないゲームだと、やはり寝転がって肩肘付きながらリラックスした状態でプレイしたいんです。両手持ちのコントローラだと、それが出来ない。
たまに、片手操作が出来るようにソフトウェア側でボタン配置を工夫してあるゲームがあったりもしましたが、それも完璧ではありませんでした。ちょっと体勢を変えてコントローラを左手から右手に持ち替えたい、と思うことがあっても、左手操作には対応していても右手操作には対応していない、という場合がほとんどでした。
Wiiリモコンは、この問題を楽々解決しています。
これはなかなか凄い事だと思うんですが、この事に気付いている開発者が一体どれだけいるんでしょうか。このままアクション一辺倒の方向に進んでしまうのではないか? と一抹の不安を覚えております。
今はまだいいんです。今までに無かったゲームの楽しみ方、というやつをどんどんアピールしていくべき時期でしょう。出たばっかだし。
でも、世の中にはアクション物に全く興味を示さない人も沢山います。せっかく可能性のあるハードなんだから、そういった人たちを逃さないようにして欲しいですね。
Wiiリモコンの新しい使い方の提示は、やはり任天堂が率先してやるべきでしょう。任天堂は過去に、数多くの良作ADVを輩出していたはずです。そう、「ファミコン~」シリーズです。すなわち、「ファミコン探偵倶楽部」「ふぁみこん昔話」「ファミコン文庫」。
これらの新作を希望します。すごく。もの凄く。希望します。希望しますったら希望します。あと、ファミコン文庫「はじまりの森」はバーチャルコンソールで出ますよね? 雪に消えた過去も、ラジカルドリーマーズもバーチャルコンソールで出ますよね? よね? よね?
もうそろそろADV愛好家に陽が当たってもいいでしょ? 今までずっと耐えたじゃん。アドベンチャー=ギャルゲという図式が出来上がって、何年経つ? や、ギャルゲ嫌いじゃないけどさ。むしろ好きだけどさ。
でも今、まともに遊べるコンシューマ向けADVが逆転裁判しかないって状況はどーよ? そんなにニーズ無いか? ADV。頼みますよほんと。
書き始めてから1年間、一度もトラックバックが無く、トップページの1日のPVも10とかそこらのしょぼいブログですが、Wiiでソフト開発しておられる方の目に留まるよう、願いを込めて。
しかしあれだな。まーた途中からぐだぐだになっちゃったな。そうだ、途中で感情に訴え始めて、論旨がすり替わってしまう現象をKAYメソッドと呼ぼう。今決めた。
あと、ヌンチャクのケーブルはなんでこう↓なってないんだぜ?

コスト削減対策?
KAGではレイヤを表画面、裏画面といった感じで管理してますが、まあ基本的に今見えてるのが表画面、隠れてるのが裏画面って事であんまりこれを意識する必要はないでしょう。よく出来てますよね。
で、今作ってる新システムでは、TJS側から直にレイヤを触る事になるわけで、トランジションする度に操作するレイヤを切り替えなきゃいけないのはあんまり現実的じゃないですよね。
つか、もうどうしようかと思って色々研究しちゃいましたよ。トランジションの動作。
とりあえずトランジションで影響を受けるプロパティは、visible、top、left、で、widthやheightはトラ元とトラ先でサイズが違うと例外が出るみたいなので、あらかじめ同じにしとかないといけないっぽい。
描画系メソッドでのレイヤの描画内容はそのまんま。レイヤの親子関係が変わるとparentとかchildrenとかabsoluteとかorderとか、え~っと、その他、レイヤのz位置に関係するプロパティも影響を受けます。
んでまあ、何とかしてTJS内部でも表と裏を意識せずに操作したいなあと思ったんですが、これがなかなか難しくて。
苦肉の策で簡単なレイヤ管理クラスを作って実現してみました。