Mac上でイラスト制作の環境を整えた話

くあんです.
つい最近まで使用していたデスクトップのPC (Windows) が不調になり,
これは不味いなと思い, 今まで作成したイラストのバックアップを取りました. (たいして描いてないけど)

どんな感じで不調になったかと言うと,
・突然シャットダウンするようになる
・電源が切れた後, 電源を付けてもすぐ消えるor付かない

この2つです.
最初はKP41関連の不具合かなと思ったけど, 電源を付けた後すぐ消えるもんだから,
電源の故障で電圧が足りていないとかそんなところだろうなあと素人ながらに推察.

正直大したデータも入っていないし, あとで内蔵のSSDやHDDを取り出して個別でデータ取り出せばいいやって事になり,
運良く電源が付いた時にイラストデータだけGoogleのDriveにぶちこんでやりました.

あぁ, バイトで貯めた15万円で買ったゲーム用PCだったのになあと思ったけど, 5〜6年は耐えてくれたのでまぁ頑張った方だと思います.

そんな訳でMac上にイラスト制作の環境を急遽整える事になったのだが, 準備なんか何もしてないのでAmazon先生の出番.
私のMacBook Proは, USB Type-Cが4つ付いているやつなので, Type-CとHDMI変換ケーブル注文しました.
幸いにも普通のUSBとType-Cの変換器は以前購入していたので, 最低限のものは揃いました.

液タブ専用のケーブルにはHDMI, USB端子がついているので, それを変換器かませてMBPと接続. 無事ディスプレイとして認識してくれました.
接続する時, かなり線がごちゃごちゃして不格好になってしまったので, Apple純正のHDMIとUSBの両方が付いたマルチ変換器があれば綺麗にできそうだと思いました.
今回はそんなお金無かったので, いずれまた買います.

MacOS用の各ソフトとドライバについては, インストールするだけだったので割愛.

ちなみに私のイラスト制作の環境については以下の通りである.
・液タブ(Cintiq 13 HD)
・ペイントソフト(ClipStudioPaint EXとPhotoshop CC)

えぇ, 道具だけ良いのを揃えて練習はそれほどしないタイプです. 日本語に物凄く的確な言葉がありましたね, 宝の持ち腐れってやつです.

バックアップとしてぶち込んでたデータをDriveから引っ張ってきて起動したら, 特に問題なく動いてくれました.
いくら2016年のMBPでも, オンボみたいなもんやし, 数年前のゲームPC(GTX680積んでた)より動作遅いんだろうなと思ってたけど,
それほど大差なくて安心しました. 普段クソデカキャンバス(5000x5000 pxくらい)でお絵かきしているので, メモリの心配もあったけど全体で数G程度なので問題にすらならなかった.

クリスタをMacで初めて起動して気がついたんですけど, キャンバスとその他のツールって別々になっているんですね...
Winの時はろくにアップデートしてないのでもしかしたら勘違いかもしれませんけど.

あと, 液タブ側でクリスタ表示させる時に, メニューバーがMBP側に取り残されて移動できなかったですね.
これに関しては,
www.clip-studio.com
ここを見て解決しました. 早く公式で対応して欲しいと切実に思いました.


書くことも無くなったので最後の一言.

さよならWindowsPC, ありがとうMacOS. 画力上達したいなあ...

WindowsからMacへ乗り換えたお話

趣味や研究などで, MacもといUNIX環境があると一際便利だったので, 1ヶ月くらい前にMacBook Proを購入しました.
お金がない院生なので, 学割Appleローンで2年くらいの分割払いで契約しました. ちなみに税込21万円くらいです.
高い買い物だったので大切に扱っていきたいと思います, というか扱ってます.

WindowsPCから乗り換えた感想(特に感じた差異)

トラックパッドが便利すぎた
スマホ感覚に近いなと思った. 痒い所に手が届く, と言った感じ

・流石UNIX環境だけあって, Homebrew~Python機械学習ライブラリの一連のインストールの手間が楽
WindowsならAnacondaで一括でインストールや, sklearnならpip installすれば今ならscipyなども自動で入れてくれると思うが, まぁ…スタイリッシュだよね

・スタバでドヤれる
→しました.





ここ最近のアレ

>乱数ツールのMac版作る予定あるんですか?
就活終わって相当暇でモチベがあれば作るかもしれない,
けどSwiftやObjective-Cを全く知らないので学習しながら作ることになりそうで辛いなあ, といった次第.


おわり

情報伝達限界速度(光速)を超えると過去に行くというお話

寝てる間に思いついたので, 創作物ネタの一貫, 覚書として記事に残しておく. 記憶は真新しい方が良いので, この様な時間帯で投稿している.

情報伝達限界速度(光速)を超えると過去に行くという話は有名であると思う.
情報伝達限界速度という小難しそうな単語を使ったが, 要するにこの世の宇宙の情報が, 他の情報に及ぼす影響の速度は光速が限界という事である.
もっと分かりやすく言うなら, 物体が他の物体に及ぼす影響(観測される光, 重力など)は光速が限界だよ, という事.

ある空間座標A, Bを考える. 空間や時間は相対的な物であるので, 絶対空間座標を考えるのはナンセンスである. 故に, AとBの離れている距離だけ考える.
ここでは100億光年離れているとする. イメージがし易いようにAの地点を地球と置き換えても良いかもしれない.

A地点の地球から観測されるBの情報は, 当然ながら100億年前の情報である. 逆に, B地点から観測されるA地点の地球の情報も100億年前の情報である.
これは上記に上げたとおり, 至って自然な現象である.

ここで, 物理法則(情報伝達限界速度, 以後光速)を超えて, A地点の地球の人間(A)が, B地点へ瞬間移動したとする. 所謂テレポーテーションである.
従って, B地点へ移動した人間が観測した地球は100億年前の情報なので, 無事に過去に到達した.

……と書くのが一般的だろうが, やはり納得できない部分が発生してしまう. 次は寝てる間に思いついたネタである.

真っ当な方法で, A地点の地球からB地点へ移動しようとすると, 地球視点で光速だとしても100億年掛かる.
今度はA地点の地球から光速で移動出来る宇宙船で別の人間(B)をB地点へ送り込むとする.
100億年掛かって到達した人間(B)は, 人間(A)のいた時空間から100億年経った状態である. 元々同じ時空間上に存在した人間(A)と人間(B)である. 故に, 人間(A)は過去に行っていると同義である.

これを端的に言うならば, この宇宙の空間は, ある地点を始点とすると, その始点から離れれば離れるほどその空間は始点から過去の状態となる, と同義になる.

これ, 情報が伝達するのが光速という事について考えたら自明みたいなもんなんですけどね. 初見さん.
本場の宇宙物理学やってるヒトからすると, 鼻で笑れそうな気がするけど, 創作物のネタにしては上出来のはずなので, これで良しとする.

私の頭ではこれが限界そうなので, 面白そうな意見待ってます.

ポケモンSM 孵化乱数について

この記事はPokémon RNG Advent Calendar 2016の25日目、つまり最終日の記事です。
www.adventar.org

はじめに

今年も残り僅かとなりました。皆さんいかがお過ごしでしょうか。
ポケモンSMの孵化乱数が実用化され、ここ最近、多くの人が乱数調整に挑戦・成功している次第であります。

実用化に至るまで、多くの方の経験や知恵という名の力が合わさって進展し、そしてここまで来ることが出来ました。

私の役割は、スキーム解明の為に必要なデータを揃えた事だけなので、大したことはないですが、
スキーム解明及び最下位1bit埋めパズルを手伝って頂いた、ろいしん先生とさきさん
私のデータだけでは足りない部分の補足に、やつなさんとつぬさん
そしてアルゴリズムの解明に、おだんぽよさんとoupoさん

本当にありがとうございました。


この記事では、当初はSM孵化乱数のまとめ的なものを書こうかと思っていましたが、
他の人が既に解説記事などを書かれているので、補足や備考に近いものを書いていこうと思います。
個人的には、乱数調整をする上で、どうしても知ってほしい事などを書き連ねていきます。

見て欲しい記事

その前にどうしても見て欲しい、為になる記事をご紹介します。
少しでも読んで頂けたら、乱数調整をする上でも知見を広げることが出来ます。

blastoise-x.hatenablog.com
まずSM孵化乱数の調査関連で最も昔の記事です。どのように個体が生成されているのか判明した経緯などが記されています。
ちなみに、この記事にあるデータは私が集計したデータが元になっています。(頑張った)


blastoise-x.hatenablog.com
そして、この記事で詳しいスキームなどの解説が載っています。
どのように乱数値から性別や特性、ボール遺伝などが決まっているのか分かりやすく書いています。

これから話す内容は、これらの2つの記事の知識が前提となっているので、流し読みでも良いので目を通して下さい。

本題

私が制作した乱数調整ツールについて

SM孵化乱数調整ツールとして、こちらの記事に公開しています。
多くの方にツールを使って頂き、成功報告を聞いています。ありがとうございます。嬉しいです。

ところで、他の方が作成したツールと消費が1ズレたり、TSVはどうやって求めるの?という声をチラホラ耳にします。
まずこの2つについて、先程上記に挙げた記事のスキームを用いて解説します。


おさらいとして、個体生成のスキームはこのようになっています。
ニドラン系や両親に変わらずの石、パワー系アイテムの限定的な消費は除外しています。
基本形ということで。

性別決定(1消費)
※♂♀のみ、性別不明は消費なし

性格決定(1消費)
※変わらずの石を持たせても消費される

特性遺伝決定(1消費)

遺伝箇所決定(不定消費)

基礎個体値決定(6消費)
※遺伝箇所と遺伝親で上書きされる

暗号化定数(1消費)
※特に気にする必要はなし

仮性格値(0消費)

性格値再計算(不定消費)
※お守りで2消費、国際孵化で6消費、両方で8消費されます。消費の数だけ色違い判定を受けます。
色違い判定を満たしたらそこで打ち切り、ボール遺伝か謎消費へ進む。
ここがTSV算出の鍵になります。

ボール遺伝決定(1消費)
同じ種族の時のみ消費。両親が同じボールでも消費。

謎消費(2消費)
※個体処理の前後のどちらかは不明

となっています。


実は、ツールによって謎の消費の扱いが異なっています。例えば、私の作成したツールでは、
謎消費(1消費) → 個体処理 → 謎消費(1消費)
となっており、

さびたコイル氏のツールでは、
謎消費(2消費) → 個体処理
となっています。

個体を連続で生成していくと、結局、個体生成消費同士の間に謎消費が2消費入る事になるので、どちらも同じ事になります。
始点をどこから始めるか、ですね。

分かりやすいように、実際に私が色違いが出た時の状況を、図を使い説明します。
色違いと、次の個体がどのように生成されているか分かりやすいよう色を塗っています。

f:id:quandra:20161225193300p:plain

私のツールでは、紫色のseedの部分を始点とし、その時の乱数値を最初の謎消費1個目にしています。
さびたコイル氏のツールでは、その紫のseedの一つ上のseedが始点となっています。これが消費1ズレの正体ですね。

さらに、TSVの求め方ですが、性格値判定が途中で打ち切られているのが分かると思います。

国際孵化+お守りなので8消費の性格値判定が、2回しかされていない
→色違い判定を満たし、打ち切られている

という事です。したがって、最後の性格値判定、つまり打ち切られた箇所の乱数値からTSVを求めることが出来ます。
これは色違いの次の個体が分かっているから出来ることです。

今回の図は、コイキング同士の結果ですので、ボール遺伝が発生しています。
つまり、色違いの次の個体のseedの乱数値から、3つ上(謎消費1個とボール遺伝消費1個を挟んで)の、0x6FCC54D3が色違いを満たした性格値と分かります。
メタモンや異種間の孵化の場合は、ボール遺伝が発生しないので2つ上を見れば良いでしょう。

ちなみにTSVもといPSVの求め方は、
(上位16bit xor 下位16bit) / 0x10
ですので、私のTSVは945と求めることが出来ます。

セーブデータの中身を見ること無く、TSVを求めることができましたね。

さらに詳しく知りたい方へ

もっと乱数調整の事を学びたい!という人向けに、少し難しい記事を紹介しておきます。きっと役に立ちます。

・入門
乱数調整 入門 - mizdra's blog (イベントカレンダー1日目の記事)

・過去作の乱数
BW2孵化乱数の仕組みと方法 : ただの雑記byさき (特性の部分がSMとほぼ同じ処理)

Mersenne twister、及びTiny Mersenne twister関連
メルセンヌツイスタの調律を行列で書く - oupoの日記 (前提知識として)
SM孵化乱数列を計算する : ただの雑記byさき (最下位1bitのお話)
SM孵化の乱数列生成アルゴリズムについて (イベントカレンダー6日目の記事)
Tiny Mersenne twisterの逆算 (イベントカレンダー9日目の記事)

最後のあいさつ

いかがでしたでしょうか?
今回は、SM孵化乱数とイベントカレンダーの最終日という事で、このような記事になりました。
スキームを理解した上で乱数調整を行うと、失敗した時も、スムーズに解決に導くと思います。


私がイベントカレンダーの最終日を締め括って大丈夫なのか疑問ではありますが、最後に一つ締め括らせて頂きたいと思います。

みなさんも楽しい乱数調整ライフを過ごしましょう! チャオ!✋

SM孵化乱数調整ツール

この記事はPokémon RNG Advent Calendar 2016 - Adventarの20日目の記事です。

www.adventar.org

ろいしん先生が、孵化乱数調整の調査の奴隷を募集してから1ヶ月程度で、
ここまで乱数調整が出来るようになるのは驚くべき事ですね。
奇跡の1ヶ月と言っても過言ではないでしょう。


今回はSM孵化乱数調整ツールを作成したので公開します。
→固定乱数やID調整の機能を追加しています。

最新版v2.10aです。
https://github.com/Quandra/SMHatchingRNGTool/releases

ちなみにGithub上にも公開しています。
github.com



常識的な範囲内ならこの記事をリンクして頂いても結構です。

エメラルドできのみ名人乱数

この記事はPokémon RNG Advent Calendar 2016の15日目の記事です。

 

f:id:quandra:20161214112633p:plain

 

 ポケットモンスターエメラルドに、きのみ名人という人物がいる。彼は123番道路に居て、プレイヤーに毎日きのみを2つくれる。

そのくれるきのみには種類があり、

ザロク、ネコブ、タポル、ロメ、ウブ、マトマ、モコシ、ゴス、ラブタ、ノメル

の中からランダムで2つ選ばれる。

 

勿論、このランダムというのは乱数を使っている為、乱数の消費のタイミングさえ一致させれば任意のきのみを手に入れる事が可能となる。今回はその乱数消費の実態と解析について述べていく。

 

きのみの種類を決定する乱数消費のタイミングについて

まず1つ目のきのみは、きのみ名人に話しかけて、「きみにも きのみを わけて あげよう!」のセリフでAボタンを押した時。

2つ目のきのみは、「ほれ えんりょ せずに もう ひとつ!」のセリフでAボタンを押した時。

つまり、Aボタンを押した時にきのみの種類が決定する。フレーム単位での正確な決定のタイミングはこの時点ではまだ分からないが、このタイミングを調整する事が出来れば、任意のきのみを手に入れる事ができる。

 

どのような乱数消費になっているのか

決定時のタイミングが分かっても、きのみの種類がどうやって決定するのか分からなければ意味がない。なので実際に調査した。

ザロク~ノメルの10個のきのみの種類をランダムで決定する、としたらすぐ思いつくのは乱数値をmod10(10で割り、その余り)の値から対応したきのみが選ばれるというものである。

 

この事を念頭に置きつつ、Seed、乱数値、乱数値 mod10と手に入れたきのみのリストをまとめてみた。

f:id:quandra:20161210134718p:plain

乱数値の3E63がExcelの仕様により指数として読み込まれてますが補完して下さい。

この付近のフレームのきのみリストは以下の通りになった。

ノメル
ウブ
ウブ
マトマ
ラブタ
ゴス
ゴス
ザロク
ネコブ
ザロク
ラブタ

 

乱数値 mod10した時の値の並びと、きのみリストを比べてみると、乱数値 mod10した値が連続している箇所と、きのみが連続した箇所が一致している。

つまり、乱数値 mod10の値が4であればウブ、乱数値 mod10の値が7であればゴスのように対応していると判断して良さそう。一旦これが正しいとして表を対応させてみる。

f:id:quandra:20161210140251p:plain

 

ザロクやラブタも乱数値 mod10の値に沿っているので、乱数値mod10説は合っていると見なしても良いだろう。この表からでは、2と3と6の値の時のきのみが不明であるが、順番を考えるとそれぞれタポル、ロメ、モコシと予想できる。実際にリストの先を伸ばして調査した所、予想通りに対応したきのみが得られた。

そして、乱数消費のタイミングは、おそらく両方ともAボタンを押して3F後で合っていると思う。

 

まとめ

乱数消費のタイミングは、まず1つ目のきのみは、きのみ名人に話しかけて、「きみにも きのみを わけて あげよう!」のセリフでAボタンを押した3F後。

2つ目のきのみは、「ほれ えんりょ せずに もう ひとつ!」のセリフでAボタンを押した3F後。

さらに、その時の乱数値 mod10できのみの種類が決定する。mod10した値を0から順番にきのみに対応したリストは以下の通りである。

f:id:quandra:20161210142115p:plain

 

 

 

 

 

 

 

 

 

 

 

え、足りない?仕方ないにゃあ……

 

 

 

せっかくなので、mod10した値が連続している箇所を、0~‭4294967295‬フレームまで検索させるプログラムを作り計算させました。

結果が以下になります。最も連続しているものだけ出力しています。

 

きのみ, フレーム, その時のseed, 連続する数

ザロク -> 1239411864F 0x082AE198 10連続
ネコブ -> 256238458F 0x2F1D8AA2 8連続
タポル -> 82961193F 0x89E6607B 8連続
ロメ -> 329989807F 0xAC6FCC11 8連続
ウブ -> 235665853F 0xD830F65F 8連続
マトマ -> 217703774F 0xAA239986 8連続
モコシ -> 10416347F 0x515AAE4D 8連続
ゴス -> 2762930618F 0x1DCB4EE2 11連続
ラブタ -> 3489973580F 0x7010C9AC 10連続
ノメル -> 75525899F 0x1805B73D 8連続

 

 

大体8~11連続くらいはありました。

 

 

 

 

これだけフレームに猶予(0.16秒程)があれば、どんなにタイミングの調整が下手な方でも合わせられると思います!

 

 

 

 

 

これでいつでも努力値下げるきのみが手に入りますね!

 

 

 

 

 

みなさんも、きのみがどうしても欲しい時は、千万~億単位を待機して0.16秒の間を狙って乱数調整しましょう!

 

 

 

 

 

Q.ところで、これ何の役に立つの?

A.こんな記事を読むよりサンムーンの孵化乱数でseed算出の作業をしてる方が遥かにマシだぞ。

 

 

 

 

 

あとがき

非常に簡単かつ初歩的な乱数調査の例を取り上げたので、解析ってどんな事をするんだろう?と疑問に思っている初心者の人にも分かりやすい物であったと思う

今回は乱数値やmodといった用語が出ているが、こちらに関しては、Pokémon RNG Advent Calendar 2016の1日目の記事の、

を見て頂ければ知識の補完になると思うのでこちらも是非読んで欲しい。

 

そうそう、Pokémon RNG Advent Calendar 2016の最終日に記事を投稿する予定です。

内容は今巷で話題のサンムーンの孵化乱数についてアレコレ書くつもりです。最下位1bitだの個体値測定のやり方を、専門用語書かれても分からないという人向けに出来るだけ掘り下げて説明します。

共感覚について

共感覚という言葉を聞いたことがあるだろうか?

以下、wikipediaから引用。

共感覚(きょうかんかく、シナスタジア、synesthesia, synæsthesia)は、ある刺激に対して通常の感覚だけでなく異なる種類の感覚をも生じさせる一部の人にみられる特殊な知覚現象をいう。 例えば、共感覚を持つ人には文字に色を感じたり、音に色を感じたり、形に味を感じたりする。

共感覚 - Wikipedia

 

分かりやすく言えば、「」という文字にを感じたり、「音階のレ(D)の音」に黄色を感じるといった具合である。連想・イメージではなく感じるのである。

 

色々と調べてみると、どうやら人間が生まれた頃、つまり赤ちゃんの頃は脳のニューロン(神経)の未分化のため、様々な感覚が結びついた状態であるそうで、成長するにしたがって、ニューロン回路が分断されて独立した状態となる。

即ち、誰もが共感覚を持っていた頃があるという事になる。共感覚保持者は成長過程において結びついたまま成長した……という事らしい。(医学もとい脳科学には詳しくないので間違っている可能性あり)

 

これに関してはアメリカの神経科医 ヴィラヤヌル・ラマチャンドラン氏が2007年5月にTEDで公演した内容に出てくるので、興味があるヒトは見てみると良いかもしれない。

www.ted.com

 

ちなみに、私はこの共感覚とやらを持っている。ちなみに「」のように感じている。

wikipediaにも書かれている通り、保持者が多いとされる「文字に色を感じる共感覚」を持っており、以下の画像は私が感じるアルファベットの色である。

(色の他にも、質感(艶など)も感じるが表しきれないので省略)

 

f:id:quandra:20161007011057p:plain

勿論、ひらがな・カタカナ、漢字、数字などにも色を感じるが、身近でない言語は全く色を感じない。例えば韓国語やヒンドゥー語、アラビア語を見ても何も感じない。

 

私にとっては、この文字はこの色以外あり得ない、という感じと同じように、他の共感覚保持者のヒトにとっては「いやー、この文字は絶対この色でしょ」と感じるであろう。

面白いことに、ヒトによって違うはずの共感覚で感じる感覚、グーグル先生で共感覚保持者による報告を調べれば調べるほど、ある程度傾向があるように思える。

例えば、音階のレ(D)の音は、黄色が大半を占めている。これは日本だけではなく、海外でも傾向がある。

(ちなみに私は色聴は持ち合わせていないが、音階ごとに色のイメージは持っている。ちなみにレの音は黄色)

 

共感覚が日常生活で役に立った例は殆ど無いが、まだ自覚がなかった頃、無意識に色と英単語を結びつけて覚えていて、英単語のテストで英単語を思い出せなかった時、「あー、あのオレンジ色で黄色のやつ…あーfだからfre...frequency!」で「frequency」とうまく書いたりしたくらいである。ちなみに私はアルファベットが並ぶと最初と末尾付近の文字の色につられて、ある程度の大きさの塊として文字の色を認識する。

Time」なんて書かれると、全部青色として脳内で処理される。個別にアルファベットと見ようとすると個別に色を感じてしまうが。

 

他の共感覚保持者が実際にどのように感じているかなんて現代医学では確かめようもないし、ここまで書いておいてなんだが、もしかしたら強烈な思い込みの可能性も捨てきれない。けど頭のなかで感じるし多分共感覚なんだろうという事にしておく。