「楽園追放」を見て

楽園追放をiTunesで借りて観ました。

以下内容のネタバレを含みます。
まだ映画を観てない方はご注意を。

まず物語のあらすじと細い考察は省きます。
以下が詳しいので気になる方はご一読を。
楽園追放と東映アニメのロボットアニメについて

さて、では私なりに思うところを書きます。

皆さんいろいろな意見があると思いますが
私が気になっているのはただ一点のみです。

「フロンティアセッターは現れるか?」
(以下長いのでFSとします)

FSは明らかに「強いAI」です。

人間と会話ができる、感情を持っている。
それも並大抵の内容ではありません。

「お偉いさんの逆鱗に触れたんだろう…」
私たちにかかれば簡単に意味がわかりますが

「お偉いさん」とは誰で
「逆鱗に触れた」とはどういう意味で
それが何を意味するのかということさえ理解し
仁義を通すためアンジェラの救出に向かった。

そんなことが簡単にできるわけがありません。

少なくとも人間と同等の
示唆されている範囲では恐らくそれ以上の
非常に高い知能を持っています。

しかしFSは目的のために何をしたか。

人間の在り方に理解を示し
無理やり彼の理想を押し付けるでなく
一人外宇宙へと旅立ちました

あのくらいの知能を持っていれば
きっとターミネーターにだってなれたはずす。

でも彼はそうじゃなかった。

正直に言うと、私はこの映画を見るまで
ディストピアもいいんじゃないかと思っていました。
ターミネーターだっていいじゃないかと。

それには理由がありますが、省略させてください。
(大義などはなく、ごく個人的な問題なので)

でもある意味で気付かされました。
AIは人間の上位互換ではいけないと。

FSはどこか人間を超越した部分があった
そういう風に私の目には映りました。

いや、超越はしてないのかもしれません。

「ただ肉体を持つことがなかった」
それだけの違いかもしれません。

しかし彼はただ純粋に知能のさらなる
発展を願っていたのだろうと思います。

Sさんが再三言ってますがやっぱり私たちは
ターミネーターを作ってはいけないんだと。
改めてそう思わされました。

それにしてもまどマギといい私という人間は
とことん虚淵作品にやられっぱなしですね。

それだけ薄っぺらい人間だということなのか。
はたまた虚淵さんがそれだけすごい人なのか。

まぁ前者でしょうか。

いずれにせよ私にはFSを作りたいという
そんな淡い夢を芽生えさせてくれました。

とても楽しく有意義な一時間半への感謝を。

Xcode6でSDL2を使う際の注意

ハマったのでメモ

Xcode6でSDL2を使おうとするとビルドして実行した瞬間に死ぬ。

どうも重要なのはコイツっぽい。
EXC_BAD_ACCESS (Code Signature Invalid)

いろんな場所で
codesign -f -s /Versions/A/
すれば上手くいくよ!って書いてあるのに
どうやっても上手くいかない。

色々探し続けた結果ここにたどりつきました。
http://v002.info/forums/topic/code-signing-for-yosemite/

手順的には
1. Copy Filesに必要なFrameworkを突っ込む (SDL2とその周辺)
2. Code Sign On Copy にチェックを入れる
3. 左側にFrameworkが出てくるのでLink Binary With Librariesにドラッグ

これでビルドできました。

それにしても厄介なことこの上ない、はぁ。

【RevolutionBMS】進捗報告

Mac向けにBMS開発を初めてはや3週間ほど…

音出るようになりました!
ここまでの基盤作り長かった!

こっから細いオプティマイズかけて
譜面再生つけて
またオプティマイズして

みたいな日々になると思います。

Sprintあるしどこまでできるか…
うへぇ

Macの人たちが快適にBMSが遊べるように
そのためにもがんばらなくては

変なことしたらSafariが死んだ

今朝のことでした

Twitterにアクセスしようとして
パスワードを間違えて
「保存してあるパスワードを更新するか」
というメッセージを急いで閉じて
そのままタブをその流れで閉じたら
Twitterにアクセスする度にフリーズするように

一日お出かけだったので放置してたんですが
帰っても治らない上に他のページも開けない

共通点はログインが必要なページ
それもKeychainに登録してあるページばかり

これはおかしい

まずSafariのリセットを試みましたが
あえなく失敗

Keychainの同期を切って一旦データを削除
それでも失敗

最後の手段、システムの再起動
復活

どこか裏で詰まってたんですかね

似たような症状の出た方、再起動がおすすめっぽいです

Mac de BMS (Lunatic Rave 2) 【5/30 9/20追記】

できたのでメモ。

IIDXプレイヤーの夢、希望
それはオウチマニアこと「BMS」

Windows向けにはLR2というのがありますが
Mac向けのまともなBMSプレーヤーはありません。

作ってもよかったんですがWineを使ってみたら…
なんとLR2起動できたんでメモっておきます。

※追記 【5/30】
以下の手順を実行する際に事前に
Xcode Command Line Tools
の導入が必須でした。
0. に追記しましたのでご確認ください。

0. 必要ツールの導入

iTerm2のインストール

先ず何をするにも基本のソフトから、iTerm2というソフトをインストールしましょう。
というか、書いててわかったんですが標準のターミナルだとなぜかバグります。
なぜかはわかりません、ふしぎ。
サイト: http://www.iterm2.com

Xcode Command Line Tools の導入【5/30追記】

次にXcode Command Line Toolsを導入しましょう。
まず↓をコピー!
xcode-select --install
そしてiTerm2を起動してください。
起動したらハッカーっぽい画面が出てきます! (手順1. 参照)
そこにペーストしましょう。
そしてエンターを押すとインストーラが走ります!

1. Homebrew導入

とりあえず何も考えずにHomebrewをいれましょう。
サイト: http://brew.sh

一応導入方法を画像付きで説明します。
とりあえず何も考えずに↓をコピーしてください。
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

次に”iTerm”を起動します。

起動するとこんな感じ!ハッカーっぽい!
screencapture 2014-05-23 16.36.07

で、何も考えずにペースト。
screencapture 2014-05-23 16.37.28

で、エンターを押しましょう。
なんかごにょごにょとやってくれます(たぶん)。

2. Wineをインストール

次に、Windowsのプログラムを走らせる「Wine」というツールをインストールします。
↓をまたターミナルにコピペ!
brew install wine
エンターを押すとばばーっと出てきて最終的にこんな風になります。
screencapture 2014-05-23 16.58.34

3. LR2を入手

さぁ、さっさとLR2をダウンロードしてしまいましょう!
サイト:http://www.lr2.sakura.ne.jp/index2.html
フルセットでダウンロードしちゃってください。
この時ダウンロードしたファイルをDesktopに移動しておきましょう。
念のために名前が「LR2beta3」になっていることも確認してください。

そしてsongsというフォルダをLR2beta3の中に作って下さい。
その中にBMSの曲をいれておきましょう!
# LR2の機能で解答せずに曲追加なんかもできるみたいなのでやってみたい方はどうぞ

4. いざ、起動

いよいよ!起動します!

起動の部分もターミナルでやります。
まず以下を実行しましょう。
cd ~/Desktop/LR2beta3
これでLR2のディレクトリの中にいきます。

以下のコマンドを実行してみてください。
wine LR2.exe

するとこんな感じになります。
screencapture 2014-05-23 17.01.18-edit

赤枠で囲った「JUKEBOX1」というところをクリックしてください。
するとこうなります。
screencapture 2014-05-23 17.01.33-edit

次にこの「ルートフォルダ追加」をクリックしてください。
フォルダ選択画面が出るのでさっき作ったsongsフォルダを選びましょう。
screencapture 2014-05-23 17.01.45

確認画面が出るので適当に「YES」をぽちっ
screencapture 2014-05-23 17.01.50

終わったら真ん中に追加したフォルダの名前が出ます。
screencapture 2014-05-23 17.01.52

そしたらいよいよ本番起動!
左下のLR2を起動を押すと…

screencapture 2014-05-23 17.02.06

起動できた!
わーいわーい!

※追記【5/30】
たぶん普通に起動するとノーツの流れがチラつくと思います。
そんな時は「LR2の起動」を押す前にSYSTEMタブを開いて下さい。
そして「垂直同期(プレイ中にちらつくなら変えてみてください)」
にチェックを入れて下さい。
たぶんこれで治ります。

※追記【9/20】
一部のBMSが動作しないバグについてですが、これはWineのバグではなく
LR2そのもののバグかと思われます。BMSのプレイに失敗した場合該当する
BMSの譜面ファイルをメモ帳で開き、動画の拡張子のついた背景定義ファイル
(#BMPで始まる行)を削除してください。

例: #BMP01 video.mpg

【WeBMS】1小節の高さ

数学といってもかんたんですが。

最近Web向けのBMS Playerを開発しています。

そこで気になったことがあったのでメモ。

1小節の長さってどう計算するんだろう?

ここに細い計算式が書いてあります。

で、計算してみました。

n [Beats/Min] // BPM
m [Beats/Bar] // 一小節の拍数
f [Frames/Sec] // FPS
h [px] // 目に見えるレーンの高さ
a // 速度倍率 (無次元)

まず、n BPM、b 拍、f FPS の時、1小節の
演奏時間をフレームの数として算出します。

bar_frame = m [Beats/Bar] * f [Frames/Sec] / (n [Beats/Min] / 60)
bar_frame = m [Beats/Bar] * f [Frames/Sec] / (n / 60 [Beats/Sec])
bar_frame = fm / (n / 60) [Beats/Bar * Frames/Sec / (Beats/Sec)]
bar_frame = 60fm / n [Beats/Bar * Frames/Sec * Sec/Beats]
bar_frame = 60fm / n [Frames/Bar]

となります。

次に速度を計算するために視認時間を割り出します。
IIDXではBPM100の時、1秒でノーツが判定に到達します。
つまり

100 * 29 * 60 = 174000 [Beats/Min * Frames/Min * Sec]
100 * 29 * 60 = 174000 [Beats*Frame/Min^2 * Sec]

この速度定数から n BPM、b 拍、f FPS の時の
視認可能フレーム数を算出します。

visible_frame = 174000 [Beats*Frame/Min^2 * Sec] / 29 [Frames/Sec] * f [Frames/Sec] / n [Beats/Min] / a
visible_frame = 174000 / 29 [Beats*Frame/Min^2 / Frames/Sec * Sec] * f [Frames/Sec] / n [Beats/Min] / a
visible_frame = 6000 [Beats/Min^2 * Sec * Sec] * f [Frames/Sec] / n [Beats/Min] / a
visible_frame = 100 [Beats/Min 1/Sec * Sec * Sec] * f [Frames/Sec] / n [Beats/Min] / a
visible_frame = 100 [Beats/Min * Sec] * f [Frames/Sec] / n [Beats/Min] / a
visible_frame = 100f [Beats/Min * Frames/Sec * Sec] / n [Beats/Min] / a
visible_frame = 100f / n [Beats/Min * Frames/Sec / Beats/Min * Sec] / a
visible_frame = 100f / n [Frames/Sec * Sec] / a
visible_frame = 100f / an [Frames]

ここで、bar_frame を1小節に限定します、すると

h [px] * (60bf / n [Frames/Bar] * 1 [Bar]) / (100f / na [Frames])
h * (b * f * 60 * na) / (100 * f * n) [px]
h * b * a 60 / 100 [px]
3abh/5 [px]

以上によって示されることは以下の二点で
1. 小節の高さは、レーン長・拍数・速度倍率に正比例する。
2. 小節の高さは、bpm/fps によらず不変である。
ということです。

【アリアンロッド】CUI キャラシマネージャ

作ってみました

つかいかた
Mac/UNIX
コマンドラインで以下を実行 (失敗したらかっこの中身を実行)
$ wget https://github.com/ktnyt/Arianrhod-Manager/archive/master.zip
($ curl -LO https://github.com/ktnyt/Arianrhod-Manager/archive/master.zip)
$ unzip master.zip
$ cd Arianrhod-Manager-master
$ ./configure
$ make
$ make install
($ sudo make install)

Windows
Cygwinで上と同様に
# 問題がある場合はご連絡ください

操作方法
h: HPの増減
hをおしたあとに + か – を選びます。
下のほうにカーソルが出るので、数字を入力してぽん
m: MP f: フェイトで同様

d: ダイスロール
下のほうにカーソルが出るので、数字を入力してぽん
各目の数と合計値を出してくれます。

今のところ、ついてる機能は

HP/MP/フェイト管理
ステータス管理
・種族:エルダナーン
・クラス:メイジ・サモナー
ダイスロール
スキル一覧(未完成)

で、今後追加予定の機能は

レベル管理
ステータス管理(追加分)
装備管理
判定管理

という感じです

現状パラメータ管理+ダイスロールだけでもかなり便利です

ただ一つ懸念しているのがダイスロールの均一性
おおくの数のダイスを振ると(あたりまえですが)均一になります
おおければおおいほど期待値は 3.5 * n に収束します

まぁこれでもいいんですが、たとえばエニグマなんかありますよね
あれみたいに「絶対に同一の数が出ない」なんてことがあるとこまります

乱数の生成にメルセンヌ・ツイスタを採用しているのですが果たして
A. 同一シードで振った場合、違う値はちゃんとした確率で出るのか
B. もしそうじゃないとしたらシードは変えたほうがいいのか
という点が疑問です。

なんか愚問な気もしますが…
私の予想ではA.同一シードでもちゃんと等確率で出現する、なんでしょう

しらべよ