読者です 読者をやめる 読者になる 読者になる

日々、雑雑と。

いろいろなことを垂れ流し

サイトを大改造:Barba.jsを導入してページ遷移を高速化

JavaScript

はじめに

最近は1つのWebページにヘッダ、フッタ、メインコンテンツ、サイドバーとたくさんの情報を詰め込むため、何かと容量がでかくなる。すると、いちいち別のページに映るたびに、メインコンテンツ以外の共通している要素を再度読み込みなおす必要があり、全体の読み込みの遅さに影響を与える。Barba.jsを使うと、余分な読み込みを省き、更新が必要な箇所だけを置き換えてくれる。今回は、Barba.jsの最低限の実装を行う。

続きを読む

【覚書】PMSをキーボードで遊ぶときの同時押し(3個同時押し編)

メモ BMS

はじめに

PMSという9つのボタンをタイミングよく押して演奏する音楽ゲームが一部の界隈で流行っている(テンプレ)
最近アナログコントローラがぶっ壊れて、PMSをキーボードで遊ぶようになったが、殆どのキーボードは全ての入力を同時に受け付けてくれない。なので、そういう入力が求められるときには、スライドするように一瞬キーを押して離して別のキーを押下するというテクニックが求められる。
面倒くさいのは、同時押しの組み合わせが多いことだ。対応・非対応をいちいち覚えきれないので、うっかりして対応していない同時押しを押してしまうことがある。

今回は、気軽に遊べるキーボードのPMSにおける同時押しの対応・非対応を調べ、覚書を残してみた。
シリーズを予定していて、最初に3個同時押しを調べたあと、4個同時押しを調べる。5個以上の同時押しは調べるかどうか未定。

対象読者

  1. キーボードでPMSを遊んでいるプレイヤー
  2. キーボード向けPMS譜面を作りたい製作者

環境

キーボード

・ELECOM TK-FCM077PBK
USBを経由して有線で接続する
www2.elecom.co.jp

キー配置

BMSで一般的なボタン配置(zsxdcfv)をベースに右側に2個キーを追加した。また、ボタンの呼称については、左から1,2,...,9と番号で呼ぶことにする。
f:id:zatsuzatsu:20161002205805p:plain

3個同時押しの検証

赤:押せなかった(NG)
灰色:押せたけど、某コントローラだと無理押しの括り
f:id:zatsuzatsu:20161002210501j:plain

1+2+α,1+3+α,3+4+α,3+5+α

3個隣接を除いてほぼ押せる。

塊(隣接3個)の同時押し

1+2+3等の隣接した3つの同時押しは、7+8+9しか対応しない。手痛い。

α+7+9の同時押し

メジャーな同時押し1+7+9、3+7+9、5+7+9がNGなので手痛い。他はOK

2+4+αの同時押し

3を除いて全て網羅

4+6+αの同時押し

α=1,2,3はOK。α=7,8,9はNG。

α+6+8の同時押し

2+6+8、4+6+8といった上段3個同時はことごとくNG。なので、これを含む4個同時押し(代表例:2+4+6+8)もNG。

まとめ

普遍的に用いられる同時押し配置の大半がキーボードで叩けないため、キーボードで遊ぶときは、3つ以上の同時押しにすごい神経を使うことになる。解決策として、

  1. 他のキー配置を試す
  2. スコアを代償にして同時押しではなくスライドとして処理
  3. 全押し可能なキーボードの購入

などが挙げられる。次回はこの情報を基に4つ同時押しの調査を行う。

BOFU2016の差分をいっぱい作るゾイ

EC2でBemuseの楽曲サーバを構築してみた

メモ BMS

はじめに

BMSと呼ばれるフリーの音楽ゲームが、一部の界隈で流行っている。
今までにBMSを数十作ぐらい作ってきたが、BMSを遊ぶには、本体をインストールして、曲もダウンロードして、読み込まして、と結構面倒くさい。
その中、最近できたBemuseは、面倒くさい導入の作業をスキップして、ブラウザですぐにBMSを遊ぶことができる。
Bemuse: BEAT☆MUSIC☆SEQUENCEbemuse.ninja

Bemuseは、どこかのサーバに本体があって、どこかのサーバに置かれている楽曲データを読み込んでいる。楽曲データをこちら側で用意すれば、すぐ遊べる環境ができる。今回は、EC2でサーバを構築して、Bemuseで遊べる環境を構築した。

続きを読む

youtubeで見つけたレコメンド曲紹介

音楽紹介

youtubeを徘徊してたら数曲印象的なの見つけたので紹介。

TRNDSTTR (Lucian Remix) / Black Coast


Black Coast - TRNDSTTR (Lucian Remix)
エフェクトが強烈だけど綺麗に聴けるオシャンティな良曲。

にちようび / ジッタリン・ジン


ジッタリン・ジン - にちようび
琉球音階を突き通した曲。
歌詞の至る所に「ダーリンラムネを買ってきて二人で飲みましょ散歩道月が昇るまで」という魅了的な句とメロディがあり、聴いたあともしばらく脳内で流れるぐらい印象に残った。

予定調和の毎日 / 鈴木結女


Dina Giga OP
超起動伝説ダイナギガというOVAのOP曲。
楽器編成がコンパクトだから、質素に聴こえるけど不思議と高揚される。

Pythonの言語仕様に慣れる旅(メモ)

前回の記事
zatsuzatsu.hatenadiary.jp
から、実装を始めて3日程経過。

今までJavaとC,C#,C++と触ってきましたが、
Pythonはコーディング時の制約が他の言語に比べて緩い印象を受けました。
記述の簡単さを極めたような設計のおかげで、あっさりと適応できました。


配列(リスト)周りが非常に扱いやすかったです。

#配列の結合
a = [1,2,3,4,5]
b = [6,7,8,9]
a+b
#a+b = [1,2,3,4,5,6,7,8,9]

これはリストの結合ですが、
いちいち専用の関数を呼び出さずに式だけで終わらせちゃうんですね。
速いプログラム書くなら、この手法は許されるのか疑問には思いますが、便利です。


Pythonは自由度が高くて
1つの処理に対していろんなアプローチができるので、
柔軟であり、自由すぎて返って混乱しますね。



これからもPythonを勉強します。

Python3と1週間の猶予でカードゲームを作ってみる(仕様編)

はじめに

Qiitaに書くほど技術的ではない雑記です。
Pythonを深く勉強するという意味も込めて、
1週間でゲームなるものを作ってみます。

環境

言語:Python3
DB:SQLite3
レポジトリ:Bitbucket

簡単なゲーム仕様

なるべく簡単に済ます。

  • プレイヤーは2人。
  • 毎ターン、山札からカードを引き手札に加える。
  • 手札から1枚カードを選び、場に出す。
  • お互いのカードが持つタイプ(じゃんけんの手みたいなもの)で勝敗が決まる。
  • 勝利すると、そのカードの持つ攻撃力分、相手の手札をランダムで破壊する。
  • 毎ターンの終了時にお互いの手札枚数を確認。0枚になったら負け。

これなら実装できそう!

簡単なカード仕様

これも簡単に。

  • 名前
  • タイプ
  • ダメージ量

シンプル!

簡単なカードタイプ

じゃんけんの手みたいなものです。

  • アタック…グー
  • トラップ…チョキ
  • マジック…パー
  • スペシャル…どの手にも負けない
  • ウィーク…どの手にも勝てない

最後2つのカードタイプは余力があれば実装します。

データベース周り

あまりにも小規模なゲームになるので、ソースにデータ直打ち、あるいはJson形式でもいいと一瞬思いましたが、王道を往くRDBを採用しました。ファイル単位で簡潔に扱えるSQLite3を使用します。

ここまでの進捗

仕様を決めました。
カードゲームには欠かせないカードクラスとデッキクラスを定義中です。。。

ディープラーニングに挑戦中

メモ ディープラーニング

いまいちディープラーニングの仕組みがわからないけど、とりあえず環境だけ構築して実習形式で勉強していく予定。

環境

OS CentOS7
Python 2.7.5
protobuf 3.0.0a3
Tensorflow 0.6.0

備忘録

  • TensorFlowの導入自体は簡単(Linuxの場合)
  • PythonのパッケージのバージョンがTensorFlowと合わないと、めっちゃエラーが出る
  • TensorBoardで外部に結果を出力してブラウザで確認したい。