YES Tour 2012

YES 2012年4月17日 日本青年館 大ホールのライブを見に行きました。
毎回来日後しばらくして「え?来日してたの?」というすっ飛ばし方をしていたので、なんだかんだで初めてです。今回も危うく逃すところでしたが、教えてもらったので追加公演でなんとか。
今回は、特に私に多大な影響を与えたRick Wakemanが不在なのと、Jon Andersonも不在ということで、あまり乗り気ではなかったのですが、次の来日があるのかすら分からないのと、Steve HoweとChris Squireが見られるのならまあいいかなという、割と後ろ向きな動機でした。
結局のところ、そういう期待値低めだったところを遙かに上回って楽しめたので良かったですが。それでもいつか、RickとJonも見てみたいな。

Steve Howe
足が異様に細くてちょっと不安でしたが、軽快に弾きまくりだし、ビデオで何度も見ていたにも関わらず、演奏中に何度も弦楽器を変更しているのが印象的でした。Clapは見たかったですが。

Chris Squire
これまたビデオで何度も見ていたにも関わらず、デカイ!小脇に抱えたリッケンバッカーが小さい。
コアメンバーで、メンバーを率いているだけあるのか、ライブ中もあちこち動き回って仲良さそうに演奏していたのが印象的でした。
最初の方は卓のミキシングが安定しておらず、Tempus Fugitではやたらbassやkeyのマイクのボリュームが大きかったのですが、お陰で弾きまくっているベースラインが堪能できてよかったです。

Alan White
ライブではスタジオのテンポのままということはなく、ドラム以外の奏者の調子によってもダイナミックにテンポが変わるのだが(特に年季が入ってからは無理せずテンポが落とされることが多い)、よくあわせられるなと思う。
あまり目立っていなかったです。もっと叩いてもいいのよ。

Jon Davison
白装束で、若かりしJon Andersonのような風貌でした。
声質は結構似ているし(地声はあそこまで高くないようですが)、老いの無い張りのある声だったので、これはこれで良かったと思います。

Geoffrey Downes
Rick Wakemanのように小気味よくフレーズを弾けているというよりも、無理して弾いていてあまり余裕が無いのか、リズムキープが出来ていないような感じでした。特にHeart of Sunriseが怪しい感じで、危なっかしくフレーズ弾いた後にHoweも気にして見ていたようで。インプロビゼーションはRickっぽく弾くよりもオリジナリティで魅せた方がいいんじゃないかな。それ以外はちゃんと弾けないと不味いと思うけれど。その所為もあってか、18日の公演(19日以降の公演は不明だけれど、これらも恐らく)はHeart of SunriseではなくMachine Messiahになったみたいですが。
ただ、キーボードの配置的に背を向けて弾いていたのですが、照明がその目の前にあって眩しかったのかもしれない。流石に照明も気を遣って、ビームを直接当てないようにしていましたが。

 

最後のStarship Trooperの歌唱部が終わってから全員スタンディング。演奏者と観客の年齢的に無いだろうと思っていたのですが、まさか。皆が若返ったような熱気で心地よかったです。

Legacy at Petitcom mkII part.3

PC作れるようにしたり、シート見られるようにしたり、レベルエディタを作りかけていたり。

pmkii_WIP0.jpg

うーん。

pmkii_WIP1.jpg

まだゲームらしい要素は何もなく、下地を作っているにも関わらずコード量が肥大化しているのが懸念事項か。1プログラムあたりの最大行数9999行の既に1/3近くを使ってしまっている。コード以外のデータは極力コード外に追い出すようにしないと間違いなく不足はするだろう。出来るならば、極力スクリプトエンジン化してしまってゲーム進行は全部コード外にしてしまいたいところだが。
あと、マジックナンバーを減らすためにenumのような変数を定義しまくっているのだが、これも結構洒落にならない行数を食っているのでなんとかしたい。その辺のconstantな変数や配列を宣言しまくって初期化したプログラムを分けておいて最初にロード、次に本体プログラムはCLEARせずにロード、とかをやれば比較的まともに解決できそうだが、その辺の切羽詰まったやり方は最大行数に到達したら考えよう。

また、今の段階で既にコードの可読性がやばそうだったので一旦整理。
ラベル分布リストをPC上に作成する(出来れば変数もやりたいのだが、更新が面倒なのでパス)。
検索移動用のラベルを埋め込む。似た処理や続いて呼ばれるサブルーチンの配置をまとめる。更新頻度の低いサブルーチンは下の方に配置する。
変数やラベルの命名規則をガチガチに固めてしまう。グローバルに触られる変数にはprefixをつける。いわゆるローカル変数(呼び出し元や呼び出し先で弄られても影響がない変数)にはアンダースコアをつける。などなど。
プチコンではコピペが1行ずつしかできないので、一旦PC上で作業した方が良いですね。

さて、ぼちぼちと戦闘周りにとりかかっているが、ちょっとエンカウント処理を作ってみて、毎回起動の度にPCを作らんと駄目なのが面倒すぎるなということで、戦闘よりも先にセーブ/ロード周りを作らないと駄目そう。
プチコンのセーブメモリーのMEM$は255文字までなので、PC情報*PC人数+システム情報を詰めなければならないことを考慮すると、ビット単位で詰めていったとしても入りきるかどうかはかなり怪しい。
GRP領域をメモリとして割り当ててしまえば、かなりの量が確保できるが、余計に書き込み読み出しを作る必要があるのと、最終的に利用するセーブデータ量が未だ不明なので、分割して保存することを考える。MEM$なりGRP1個に収まるのならば、後でくっつけてしまえばいいわけで。
LOADは確認ダイアログを省略できるが、SAVEは確認ダイアログが必ず出るので、ダイアログ出まくりでうぜえということになるかどうかは要検証。
やるつもりはないけれど、PCロスト即セーブというのもダイアログが出るので無理なのよね。

Legend of Grimrock part.1

キーストロークに対して敏感というか、予約気味に先行入力として受け付けているのか、押しっぱなしで移動しようとすると、余分に動きすぎて思うように動かない。1セル移動、1/2PI回転を区切りとしてチョンチョンとこまめにキーを押す方が良い感じ。
というか、精密に進むためにチョンチョン押して移動する場合に、ひっかからずにスムーズに移動することが出来るように、先行入力の待ち受け時間を多くとってあるのだろう。

剣HFO、牛斧Fighter、人間氷Mage、蜥蜴短剣Rogueでやってみて、9Fあたり。
Skillに追加ポイントが貰えるTraitsを全員つけて、2分野くらいに絞って伸ばしてみているが50に到達するのはまだまだなあたり、1極化でもしないと50に到達させるのは難しいんじゃないだろうか。

ProtectionよりもEvasionの方が効きがいいのか(前者はDamage Reduction?で、後者は完全回避?)、どちらもバランス良くあるHFOの方が牛よりタフな感じがする。Fighter’s Challengeでも回避しまくりで、食らってもダメージも低めで唯一余裕で生存したのがHFOだけだったという。
一方、level 8のあれではガスが痛いので皆死に。ワープした先の敵の配置で囲まれないかどうか次第でクリアできるかどうかが決まるというのは、運ゲーだと思う。
あと、一発当たりの攻撃力はStrength特化された牛が良いのだが、DPSで見るとどれも対して変わらんような気がする。攻撃を当てると敵はひるむので、Ogreのようになかなかダメージが通らない敵でもなければ、攻撃回数を優先させた方がいいのかもしれない。そうそうOgreは、1セル以上間隔を開けておくと突進してくるので、意図的に狙ってマタドールのように避けて背面攻撃するといいですね。

grimrock-rock.jpg

しかしながら、どう見ても食べるのを躊躇するようなもの(このゲームで言うならば蜘蛛の臓物とか、あの触手とか、スライムの***とか)を、食えと言わんばかりに出されて、嫌々食べなければ飢え死にしてしまうというような状況を当初は期待していたのだが、実際に出てくるのはカタツムリとキノコという現実でも食されているものばかりだったのは残念。
一応ローストしたネズミの足とか、ボイルした虫とか、焼いた蛆とかは出てくるが、調理済みだし。誰が調理したのかは分からないが。

Legacy at Petitcom mkII part.2

え、続けるの?
がっつりと時間が確保できるわけではないのでぼちぼちと。進捗報告的な。

Petitcomkii_WIP.jpg

一人称視点の描き換えのちらつきと遅さは結構解消されて、10フレーム前後でちらつきも無しに。なんとかなりそう。
ただやはり、描き換えるタイルを減らそうと、差分のみ描き換えしようとしたりすると、比較が増えてかえって重たくなるのは変わらないようで。
奥から順に上書きしていっているのを、手前から描くように変更してして稼ぐやり方も、同様の理由から厳しい。これがうまくいくと、もっと軽くなる見込みだし、時折遮蔽されている奥のものが微妙にはみ出していたりするのが防げるのだが。これを諦めて、はみ出ないような絵素材にするしかないのかね。

テスト用の小規模なレベルもなんなので、どこかで見たことがあるようなレベルをちくちくと打ち込んだり。専用のレベルエディタが無いとしんどいことが分かったので、これまた作る必要がありそう。
オートマッピングは多分無しな気がする。
レベルの大きさは通行したかどうかを記録するのならば16×16が効率的で良さそう?

さっさとPCまわりを作ってみたいのだが、それにはまずテキストボックスを作らないと、ということで、チマチマと作る。
文字は横に32文字(枠で2文字分減るので実際は30文字)しかないので、定番のPC一覧表示も情報を切り詰めないと厳しそうだ。
重ねても破綻しないようにしたり、自動改行とか自動サイズ調整など。禁則処理は後回し。選択決定したりする部分も、なるべく汎用的に使い回せるように書いてみる。出来ればタッチ操作でやってしまいたいところだが、面倒なのはもとより、文字サイズが8×8しかないので押しにくかろうということで見送り気味。
ううむ、先は長い。

それはそうと、文字数取得でL=LEN(LINE$(IDX))とかやっていると、時々syntax errorとなるのは何でだろう。全く同じコードで全く同じ文字列を渡しているのに。プチコンmkII本体の未初期化なニオイがする。