バージョン違いのセーブデータをどのように共有するか

UnityでWindows用にプロダクト名を変えてビルドすると、名前違いのセーブデータはそのままでは使用できない。

ではどうするべきか。セーブデータを文字列にして、encrypt decryptみたいなことをしたらどうか。encrypt(暗号化)した文字列を、ソフトに入れて復活の呪文みたいにしてはどうか?
復活の呪文の問題が多いのは、初期のドラクエ1,2をやっているプレイヤーならわかると思うが、メモをとる手間をプレイヤーに与える。PCだから楽とはいえ、意味不明な@#132332/.asfa….のような文字列をプレイヤーに覚えさせる負担を強いるのはよくない。

ではプロダクト名を変えずにおくべきか?これはよくない。以前のバージョンの残っているセーブデータが現行のバージョンで機能追加により使用できない場合がある。

カッチリ仕様が決まってから公開するべきという身も蓋もないことは考慮しないとすると、前のバージョンをプレイヤーに選択させ、セーブデータを取り出す処理をいれることがよさそうである。(今のところ実装予定はない)

光量

ドラクエ1のたいまつはキャラの周り8キャラ分だけ照らすものだった。
たいまつがないと真っ暗で、壁にぶつかる音で壁をすすまなくてはならない。
たいまつがあってもいずれ消えてしまう。レミーラという魔法を覚えると、
広範囲に光が届くが、いずれ消える。しかし、プレイヤーはレミーラで照らされた
範囲のマップを何となく覚えている。


プレイヤーに光源を持たせてみたが、もっと暗くてもよいかもしれない。あるいはもたせなくてもよいかもしれない。デバッグのため、マップを歩き回っているのだが、案の定、外壁がなく、永遠に落下するポイントがあった。

格闘代理戦争 松村英明

3月21日さいたまスーパーアリーナでK1のイベントがあった。
Abemaの格闘代理戦争で松村というハードパンチャーが優勝したのだが、
彼のメンタルが弱いことは視聴者も気づいていたのではないか。

彼は練習をもっとしたかったのではないか?魔裟斗は2時間しか練習をさせなかったが、松村はもっと練習をしたかったはずだ。たとえオーバーワークでも。

彼の精神面での疲弊は格闘代理戦争で回を追うごとに見られた。
トーナメントの優勝はただ相手にめぐまれただけであったかもしれない。

松村は発達した上半身に比べ、足が細い。そして、佐野選手にジャブで目をつぶされると、ローキックのカットができず、最後沈んだ。

佐野選手はK1のリングに慣れていて、松村の研究をしてきたはずである。スロースターターだと言っていた彼は序盤に相手のモーションを盗む巧者である。
松村のトレーナーである大宮司氏もそれを知っていて、最初からKO指示を出したのかもしれない。足を折られては、大砲もあたらない。ハイキックを警戒させて、ロー攻めと片目のピンポイントジャブ。それだけで勝った。

松村は格闘代理戦争の時に、魔裟斗さん魔裟斗さんと恭順し、魔裟斗の言うことをしっかり守った。しかし魔裟斗のローキックと左のダブルジャブの指示は佐野選手もしっかり聞いていたはずである。そして、魔裟斗の言うことをしっかり守る松村に佐野選手はそれに対応する。悪循環である。

彼は、高校生の中嶋に負けたら格闘家をやめると言っていた。魔裟斗の言いつけ通りに。この辺からモチベーションの弱さとメンタルの弱さをみせていた。

何処か私と似ている松村を応援していた。そしてあの敗戦はショックだった。
是非また立ち上がってほしい。何度負けても、地下格闘技でも、ロートルの咬ませ犬になっても、続けてほしい。

クォータニオンってなんだ

私のようなできの悪い理系は、
WikiPediaでフーリエ変換を調べてみても意味不明である。

式があるだけ。なんに使うのだ。そもそも意味が分からない数学記号がある。

クォータニオンで調べてみても、丁寧に書かれているけれど意味不明だ。
なんなのだ。この行列は。
橋を渡る際にクォータニオンを思いついて、橋の石に書いたハミルトンの奇行しか
頭に入ってこない。

ここは基本に立ち返るべきと思い、物理のかぎしっぽに飛んだ。
ここは中学生でもわかるように物理数学を書いてくれている、わかりやすいサイトである。

この四元数と書かれている項目を読むと、以下のことがわかる。

①クォータニオンとは四元数のことである。
②クォータニオンを表すqは4つの数の和である。
③sを除く3つの実数にかけられている数i,j,kには規則性がある。
④共役複素数のような共役四元数というものがある。
⑤四元数と共役四元数を使用すると、3次元ベクトルの回転があらわせる。

そして、このわかりやすい(グーグル検索トップ)のサイトをみると、以下のことがわかる。

①絶対値が1のクォータニオンは4次元の回転を表す。
②4次元平面の回転も3次元平面の回転も結局は2次元平面の回転である。
③クォータニオンの乗算は左右の「どちらか」からかけることで「結果が変わる」
④とにかくqpq* で3次元の回転が表せる。(q*はqの共役四元数)
⑤クォータニオンの補間というものがある。

そして、さらに上記サイトの別頁をみると、以下のことがわかる。
①Unityにおけるオブジェクトの回転は下記4つの関数を使用し、
new Quaternion(..,..,..,…)などとは書かない。
AngleAxis()
Euler()
LookRotation()
FromToRotation()
②Unityにおける座標系は数学とは異なる。
③クォータニオンの数学的知識は必要ない。
④回転で困ったらこのサイトをみればよい………。

そして、WikiPediaの四元数を見ると……なんとなくわかったような気がする……。

 

Unityの環境光 光源はどこに

キューブのブロックで密閉された空間のはずなのに、赤い光が見える。
Directional Lightは勿論、トーチやランタンの光のチェックを外してもまだ赤い。
床や壁が自ら発光しているのか。そんなはずはない。
そもそもなぜ赤いのか……。

環境光があるにしても、密閉空間に届くはずがないと思い込んでいたら、
届くらしい。

Window->Ligtingタブを開くと、なるほど赤い。

環境光を黒くしただけで、暗くなった。
前のマップは天井がなかったため、赤い環境光に設定していた。
それで気づいたが、黄色や白だったらお手上げだった。

こちらを参考にさせていただいた。
http://indie-du.com/entry/2015/06/02/214909