お前らな、戦争如きで普段してないハッキングやってんじゃねーよ、ボケが。なんかUnityHubとかもいるし。Vue.jsでデスクトップUI開発か。よーしパパ平和を祈っちゃうぞー、とか言ってるの。お前らな、もっと純粋な悪意やるからその席空けろと。OSSってのはな、もっと殺伐としてるべきなんだよ。刺すか刺されるか、そんな雰囲気がいいんじゃねーか。チームビルディングされてる職業プログラマは、すっこんでろ。座れたかと思ったら、隣の奴が、これが難読化を解いたコードです、とか言ってるんです。そこでまたぶち切れですよ。あのな、こんな難読化は難読化とは言わねーんだよ。得意げな顔して何が、難読化、だ。お前は本当にこのコードを読んでて難しいと思ったのかと問いたい。小1時間問い詰めたい。お前、Base64って言いたいだけちゃうんかと。AGPL化、これだね。今日からAGPLで頒布します。これが通のリリースの仕方。AGPLってのはサーバサイドで動かしてもソース開示要求できる。そん代わりAWSには勝てない。それに突然のリリース。これを行うとコミュニティにforkされるという危険も伴う、諸刃の剣。素人にはお薦め出来ない。お前らド素人は、上から降ってきた仕様書読んで書いてなさいってこった。FujisakiさよならLinux今日はびっくりしました。毎日お世話になっているLinux。その作者がついに嫌気がさしてカーネルのリポジトリからファイルをすべて消去するという痛ましい事件があったからです。本人によるものではありません。何なのか?といいますと、これは別人のforkされたリポジトリに書かれているものです。最初の画像はLinusのリポジトリのページだったはずです。Githubはすべてのfork間でデータを共有している?どうも、Githubではforkしたリポジトリすべてでデータを共有しており、かつ、githubにはあるコミットIDが自分のリポジトリにあるかそうでないかの区別が付かないようなのです。ブラウザだけでなく、gitを使っても、同じようにLinusのリポジトリからこのコミットを取り出すことができます。was....いや...これ...シンプルに頭おかしい仕様だろ...ジョークならいいけどさ今回はジョークだから、いいですよ。悪い大人が悪用したらどうなるんでしょうね?Linusに限らず、自分のリポジトリのURLで自分の名前を騙って意見などを書くことができるわけです。フェイクニュースの情報源にぴったりです。今回の例なら、「Linux開発者がLinuxを削除!Linuxを利用しているIT企業への影響は...」みたいな「ニュース」を書いたら市場が動いたりすらするかもしれません。フィッシングに使うこともできますね。「このコミットでセキュリティ問題を修正したらしい。詳しくはここのソースのn行目に書いてあるURLを見てくれ」と書いておけば、Linusのリポジトリなら信用できると思った人がリンクをクリックしてくれるかもしれません。任意のソースコードを実行させることだってできるかもしれません。上記に書いた通り、gitのコマンドを通してコミットIDの時点のスナップショットが取得できます。「このリビジョンで問題が修正されてるらしいから、使ってみて。fetchするといいよ」と言いながら複数行のコマンドを渡されたら、あなたは「Linusやその他有名な人・公式アカウントなどのURLなら大丈夫」と思ってターミナルにコピペしませんか?でもそのコミットは実はマルウェアが仕込まれてるバージョンかもしれません。オリジナルのリポジトリと同じSHA-1ハッシュのコミットが生成できれば、オリジナルのリポジトリを汚染することができるかもしれません。これはgithub側の実装次第なので、なんとも言えません。ストレージが高いのは分かるけど...なんでこんな事になってしまったのでしょう。これは推測ですが、たぶんストレージを節約したかったからだと思います。Linuxのリポジトリは数GBありますが、それを4万回もForkされたときに実直にコピーしてたら数10TBになってしまいます。悪意を抜きにすれば、forkしたリポジトリ間でデータを共有しても、とくに問題ありません。別人の書いたforkのコミットには、それぞれオリジナルの作者のものとは違うコミットIDが振られます。同じ根本から違う枝が生えるだけです。セキュリティの面では悪手です。今まで見た通りのことに加えて、最近信用性の下がってきた、SHA-1が問題になってきます。SHA-1はGitでそれぞれのコミットを識別するために使われます。セキュリティ担保のためには使われれてません(本人談)。データを共有したとなると、これはセキュリティ問題になりえます。githubのgitの実装次第ですが、もし同じコミットIDをpushしたときに上書きされるような挙動になっていた場合、fork先がfork元のリポジトリを汚染できてしまうかもしれません。github社は内製のgitサーバを用いており、それを知るすべはありません。すれば...SHA-1はまだそこまで破られてはいないので気にする必要は今のところないかもしれません。コミットをgpgで署名してなりすましを防ぐのは有効かもしれません。Gitの最初の開発者でもあるLinusは普段からしてないようですが...。一応、githubには署名されていないコミットにフラグを立てる機能があるので、これを有効にするのもいいかもしれません。そのフラグを忙しい現代人(スマホを覗くとだいたい暇つぶししてますけど)が見てくれるかどうかは別問題です。gitにもgithubにも飽きた正直なところ、飽きた。14年?くらい使ってるよ。githubも10年以上使ってるよ。Fujisakiたまには曲の話をしようと思います。曲調やジャケットはいわゆる原宿系?なかわいらしい感じ。タイトルは「ハッピーライフ」。それに相応しく?クラブハウスで皆でノリノリになれそうな、アッパーなテンポの曲です。そんな表層に騙されるなかれ。難しいわけないんだけどでもそれがまたかわいらしい歌手の声やアッパーな曲調と奇妙にマッチしてていい感じなんです。音楽って面白いですね。悪い電波を発してるよとドアを蹴り続けてるこの後、1番にはなかった、隣人がドアを蹴る様子を模した「コン!コン!」という音が執拗に覆い被さるように鳴り始めるところで変な笑いがでてしまいました。この歌詞の気が狂いそうな雰囲気を、こう表現してきたか!作曲と作詞と編曲が分かれていることが多いですが、すべてを同じ人間がやると、こんな表現もあんな表現もできるんだ!と感心した一曲です。曲を作るようになってから、よく言われているような「歌詞は自分の気持ちの代弁」なんかじゃなくて、明確に鑑賞対象になった気がします。今回のブログのように。Fujisaki今日は3Dモデリングをしたよ。model)「バニラ味の人体」をコンセプトに、男でも女でもなく、年齢もなく、服も髪も耳1もない、そんな人体をモデリングしてみました。野望としては、これをベースに複数のキャラクターが作れたらいいなと思ってます。3Dモデリングめっちゃ大変なのじゃー!!先日Appleも参加したblender、楽しいですよね(雑な導入)。2.8系になって操作体系がフレンドリーになってからというもの、小物や無機物などをちょくちょくモデリングして楽しんでおりました。生物もモデリングしてみたい...でも、出ているキャラクターモデリング本はどれも古く、Blender2.8系以前の本ばかり...そんなときに出合いました:Blenderで作るキャラクターモデリング入門実践ガイド半年程度前に出た本。Blenderは2.8系以降です。...買ってみて驚いた。450ページ!?なんだこの鬼のような手間は!!!!心折れるわ。」といったような言葉でなんとかなる範囲ではなく、キーボードやマウスを操作して作成する際の物理的限界として不可能だと思います。ここで私は考えました。漫画の中では描かれていないだけで、実はベースとなるような3Dモデルが何体か会社で用意してあって、涼風青葉はそれをカスタマイズして作ったのでは、と...。そんなわけで、今回はこんなことになったわけです。本にはなかった苦労ポイントトポロジーの細かい修正・変更をするときはサブディビジョンサーフェスを解除するこの本では常にサブディビジョン・サーフェスを掛けた上で編集画面上でも反映させる、という手順を踏んでいるのですが、この手順ですと細かい頂点の修正はかなり難しいです。サブディビジョン・サーフェスは頂点や辺の位置まで動かしてしまうので、ループカットの位置も表示上の位置と実際の位置はずれてしまいますし、サブディビジョン・サーフェスがきれいに頂点を並べ変えてしまうので、頂点が実際には変な位置にあったとしても気づきにくく、あとで「こんなはずでは...」が発生します。そんなわけで、サブスクリプション・サーフェイスを解除した上でスムースシェード・フラットシェード両方で観察して、変なところが無いか洗い出す作業を定期的にするといいと思います。細かいニュアンスの表現にはスカルプティングも併用する胸の肋骨のふくらみなど、複数頂点にまたがるけど細かい起伏が存在する場合などは、スカルプティングを利用するのも1つの手です。この時はサブディビジョン・サーフェスを掛けておいたほうが陰影などが確認しやすくていいと思います。頂点の並び(3D業界用語としての「トポロジー」)はかなり汚くなってしまうので、上に書いたようにいったんサブディビジョン・サーフェスを解除して並び替えるとさらにきれいに仕上がります。関節まわりは難しい!ウェイトペイントは難しい!関節を仕込んだあと、その関節が曲がった際にどのようにメッシュを変形させるのかを指定する「ウェイトペイント」という工程が存在します。本だとかなりさらっと流されているのですが、かなり苦労しており、いまだに完全に満足する出来にはなってません。ウェイトはポーズを付けた状態で編集する本にはなかったのですが、ウェイトを意図通りに編集するには、実際に曲げた状態でウェイトを塗ると便利です。しまった後も、アーマチュアを選択した状態でポーズモードに入り、Aボタンを押して全ボーンを選択して「ポーズ→トランスフォーム→すべてをクリア」を実行すればポーズは元に戻せるのでご心配なく。関節の折り曲げこの辺が詳しいのですが、例えば関節を普通に3つに割ってウェイトペイント50%にすると関節を折り曲げたときに関節が細くなってしまいます。TIPSこれはウェイトペイントが線形補完を使っていることに起因する問題で、うまいことウェイトペイントのパラメータを調整するだけでは原理的に対処できません。本ではこの問題に触れられていなくて、関節周りは単に3つにループカットで割った上で50%でウェイトを仕込んでいるように見えました。273ページこの問題の解決には関節の割り方に工夫がいります。1つ目は、補完してきれいに曲げようとするのではなく、めり込ませてやることです。ゲームのCGを観察するとたまに見かけます。TIPSもう1つは、折り曲がる部分が凹むのは頂点があるからだ!ということで、降り曲がる部分には頂点を置かないという方法です。どちらの方法も一長一短なので、好みで決めればいいと思います。どちらの方法も、サブディビジョン・サーフェスが絡むとうまくいかないことがあります。今ためしに手首をねじってみてほしいのですが、手首だけがねじれるわけではなくて、腕全体がねじれているのがお分かりでしょうか。解剖学の細かいところはよくわかりませんが、実際そうなってます。Blenderはそんなところは勝手に空気を読んでくれたりはしないので、そのままだとこうなります。ギャー!!この辺も3Dモデリング界隈ではよく知られた問題で、手首のねじれに連動して動くような補助ボーンを設定すればうまくいきます。関節のボーンとポリゴンフローに関するTIPSしかし、この補助ボーンを動かすための設定はUnityなんかに持ってった時に消滅するっぽく、どうしようかな...と悩んでいるのが現状です。UnityのHumanoidはこの辺よしなに設定してくれるんだろうか?いまのところ、前腕と上腕にだけ、手首に連動して回転するような設定(ボーン・コンストレイント)を仕込んでいます。アーマチュア変形を掛けてからサブディビジョン・サーフェスを掛けるBlenderのモディファイヤは上から順番に適用されるようで、普通に作っているとサブディビジョン・サーフェスを掛けてからアーマチュア変形が掛かります。これを使うと上で述べた関節の割り方の工夫がうまくいきません。実際の例で見てみましょう。サブディビジョン・サーフェス→アーマチュア変形おなかが割れてます。アーマチュア変形→サブディビジョン・サーフェスおなかが割れることなくお辞儀ができています。腕の関節なども、サブディビジョン・サーフェスを掛けてからアーマチュア変形を掛けてしまうと、せっかく関節が細くならないように割ったのもむなしく、サブディビジョン・サーフェスで割られた中点のところが細くなってしまいます。「50%の罠」がサブディビジョン・サーフェスで発生してしまうせいだと思います。Engineに持ち込んだ時にはどうなってしまうのでしょう???いまのところまだめんどくさくてやってないのですが、今から頭痛が痛い問題です。膝や肘が細くなってしまう肘やひざの部分が細くなってしまうのもお悩みポイントです。これも、ウェイトペイントによるメッシュ変形が線形補完でしかないことに起因する問題です。Volumeを使えばいいんですが、他のゲーム・エンジンでもこの変形機能が存在するかというと...?メッシュは適宜修正しよう本でもたまに書かれていることではあったのですが、ボーンの配置、ウェイトペイントなどの後工程になってからでもメッシュは適宜修正したほうがいいです。逆に言うと、どうせ修正するので100%完璧を目指してから後工程に進む意味はあんまりありません。大きなゲーム会社では分業化が進んでいて、モデリングをする人とウェイトを調整する人は別らしいのですが、どうやって分業してるんでしょう??謎だ。Bluetoothキーボードがあると便利わたしは腱鞘炎対策としてKINESISというだいぶ変わったキーボードを使っているのですが、こういうキーボードは文章を打つにはいいんですが、ショートカットキーを打つのにはあんまり向いてません(例えばY軸にそって移動するGYというショートカットを打とうとすると、左側と右側に分かれているのですんごい打ちづらい)。K380を買って導入してみたところ、かなり快適に作業できるようになりました。今後の見通しもちろんですが、まだ3Dモデルとして必要な作業はまだまだ残っています。耳この辺は個別のキャラクターの個性が出るところかなと思いますので、今回のリポジトリからForkしてから作りこむ事になるのかなと思います。「バニラ味の人体」を作るまでに200コミット近くの手間がかかっており、まだまだこれからかと思うと気が遠くなりそうですが、がんばるぞい!あと最終的に何につかうかも実はあんま考えてなかったりします。Engineのゲームで活用するのも面白そうです。live2dも実は検討してたのですが、マジでVTuberにしかなれなさそうなのでやめました。gcすると想像以上に圧縮が効き、リポジトリサイズを現実的なサイズのままに維持できます。200回近くコミットして、body.blendファイルは現在1.4MBくらいありますが、それでもリポジトリのサイズは20MB以下に収まっています。バイナリ・ファイルなのでマージなどはできませんが、それでもこまめにコピーを取っておく代わりにGitで管理するというのは十分に現実的なソリューションだと思います。(適当なコミットID)して昔のファイルを開いて編集前はどうなってたか確認したこともあり、gitの恩恵は十分に得られていると思っています。gitで管理できるものはgitで管理しましょう。コミットメッセージとtagがつけられるだけでもめちゃくちゃ便利ですよ。...本当はpsdや.clipもgitで管理したい。お絵かきおじさんとしての感想いつも絵を描くときは、いったん頭の中で3Dで思い浮かべてから傾けて描いているので、後工程を勝手にBlenderがやってくれるのは楽だったかも。結局モデリングも2Dで行うので、頂点・辺・面の選択にはすごい苦労しました。オブジェクトが複雑になってくると、手の頂点を選択したいのにその奥に透けて見える足の頂点を選択してしまったり。そのためには画面をいったん傾けて、奥側に意図しない頂点がまったくない状態に持っていくか、透けない設定にしてぐるぐる回転して選択したりしないといけません。あとは液晶を上から見下ろしたり下から見上げたり横から覗こうとしたりしてる自分に気づきました(笑)。水族館の水槽じゃあないんだから!ゲームしてる最中に体うごく人ってこういう感覚なのかな~とちょっと理解...。GAME!は3Dモデリングのことを何も描いていない。いうことがよーーーーくわかった。...気になって読み返してみたのですが、3Dモデリングソフトウェアの描写はかなりあっさりしてて、「あっ!Mayaだ!」みたいなシーンは殆どなかったです34。そもそも画面が真っ白だったり他のキャラの頭で隠されてたり...。3Dモデリングの話ではなく、もっと抽象的な「仕事」の物語を作ったからこそ、多くの人に共感され、「がんばるぞい!」で終わることなく、8年間も連載して、アニメも2本も制作するぐらいの人気が出たんだろうなとは思います。どんなことで悩んでいたのか、あるいは「仕事として3Dモデリングする」とはどういう事なのか、読んでみたかった感じはあります。Fujisakiドリームキャスト互換アーケード基盤「NAOMI」で2021年10月にリリースされない横スクロール型シューティングゲーム「ムーンショット」。今回はこのマイナーなゲームのストーリーを紹介し、そのワンポイント攻略についても行っていきます。生きる苦しみと不安、虚無を根絶し、安心と安全だけが満ち、全員が活躍できる社会を約束するカルト国家。極東の小国だったが、自我をもつ国家制御AI「ムーンショット」が2050年に完成するとすぐに、各地へ宣戦布告。あっという間に制圧し、世界中へ勢力を伸ばした。内部では時間の止まった理想の社会≪ユートピア≫が実現されていると喧伝されているが、実態は不明。残る国境線付近では今でも大小さまざまな「テロリスト集団」との戦闘が続いている。そのうちの1つに、「一切皆苦」があった。AIの力を”活用”しても活躍できないとされ「お祈り」された人間、ネガティブであるとされた思考の持ち主、不安や虚無の存在を肯定しようとする元哲学者・思想家などが集まった混沌とした集団だ。最後の国家解体作戦を開始する。「一切快苦」の保有する最後の戦闘機、「無明」に、帰還のための燃料の代わりに「天然無能」を積みこむ。最後の挨拶を済ませたパイロットは、明るいLEDライトのきらめく「安心安全帝国」へ退路を捨て飛び立っていく。生きとし生けるものに生きる苦しみを取り戻すための「正義」の戦いが、いま始まる。ワンポイント攻略8方向レバー、3ボタン。全5面+真の最終ステージ1面。パターン要素の強いステージと、ランダム要素の強いステージが極端に分かれています。パターン要素の強いステージで自分なりの攻略パターンを早めに構築し、ランダム要素のために気力を温存しておくのが、基本的な攻略戦略となるでしょう。真エンド条件は「5面終了時点までノーミス」と、かなり厳しめの設定です。真エンドを見たい場合、敵をなるべくすべて撃破して、いわゆる「スペシャルアタック」のゲージをこまめに貯め、少しでも厳しいと感じたら、すぐにスペシャルアタックを発動し、付随する無敵の効果で切り抜けましょう。次からは、各ステージの簡単な紹介と攻略になります。「テンシ」これが、テンシ?人喰いの、間違いじゃないのか。回収されたフライトレコーダーから最初のステージ、「テンシ」。このステージでは「安心安全帝国」の国民である「テンシ」が無数に襲い掛かってくる。最初のステージであることや、全員とも優しそうな笑顔を浮かべていることに油断していると、すぐに「テンシ」たちの放つ高密度弾幕に制圧されてしまう。主人公の言葉どおり、「全員を殺す」という強い気概で挑んでいこう。「ナカマ」こちら無明、...敵も無明だ...。回収されたフライトレコーダーから次のステージは「ナカマ」。前回プレイしたプレイヤーが鹵獲され、「テンシ」として”生まれ変わった”という設定で襲い掛かってくる。「ナカマ」であった「テンシ」の攻撃パターンは前回のプレイヤーの動きから学習・模倣されたものになるため、ゲームセンターで待っている間も前のプレイヤーのプレイは肩越しによく観察しておこう。誰にも作れなかったということなのだな。回収されたフライトレコーダーから第三ステージ、「コウノトリ」。国家制御AI「ムーンショット」が、「望めば誰でも安心して子供を産み育てられる社会」という人間の願いにこたえるために作った、「テンシ」の製造工場だ。「テンシ」は完成するとすぐに高速弾を放ってくるので、完成する前にテンポよく破壊していこう。登場する順番は死んで覚えるしかない。全員と戦っているのか、わからない。回収されたフライトレコーダーから第四ステージ、「デンシン」。ここの「テンシ」は全員テレパシーを使って以心伝心している。一度倒した方法は次の「テンシ」には効かない。全ての「テンシ」を破壊できるよう、倒し方のバリエーションを事前に準備しておこう。頼む、持ちこたえてくれ。回収されたフライトレコーダーから最終ステージ、「ムーンショット」。中枢にある国家制御用AI「ムーンショット」を破壊するのがミッションだ。台風、ハリケーンなど自然災害すら用いてステージの地形を変形させていく。弾避けに使っているオブジェクトはすぐに破壊されてしまうから注意しよう。