かりんちゃんの随心遊戯日誌

ゲームの日記、たまに政治の話、香港の話

Jリーグパックによる機械学習など

最近では機械学習の実験として、Google MLエンジンを少し試した。この前のFM地域リーグデータのCA計算で学習したモデルを、MLエンジンを通じてREST API化にし、Angularから読み込むことができる。

 

計算ページ:https://fm-j-league-pack.firebaseapp.com/calcCa

モデルのソースコード:https://github.com/atelierkarin/fm-j-league-data-reader

 

モデルそのものはPythonコードなので、API化はやはりDjangoをやるしかないかと悩んでるところで、調べたらMLエンジンを利用すると自動的にPredictできるということ。
ただし、Python以外ではAPIのエンドポイントはどうやらリージョンをサポートしないようです。モデルを作成する頃では注意するが必要です。

 

さて、それ以外にも2つのツールをリリースしました。1つはフェイスパックの対応変換

https://github.com/atelierkarin/fm-j-league-facepack-converter

もう一つは要望も多いので実験中だが選手の日本語表記を削除ツール

https://github.com/atelierkarin/fm-j-league-jp-name-remover

今週のPS4タイトル紹介

BAYONETTA & VANQUISH

セガゲームス

海外ではとっくに発売されたリマスター。なぜリマスターでも遅れるか、もはややる気はないかもしれない。ただ、まともなBAYONETTAをPSプラットフォームで遊べるのは一つの魅力かもしれない。

英雄伝説 碧の軌跡:改

日本ファルコム

零の続編。零改では新規要素が少ないが、碧ではトワなども追加されそうなのでちょっと気になるかもしれない。

海腹川背 BaZooKa

サクセス

海腹川背の新作…、というもの。

ホンコンの終わり

正直、このブログでホンコンのことを話すことはあまりしたくないけど、ここ数日の出来事は、やはり無視できない状況…。

一国二制度、という戯言は、数年前すでに誰も信用しなかったし、去年のこともあって中共はいつか発狂することもある程度は予想できた。というものの、決め手は、おそらく武漢ウイルスですよね。正直3月で国際の状況が悪化した時点、賠償責任の声が徐々に上がった時点で、ホンコンはこの状況から逃げられないとは思った。

というけど、ホンコンは中共にとっては金、特に外資の金を確保するルートであった。特に米ドルだけは、ホンコンからでない換算はかなり面倒であった。たとえ中共でも米ドルしか信用できないという事実をわかることです。このことをみて、去年のデモ運動からの発展として、民間から「攬炒(らむちゃう)=経済的に相互絶滅」という運動が上がってきた。要するにたとえホンコンの未来と環境を自滅としても、中共に美味しいこと(外資の米ドル)を渡さない。その背景にして出来上がったのは、いわゆる「黄色経済」です。「黄色経済」の理念としては、中共の企業やそれを応援する企業をボイコットし、逆に同じ信念を持ち企業や店を応援する運動。このようなことは本当に効くかというと、最近では中共とその支持者のうるさい声がよく耳にしたので、おそらくかなり効くかと。実際武漢ウイルスの影響もあるため、この運動により、いくつの「親中」企業は潰されたか、かなりの赤字が出ている状況です。

しかしまあ、最近では武漢ウイルスによる、国際、特にアメリカからの賠償請求がたくさんやってくる時点で、普通ではなんとしてもホンコンの国際イメージを守るのが筋だが、それを逆行するのがキンペーですね。まるで「攬炒」を手伝い、自ら経済を潰すような行為です。外資が逃げ出したら、ホンコンはもちろん終わるんですけど、果たして中共はそれでも大丈夫なのかね?

陰謀論としては、ホンコンを人質にする取引、あるいはキンペーは面子を守るための愚行。どっちにしろ、ホンコンはもう終わりましたね。とっくに終わったんだけど。

ただ、たとえ去年の運動がなくても、ホンコンはゆくゆく死ぬなので、この状況を打開するには、やはり大きな変化、特に国際的な大きな変化が必要としている。危機、とは危険、そして機会。確かに短期的にホンコンの運命は真っ暗なんだろうけど、武漢ウイルスによってさまざまな国や人も目を覚めたし、明るい未来はいつかやってくるかと想います。他人任せとは確かにそうなんですが、武漢ウイルスの件もあって中共は信用できないと改めて証明されてる、やつらが存在している限り、台湾、そして世界もいずれホンコンのような運命にたどり着く。WHOを見ればいい、あれは1つ大きな警告である。日本だって他人事ではないはず、自民党の二階、そして北海道の土地問題なども、中国の静かなる侵略です。中共の眼中では人では人にあらず、ただの機械、ただの奴隷。そうね、ペルソナ5やP5Sをやってたときなんか考えたのも、このことだからと思います。あと、軌跡のクロスベルも、実はホンコンに似たような状況で、プレイしているときでは色々と思ってしまう(帝国=中国、共和国=アメリカと考えると、そのままではある)。

 

逃げるか…というのは考えたが、さすがに移民するほどの金を持ってないし、海外で働く意思はあるけど留学経験もなく、この歳になるとやはりかなり難しいかもしれない(機会があればぜひやりたい、金は生活できる程度だけでもいいのです、ぼくは実に割と簡単な人間なんです)。ゆえに、ぼくに逃げ場なんてありません…。確かにパスポートはイギリスからのものですけど、イギリスが何か大きな動かない限りそっちに移動することも出来ない。最悪のことも考えたんだけど、もし犠牲にして世界の明るい未来と引き換えるならば、それもそれで本望かと。

とりあえず、忠告として、中共を信用するな。できればメイドインチャイナを避けて中共に金を渡さないこと。

共産主義の中国が、金で世界を支配しようとしている。あまりにも滑稽な話だが、現実ではもはや笑えない冗談だ。

『英雄伝説 創の軌跡』がCERO審査完了と報告

CERO Cです。

 

自然言語処理と遊ぶ…

最近は圧倒的にプログラミングのほうに夢中ですね…。ゼロから作るDeep Learning 2をやっと読了したが、最後のseq2seqとAttentionに惹かれて、色々と遊びんでいた。もちろん複雑なモデルを組むと行列のサイズに苦戦したこともあるが(正直そこはまだ慣れてない)、どこかで50000個の翻訳サンプルをモデルを入れて、うまく学習できたとみた時、なかなか達成感があるんですね。(Testデータでは正解率が10%しかないけど、よくみたら「彼は私の古い友人です。」と「彼は僕の古い友人です。」のような違いが多いので、おそらくそこまで悪くない。)

Googleの翻訳もこうやって作られたし、ぼくもある程度Googleに近づいたね!とか。

ただ、本場の翻訳はさすがに50000個でも足りないだろうし、それ以上だとボクのパソコンも限界に来ていた。すでにGPUのリソースを使ったんですが、やはり翻訳はそんなじゃ全然足りないと思うな…。

結局、やはりTensorflowなどを使うしか無いよね。以前ではTensorflowを何本も読んだことけど、どれも頭に入らなかった。一つの理由は原理の解説はあまりはっきりにしてない(ただ使えば良いんだよ!というのはぼくは全然納得しないのです)。しかしゼロから作るDeep Learning 2を通じて、関数からレイヤー、レイヤーからモデル、こうやって全部自分の手で組むと、原理も覚えていく。こうして後ろの理論も覚えたいま、もう一度以前理解できなかったTensorflowの本にチャレンジしてみたい。

ただ、あまり遊びすぎて最近脳内はLSTMのレイヤーばっかりになっていて、ちょっと頭が混雑になってしまう。

 

ゲームは、一応零改を進んでいますが、わりと遅め…つーか、買った鬼滅の最新巻すら読む暇がないんです…。

Unityで自分のキャラを動く日記…UnityでHumanoid以外の動きの制御

昨日は無事にモデルとアニメーションをUnityにインポートできました。しかし、Blenderで調整された髪や飾りの動きは反映されませんでした。

これでは納得しないな…と思い、ならば髪にアーマチュアを入れる意味はないやん!ということになるので、色々と調べた。

そして、解決策を見つけました。

f:id:karinchan:20200517124829p:plain

必要なのは、モデリングデータのアニメーションで、マスクを作ること。マスクで「Create From This Model」を選択し、動かせたいアーマチュアをチェックを入れるだけです。これだと髪なども動きましたね…

f:id:karinchan:20200517125400p:plain

周囲のオブジェクトを配置したら、すでにある程度ゲームっぽくに見える。やはり時間と材料さえあれば、いまではゲーム作ることは誰でもできるんですよね(´・ω・`)。

試作品はこちらにアップロードしました:https://unity-projects-237f7.web.app/custom-model/

Unityで自分のキャラを動く日記…アニメーションに死闘

ついにアニメーション。もちろんモーションの調整は初めてなので、色々と苦戦した。

まずは、もちろんBlenderでアニメーションを作ることですね。事前ではネットでいろいろな情報を探したんだけど、やはりいざっ作るというときではそううまくいかない。途中ではアーマチュアを調整したり、キーフレームや操作を間違ったり、さらにウェイトペイントなどをやらないといけない。と、しかし1時間ほどで、なんとなく「歩く」というモーションを仕上げた。

f:id:karinchan:20200516233203p:plain

やはりモーションを作ることは一筋ではないんですね…。ボーンを動くだけではなく、髪や服やほかのオブジェクトも調整したり、細かい動きも。しかし、一番厄介なのはこれではない…。

f:id:karinchan:20200516233539p:plain

「歩く」モーションを仕上げ、いよいよUnityにエクスポートすることになるが…ここが関門であった。Blender 2.8ではそのままアニメーションを作ってFBXにエクスポートすると思ったが、そういう甘い話ではなかった。

 

Unityにエクスポートはできたが、なぜかアニメーションは不完全である。あるいは一部のアニメーションが消えた。何度もやり直したが、結局「静止」「歩く」モーションの両方をうまく認識することは一度もない。さらにアーマチュアを分離したせいか、髪の「静止」とボディーの「歩く」だけが登録されて、全然思い通りにはならなかった。

何がだめだったんだろうか、全くわからないまま色々と試したが、数時間を掛けてもわからない…

 

と、モーションは1つだけ認識される問題に対し、ネットで色々と調べた結果、やっと打開策を見つけた。複数のモーションにエクスポートするには、Blender側で「アクションをストリップ化してNLAに登録する必要である」。さらに、NLAストリップのみ選択し、全アクションを外すこと。

f:id:karinchan:20200516233408p:plain

f:id:karinchan:20200516233200p:plain

また、パーツによって複数のアーマチュアを作成するとUnityは複数のアニメーションと認識するので、それではUnity側の作業は極めて面倒なので、結局アーマチュアを全部一つにまとめた。幸い、こっちの作業による影響はあまりない。おそらく既にメッシュの判定をやったんだろう。

 

f:id:karinchan:20200516233131p:plain

うまく行けた!

これですね、Unityの本のような状態です。なるほど、NLAに登録されたアニメーションだけ出力に調整する必要がある、と。

Blenderの知識はまだ不足であることは認めます、なにせずん子モデリングでいきなりやることなんですから、基本の操作や知識をまともに勉強したこともない…。実際変な操作で手こずったことは何度もあった。

 

さて、Unity側が認識すると話は早い…というわけでもない。なぜかBlenderで調整された髪などの動きは、Humanoidに設定されると無効化されてる…。まあポリゴンに少しおかしな挙動もあった、そのへんは未だに解決策を見つからない。


服のウェイトペイントはBlenderで大丈夫だとしても、Unityでは問題が起こるのでそれも何度をやり直した…。と、やっと無事に、操作もできた。

f:id:karinchan:20200516233126p:plain

まだまだいろんな調整が必要なんですけど(動きは正直あまりw)、ここまで来たら、もう目的は本当に達成したね…長年の念願だった……。