東京とTokyoの二つ選択肢があるけどどちらがいいんだろうとか、英語にした方良いのだろうかと試行していました。その中で一つ分かったことは、電話番号は最初の0は除いて記述することです。それだけでは登録できませんでした。「アカウントの作成には最大で15分かかります」的な表示が出てきてそれ以上進まない。メールが来るのかと3日間待っても来ないし、chatがあったので、なけなしの英作文能力で質問したら、今審議中で1日かかるよと言われて、結局一日待っても何も起きない。(最大で15分と書いてあるのに、1日かかると言われるのはこれ如何に)※Chatは対応してくれるときとしてくれない時があります。2020年4月の一年間無料の締め切り間近の楽天モバイルよりかははるかに対応してくれる印象。Canaryを使用して登録してみました。Vivaldiの時はメールアドレスを同じやつ何度入れてもメールアドレス検証でエラーを吐かなかったのに、Chromeでは吐いた。Cloud」!秒で届きました。今までの苦労は何だったのか。ブラウザ間で動作違うってよくありますよね。Canaryですら動作異なりますもんね。Canary、Firefox、Edge、IE、OperaとかPCに入れてるんですよね。その日の怒りのノリで書いたこの記事が参考になれば幸いです。2021の24日目の記事です。イベント開催することで24日の予定を阻むFGOの運営の気持ちがよくわかる日になりました。お過ごしでしょうか?前回は、かき氏の「Reactで時間割アプリを作ってみた」でした。私が書いた記事は、前回はGANについて、前々回はOpenCVについて、前々々回はUnityについて書くといったように毎回分野を変えて記述しているので、今回はLive2Dについて記述していこうと思います。~あらすじ~自分の描いた絵が動くと嬉しいですよね。いうわけで、Live2Dやったことないけどやってみました。~キャラについて~今回動かすキャラは、「Angel-Rein」ちゃんです。春のハッカソンで「嫌われているE-Learningを擬人化して対話することで好きになろう企画」の自然言語で会話する対話Botを作成することになりました。その時に、新しいキャラを制作することが好きな私がデザインしたのがReinちゃんです。マフラー付けて冬っぽい服装ですが、考案したのは春で、描いたのは夏ごろです。名前の由来は、E-Learningのアナグラムデザインやキャラの詳細については、ここを参照してください。(別ページへ飛びます。)~出来たもの~※読み込みに時間がかかるかも。Blenderの方が簡単とさえ思えました。いうか実際Blenderの方が簡単だと思います。3Dを絵を変形させて表現するというのが難しい。求められる作業だと感じました。見てください、この点の数!たった腕を動かすだけでこれだけのキーを打ち込まなければなりませんでした。(もっと賢い方法はあるのかもしれませんが)袖が動いて前と後ろが切り替わる所とか、それによって袖がどう動くかとか、腕がより俯瞰した位置ならどう見えるかなどなど考えて動かすとこうなりました。Blenderなら立体図形を作成してしまえば、動き方に応じて図形を編集する必要は無いですが、live2dは立体図形は手元にないけど図形を動かすとこう見えるだろうという予測を立てなければならないです。可動範囲を狭くする、例えば腕の振れ幅を10度だけにする、顔もほんのちょっとしか動かないとかいったことをすれば簡単になると思いますが、回転や拡大縮小以外の複雑に変形しながら動く場合には、それだけで数時間飛ぶ作業量を要求されたりします。あと、原画はキャラ設定画像としてなるべく正面で描いた絵なのですが、少し見栄えよく見せようと顔が傾いていたりします。これのせいで、対称編集が出来ないといった書く段階で知りたかった事柄も相まって難易度を底上げしてしまったようです。物理演算を入れる作業については、あまり細かいところを気にしなかった(気にしている余裕がなかった)からか、結構楽々に設定することができました。この図形を想像しなければいけない部分とかどうにかならないのでしょうか。真に絵を描ける人はこの辺の能力が高いのかもしれませんね。Euclidとかあって、自分の絵を3D化できるという話を聞いて心躍ったのですが、あれはどうやら既に公開停止になっているようです。何が原因で頓挫したのかは分からないですが、上手くいけばメタバース時代の覇権を握れたかもしれないと思えるだけに残念です。それにしても、世の中のVtuberはLive2dであそこまで動かせてすごいんだなぁ~って今回作成してみて感じました。~総括~Blenderではなく、Live2Dを使用する場面というのは恐らく以下の場面でしょう。ご参考になれば幸いです。2021の15日目の記事です(投稿日がずれているのは気にしない)。前回はwatamario15さんのテトリスの電子辞書移植でした。この記事はUnityのShaderのGrabPassに関する内容です。本題シェーダーを触ったことのある人なら大抵一度は触ってみたくなる(よね?)GrabPassではありますが、Unityのドキュメントにはわずか1ページの説明しかありません。その中に、GrabPassで取得したテクスチャ(以下GrabTex)は「後続のパス」で使用できるとあります。この「後続のパス」というのが肝で、私は当初同じシェーダー(SubShader)内で後に来るパスのことを指しているのかと思っていました。ところがある日Twitterを見ていると、異なるシェーダーでもGrabTexが使用できるといった内容のツイートを見かけました(何方のツイートか分からなくなってしまってリンクが貼れない......)。これは試さねばと思い、GrabPassだけをするシェーダーと、GrabTexを貼るだけのシェーダーを書いてみると、なんと確かに異なるシェーダーでもGrabTexが使えているではありませんか!さらにもう少し触ってみると、GrabPassが呼ばれてから、再度同じ名前のGrabTexでGrabPassが呼ばれるまでの間であれば、初めのGrabTexがどんなシェーダーからでも使える様でした。GrabPassが呼ばれるタイミングは通常のPassと同様にRenderQueueと前後関係による(はずな)ので、単純にRenderQueueがGrabPassより後ならGrabTexがそのまま使えてしまうことになります。GrabPassとGrabTexを使うシェーダーのRenderQueueを逆転してみたところ、なんと前のフレームのGrabPassで取得したと思しきGrabTexが使用できてしまいました。その場合オブジェクトを動かすかどうかでうまく描画できなくなることもあったので、実用に耐えうるかどうかは怪しいものですが。これを見るに、GrabTexが使える「後続のパス」は、時系列的に後であれば本当に何でもいいようです。注意点としては、GrabPassをしているシェーダーがカリングされてしまうとGrabTexを使用している側には意図しないテクスチャ(たいてい灰色一色)が渡されることになるので、オブジェクトの配置やBoundsには気を付ける必要があるでしょう。これで何ができるの?GrabTexが他のシェーダーで使えることでどういった表現ができるようになるかと言われると......正直自分にはさっぱり何も思いつきません。オブジェクトの座標を色情報にしてシェーダー間で受け渡しできたりはしますが、それはGPUInstancingを使った既存の手法もありますし、何よりスクリプトが使えれば簡単にできることで、では他にわざわざ他のシェーダーからGrabTexを持ってきてするようなことがあるかというと......。この記事を読んだ方が何か素晴らしいアイデアを実現してくれるといいなぁ。2021、次回の担当者はちょくぽさんです。