「オブジェクト」を含む日記 RSS

はてなキーワード: オブジェクトとは

2024-11-15

ChatGPTに画像の無断学習対応策を聞いてみた

AIAIへの対抗策を聞くってSFっぽくて楽しい

ChatGPTは嘘もつくので、あくまで参考程度に。

 

画像を生成するAIに対する対抗手段を教えてください。

画像を生成するAIによる無断学習や利用を防ぐために、以下のような対抗手段を講じることが可能です。

 

1.透かし(ウォーターマーク)の埋め込み:

画像に目に見えるまたは見えない透かしを入れることで、無断利用や生成AI学習に対して抑止効果を期待できます特に、目に見えない形で画像データ暗号的な透かしを埋め込む「デジタル透かし」技術有効です。

 

2.メタデータの埋め込みとロボット排除設定:

画像データ著作権情報や「AIによる無断学習禁止する」といったメタデータを埋め込み、ウェブサイトには robots.txt ファイル画像クローラーアクセスブロックする設定を追加します。これにより、クローリング収集抑制が期待できます

 

3.ステガノグラフィ技術の利用:

ステガノグラフィを用いて、画像に気づかれにくい形で識別情報を隠すこともできます。これにより、画像流出経路や利用先を追跡でき、無断利用の発見に役立てることができます

 

4.法的な警告表示や利用ポリシーの明示:

ウェブサイト画像の配布先に、AIによる無断利用や学習禁止する旨の法的警告や利用ポリシーを明示することも有効です。利用条件をはっきりと示すことで、AI企業研究者が慎重になる可能性が高まります

 

5.画像認証技術の導入:

AIが利用しにくいように、画像人間には気づきにくいパターンノイズを挿入する技術もあります。たとえば、AIにはノイズとして認識されるが、人間には問題なく見える小さな変形やカラーパターンを追加することで、AIによるデータ学習が困難になる場合があります

 

これらの対策は、画像生成AIに対する防御としては有効ですが、100%無断利用を防げるわけではありません

 

・生成AI学習を混乱させる手段はありませんか?

生成AI学習を混乱させるための手段には、以下のような方法が考えられます

 

1.ノイズや歪みの追加:

画像に目立たない程度のノイズや歪みを加えることで、アノテーションモデル境界や特徴を正確に認識しにくくする手法です。たとえば、ピクセルレベルランダムノイズを追加する、わずかに画像をぼかす、あるいは境界付近に小さな変化を加えるといった手法有効です。

 

2.不規則輪郭の挿入:

アノテーション処理は、対象物輪郭や特徴を正確に捉えることが重要です。そのため、背景や対象物輪郭わずかな不規則性を加えることで、アノテーションツール対象物境界を正確に判断しにくくすることができます。たとえば、背景に模様や偽の輪郭を挿入する方法です。

 

3.テキストやラベルを埋め込む:

画像人間には視認しづらい形でテキストやラベルを埋め込むと、AIアノテーションプロセスが混乱する場合があります。これにより、AI意図しない領域注視することがあり、誤認識を誘発します。

 

4.色や明るさのランダム変化:

画像の色や明るさを部分的に変化させ、一定パターンを持たないようにすることもアノテーション処理の混乱を招く一手です。これは、オブジェクトの検出や認識が色や明暗差異依存している場合有効です。

 

5.擬似的なオブジェクトの追加:

画像内に小さな擬似的なオブジェクトや模様を追加することで、AIがそれらを誤って主要なオブジェクト認識し、アノテーション精度が低下する可能性があります特に、背景に似たオブジェクトを散りばめることで、AIはどの部分が対象なのか判断しにくくなります

 

6.アドバーリアル技術活用:

AI認識を誤らせるために用いられる「アドバーリアル敵対的)な例」を使う方法もあります特定ピクセルパターンや色の配列を配置することで、AIアノテーション意図的に誤作動するよう誘導できます。この技術深層学習モデルに対して特に効果があります

 

7.カモフラージュテクニック:

画像全体にわずかなカモフラージュパターンを重ねることで、AI認識を混乱させる方法です。この手法では、人間が見た場合には問題なく認識できるものの、AI対象を捉える際に誤って検出するようなパターン画像に追加します。


思考実験として、danbooruなどアノテーションの元データとして使われているサイトタグが荒られたら画像生成AIモデル作成ダメージはありますか?

思考実験として、Danbooruといったアノテーションデータタグが荒らされた場合画像生成AIモデル作成に与える影響は以下の通りです。

 

1. データ品質が低下する

Danbooruは、イラスト画像に対して詳細なタグ付与されており、これらのタグ情報画像生成AI学習にとって非常に重要です。タグが荒らされることで、画像タグ対応関係が崩れ、モデルが正確な特徴を捉えにくくなるため、生成精度が低下します。

例えば、特定キャラクターテーマに関連するタグが荒らされ、誤った内容のタグ付与されると、モデルはその誤った情報学習し、キャラクターの特徴や設定が再現されにくくなる可能性があります

 

2. ノイズデータの影響

タグが荒らされると、モデルの訓練にノイズデータが増えるため、学習効率悪化します。たとえば、「黒髪」のタグが誤って「金髪」などに変更された場合モデルは同じ画像に対して異なる特徴を学習することになり、結果として生成画像一貫性が失われることが考えられます

また、同じ画像に異なるタグ付与されることで、モデル過学習や誤学習引き起こし、生成された画像本来意図からかけ離れたものになる可能性もあります

 

3. キャラクタースタイル再現性が低下する

Danbooruでは、特定キャラクターアートスタイル識別するタグが多く存在します。これらが荒らされると、特定キャラクタースタイルデータが混乱し、モデルが正確にキャラクターの特徴を把握できなくなるため、ユーザーが期待する生成結果が得られにくくなります

例えば、あるキャラクタータグが「髪型」「服装」「色彩」などで荒らされると、そのキャラクター再現曖昧になり、モデルが正しいビジュアルを生成できなくなることがあります

 

4. タグ信頼性低下によるモデル不安定

タグが荒らされると、データセット全体の信頼性が低下します。信頼性の低いデータをもとに学習したモデルは、特定の条件で異常な出力を生成することが多くなり、モデル全体の品質が低下します。これは、生成AI学習中に「どの情報を信頼すべきか」を判断できなくなるため、生成結果が不安定になったり、多様性が失われたりすることが考えられます

 

5. 検索フィルタリング精度の低下

AIモデルを利用するユーザーは、タグを通じて希望する画像を生成したり、条件に合った画像を探します。タグが荒らされると、AIモデル検索フィルタリング機能の精度も低下し、生成プロンプトが期待通りに機能しなくなる可能性があります。たとえば、「風景タグが荒らされ、異なるジャンル画像が混入するようになると、風景画像を生成したいユーザー要求が満たされにくくなります

 

結論

Danbooruなどのタグが大規模に荒らされた場合、生成AIモデルの精度低下や一貫性の欠如が発生しやすくなり、特にキャラクター特定スタイル依存する画像生成モデルに大きなダメージを与える可能性が高いです。


すでに学習済みのモデルを使って汚染されたデータクレンジングや異常値検出を行うなど対策される可能性がありますが、それらを阻害する手段はありますか?

無断での学習妨害し、学習コストを増加させるために、上記方法を阻害する手法には以下のようなアイデアがあります。これらの手法は、意図的にデータセットの品質一貫性を崩すことで、学習モデルの精度を低下させ、データクレンジングや異常値検出のプロセスを複雑化することが目的です。

 

1. 偽タグノイズタグを大量に追加する

意図的に誤ったタグ無関係タグ画像データ付与し、データセットの信頼性を低下させます。これにより、転移学習やラベルノイズ検出が困難になり、正確な特徴量を学習するコストが増加します。

例えば、キャラクター画像に全く無関係タグ(「動物」や「風景」など)を追加することで、モデルがどのタグが信頼できるか判別しにくくなり、誤ったラベルノイズとして学習されるリスクが増えます

 

2. 特徴量をぼかす/微妙な変更を加える

特徴量ベースクレンジング類似分析に影響を与えるため、画像の特徴がわずかに異なるように加工を施します。具体的には、色調を微妙に変える、ランダムピクセル位置ノイズを追加する、または特定の部位を意図的にぼかすことで、モデル抽出する特徴量の安定性を低下させます

この方法により、同じキャラクタースタイルであっても類似分析が困難になり、正確なクレンジングが行いにくくなるため、データ処理のコストが増加します。

 

3. アノマリーに近いデータ意図的に増やす

特徴が異なるバリエーションや擬似的な異常データを大量に追加することで、異常検出アルゴリズム信頼性を下げます。たとえば、キャラクターデザインや背景を少しずつ変えた画像意図的に作成することで、異常値検出が頻繁に誤検出されるようにします。

こうしたデータが混在することで、オートエンコーダーアンサンブルモデルを使った異常検出が混乱し、正確な異常サンプルの抽出が困難になります

 

4. 高頻度で微小なラベル変更を行う

学習済みモデル転移学習やラベルノイズ検出を阻害するために、同じ画像に対してラベルを定期的に変える手法です。微小な変更を行うことで、モデルは正しいラベル安定的学習することが難しくなり、モデル信頼性が低下します。

例えば、ラベル黒髪」を「暗めの髪」や「濃い色の髪」などに頻繁に切り替えることで、学習に不確実性を持ち込むことが可能です。

 

5. 意図的に類似画像多重登録する

データセット内で非常に類似した画像複数の異なるタグ登録することで、モデル学習を混乱させます特定キャラクター画像を少しずつ変化させて複数タグを付けると、モデルは「どのタグがどの特徴に対応しているのか」を判別しにくくなり、データセットのクレンジングが複雑化します。

特にタグ一貫性が失われるため、類似分析アンサンブルモデルによる異常検出の効果を低下させることが期待できます

 

6. アドバーリアルノイズ付与

AIモデル認識を混乱させるように、アドバーリアルノイズ敵対的な例)を追加します。人間にはほとんど気づかれないレベルノイズ画像に追加し、モデル特定の特徴を正確に認識できないようにすることができます

このノイズにより、モデルの特徴量ベース学習が混乱し、意図した通りに学習できないため、クレンジングの精度も低下し、データ処理の手間が増加します。

 

7. 乱数ベースの偽ラベル生成

特定ルールではなくランダムタグをつけたり、特定カテゴリ間でランダムにラベルを入れ替える方法です。これにより、ラベル画像の関連性が薄れ、アノテーション一貫性が失われます。この乱数による偽ラベル付与は、ラベルノイズ検出やアノマリー検出において、真のラベルを見極めるコストを大幅に増加させます

 

まとめ

これらの手法は、AI学習クレンジング意図的に妨害し、無断学習にかかるコストを増加させるために有効です。特に、「微小な変更」や「アドバーリアルノイズ付与」といった手法は、見た目の品質に影響を与えずにモデルノイズを持ち込むため、非常に効果的です。

2024-11-11

anond:20241110085525

>>カードゲームについて語る奴らの多くが「MTGが始祖」と勘違いしてる

カードゲームについて語る奴らの多くが「カードゲームTCG」の意味で使ってるから間違ってない。この風潮は個人的にもどうかと思うが普及してるので仕方ない。

>>昔からカードを使うボードゲームはあったやん。

それは分類としてはカードゲームではなくボードゲームなんやドミニオンボードゲーム

>>今流行ってるのだとドミニオンみたいなのが。

ドミニオン流行はもう十年以上昔ですよ・・・

>>そしてそういうゲームは売上が伸びると定期的に拡張パックカードを増やしていた。

>>MTGはこのシステムトレーディングカードとくっつけただけ。

逆。拡張パックカードを増やすトレーディングカードが先にあり、それに本格的なゲームをつけたのがMTG

>>MTGマナシステム別に画期的ではなく、MTGベースにしたカードゲームよりも更に以前からそもそもボードゲームという文化の中にコストという概念があった。

>>デッキという概念はそれこそカードがまだゲームとして遊ばれてもいないタロットカード時代からあった。

>>手持ちの兵隊をぶつけあうのなんてのはボードゲームの初期の初期からあるものだし、そこに特殊オブジェクトを加えるのは軍棋などでは当たり前の要素だ。

マナシステムの画期性はデッキやその中の”兵隊”と合わさっってのものから、これらを分けて論じるのはマナシステムの何が画期的だったのか解ってない。

>>MTGが本当に発明したのはカードゲームルールではなく、トレーディングカードゲームとして本格的に遊ぶというフォーマットぐらいなんだよ。

MTG発明した「デッキ構築」はカードゲームルールでしょう。

>>ソイツは元から無電源ゲーム世界に無数にあった要素を上手い具合に再配置しただけなんだ。

無電源ゲーム世界に無かった「トレーディングカード」という要素を持ち込んだからMTGは「TCGの始祖」であり、「カードゲームTCG」と認知される程に流行してるんだ。そこが分かってからアレコレ喋ってほしい。

2024-11-10

カードゲームについて語る奴らの多くが「MTGが始祖」と勘違いしてる

からカードを使うボードゲームはあったやん。

流行ってるのだとドミニオンみたいなのが。

そしてそういうゲームは売上が伸びると定期的に拡張パックカードを増やしていた。

MTGはこのシステムトレーディングカードとくっつけただけ。

まりトレーディングカードカードゲームを、カードという共通点を足がかりにして一つにしただけなんだよね。

MTGマナシステム別に画期的ではなく、MTGベースにしたカードゲームよりも更に以前からそもそもボードゲームという文化の中にコストという概念があった。

ある行動を起こすには、ある駒やチップをいくつか使う必要があるとかなんとかって形でだ。

デッキという概念はそれこそカードがまだゲームとして遊ばれてもいないタロットカード時代からあった。

手持ちの兵隊をぶつけあうのなんてのはボードゲームの初期の初期からあるものだし、そこに特殊オブジェクトを加えるのは軍棋などでは当たり前の要素だ。

MTGが本当に発明したのはカードゲームルールではなく、トレーディングカードゲームとして本格的に遊ぶというフォーマットぐらいなんだよ。

それなのにカードゲームについての大枠を語る奴らはすぐに「知っての通りMTGこそがあらゆるカードゲームの始祖なんですが」みたいに言う。

違う違う。

ソイツは元から無電源ゲーム世界に無数にあった要素を上手い具合に再配置しただけなんだ。

そこが分かってからアレコレ喋ってほしい。

ふつう軽音部」第45話 感想戦

おいお前ら表題の件につきまして、ご覧になりまして?

https://shonenjumpplus.com/episode/17106567256672633938#

・このマンガは鳩っちという陰の者、なれどストイック求道者がそのストイックさで衆生に影響を与えることがメインのプロット

・たまきn先輩がらみのバンドには銀杏BOYZを取り入れてるが、流石にキラキラカワイイ系のたまきn先輩に銀杏BOYZはエグみが強いだろ、と思ったら、たまきn先輩の人生のものがエグみが強くて銀杏BOYZを当てることがニンニクしょうが並の、カロリーを臭みで消す二郎レシピになってる

・出内先生の、クワハリ先生表現したいことへの理解力と、キャラ作画だけではなくモブや背景、物品オブジェクトに至る全てがクワハリストーリー文脈ドンピシャにハマっている

・そしてこの回で不敵に嗤う鶴先輩(と怪僧厘ちゃんさん)

ふつう軽音部」の「ふつう」とは何か、ふつう高校生衆生が触れるのは、般若心経ならぬどんな「軽音」なのか、はたまた「恵音(Amazing grace)」なのか。

ふつうの」青春群像劇から宗教的説話に跳ね上がるターニングポイント回だったと思う。

ところで宗教用語っぽいものを散りばめているが、「スヤスヤ教」ぐらいの娯楽と思ってね。たかRock'n'Roll(Acid Black Cherry)だもの

2024-11-09

Rustの不満

オブジェクトセーフの要件緩和しちくりー

2024-11-02

音楽ゲーム史上最も重要な「20,november10

現在も隆盛を極めるリズムゲームルーツ…のひとつであるビートマニア

(もちろん、1年先にリリースされたパラッパラッパーの方が「すべての音楽ゲームルーツ」だが、

 「上から降ってくるオブジェクトに合わせてボタンを押す」フォーマットを完成させたという意味では直接のルーツにあたる)

その第1作に、最高難度を誇るいわゆる「ボス曲」として収録されて人気を博した20,november

ただ闇雲に難しいわけではなく、「曲を覚えて、メロディリズム理解し、練習を重ねれば攻略できる」という絶妙な難度で音楽ゲームの楽しさを世に知らしめた点でもその功績は大きい。

(ちなみに、曲名の「11月20日」は作曲者DJナグレオ こと 南雲玲生誕生日である

ビートマニア象徴ともいえる存在で、数多くのバージョン違いも作られた。

エントリではそれを紹介する。

(収録されたゲームCDによって曲名アーティスト名ともに表記ゆれが多い(カンマの後のスペースの有無、大文字/小文字など)が、基本的にそのバージョンの初出での表記にしている)



20,november (single mix) / DJ nagureo

https://www.youtube.com/watch?v=RMNtlYObHCw

初代 beatmania (1997) 収録の 元祖 20,november

……なのだが、「20,novem v er」と盛大に誤字をやらかしている(もちろんその後のバージョンでは修正されている)。

ジャンルは「HOUSE」。曲名ではなく、こちらで覚えている人も多いかもしれない。

20,november (radio edit) / DJ nagureo

https://www.youtube.com/watch?v=4XX2BdNtJyU

同じく初代 beatmania 収録。single mix とは曲構成が異なる。

2人プレイ、もしくはダブルプレイ(左右の鍵盤とターンテーブルを1人で操作するモード)だとこちらのバージョンになる。

20,november (nagureo kidding style) / DJ nagureo

https://www.youtube.com/watch?v=YR3oKco-Xp8

3作目「beatmania 3rdMIX」(1998) で追加された、いわゆるアナザー譜面オブジェクトの配置を変えて高難度化したバージョン)。縦連がいやらしい。

初出の 3rdMIX ではゲーム内に「nagureo kidding style」の表記はなく、後のバージョンで追加された。

20,November (substream ANOTHER) / dj nagureo

https://www.youtube.com/watch?v=v0N_fHRgdJM

同じくアナザー譜面。鍵盤の数が 5つから 7つに増えた姉妹作、 beatmania IIDX の 1.5作目「beatmania IIDX substream」(1999) で登場。

substream と「beatmania IIDX 2nd style」(1999) の 2バージョンしか収録されておらず、家庭用への移植版でも遊べないレア譜面

20,November (completeMIX 2 ANOTHER) / n.a.r.d.

https://www.youtube.com/watch?v=Qmu7nL3pH6g

こちらもアナザー譜面。第7作「beatmania completeMIX 2」(2000) で追加。

completeMIX 2 を含む一部のバージョンと 一部の CD では、アーティスト名義が「n.a.r.d.」や「N.A.R.D.」になっている。

20,november (hard mix) / DJ nagureo

https://www.youtube.com/watch?v=pEFg3EMWAFU

第4作「beatmania completeMIX」(1999) に収録されたリミックスバージョン

音響を効かせた、よりフロア向けのサウンドになっている。

それに伴ってジャンルオリジナル版の「HOUSEから「HARD HOUSE」に変更。

オリジナル20,november のロング版は存在しないが、この hard mix のロング版は beatmania 4thMIXサントラに収録されている。

20,NOVEMBER (FINAL EDIT) / Remixed by TATSUYA NISHIWAKI (Original Music by n.a.r.d.)

https://www.youtube.com/watch?v=lPOU2pmzvnY

第9作※「beatmania CORE REMIX」(2000) に収録された、西脇辰弥によるリミックスバージョン

ボーカル新録され、オリジナル版よりも生っぽい音作りになっている。

(※「beatmania featuring DREAMS COME TRUE」(2000) は番外作として、ナンバリングに含めなかった場合

20,NOVEMBER (D.D.R. version) / N.M.R feat. DJ nagureo

https://www.youtube.com/watch?v=QJd9NbQrVv4

DanceDanceRevolution 2ndMIX」(1999) に収録されたリミックスバージョン

2ndMIX では STEP BATTLE という特殊モード専用の曲だったが、3rdMIX 以降では通常のモードで遊べるようになった。

ミキサーNAOKI こと 前田尚紀オリジナルにあったボーカルは使われておらず、FINAL EDIT とは対照的シンセが強調されている。

ちなみに DDR にはオリジナルの方の 20,november移植されている。

BEMANI HIT TRACKS / K.M.D.J. team featuring Seigo “M” Takei

https://www.youtube.com/watch?v=QLlHi1uioBk

PS版「beatmania APPEND GOTTAMIX」(1999) に収録。

人気の 4曲をメドレーにしたトラック20,november はそのトリを飾っている。

他の 3曲は e-motion (RAVE)、LOVE SO GROOVY (SOUL)、La Bossanova de Fabienne (BOSSA GROOVE)。

MCは、発売当時「HEY! HEY! HEY!」でおなじみ……だった 武居 “M” 征吾。

20,november (n.a.r.b mix) / metaphone twin dub unit

ttps://www.youtube.com/watch?v=K8wpyrpi3jc

このバージョンのみ、ゲームに収録されたものではなく、CDのために作られたリミックス

5鍵ビートマニア最後ベストアルバムbeatmania THE BEST PROMINENT」(2003) に収録。

……なのだが、原曲面影ほとんどない。果たしてこれを 20,november と呼んでもいいのか…?

ミキサー名でググってもほとんど情報がない。一説には、ナグレオ自身が手掛けたとも言われているが…



いかがでしたか

非公式リミックスはおそらく無数にあるんだろうけど、今回は公式縛りにした。

10個で足りないくらバージョン違いが多いかと思ってたらそこまででもなくて、ぶっちゃけアナザー譜面で数を埋めたのは否定できない…

もっと足りなかったら、ビーマニポケット音源 (ttps://www.youtube.com/watch?v=51BPfKfzpAw?t=250 ) とか、

いちおう非公式だけど半公式…?みたいな Hommarju Remix ( ttps://www.youtube.com/watch?v=oCSO1iZg98I ) とか、

曲名が似てるだけで全然別の曲の「19,November」( ttps://www.youtube.com/watch?v=XhPq3NOYRnw ) でお茶を濁そうかとも考えてたけど、それはせずに済んだぜ。

2024-10-29

[][]Last Call BBS

変態パズルゲームメーカー(誉め言葉)で知られるZachtronicsの最終作『Last Call BBS』を全実績解除するまでやり尽くしたので感想を書く。

ちなみにプレイ時間は約85時間である

私にとって『Last Call BBS』は、3作目に遊んだZachtronicsゲームである

1作目は『Opus Magnum』、2作目は『SpaceChem』であった。

SpaceChemを全実績解除するまでプレイした時の感想こちら → https://anond.hatelabo.jp/20240315235948#

いやー、それにしても楽しかった。

ゲーム全体の雰囲気としては、レトロ雰囲気が気に入った。HDDカリカリ音だったりダイヤルアップ接続のピポパ音だったりもいい。

ただ、日本語訳されていないので、BBS主人公(?)のテキストメモにおいて英文読解があまりできなかったのが残念だ。とはいえこれは私の英語能力が低いせいなので仕方がない。

Last Call BBS』に収録されている各ゲーム難易度は、私にとってちょうど良かった。ギリギリクリアできる難易度のものが多かったから、当ゲーム開発者難易度調整にさぞ力を入れたことだろう。

ゲームの紹介についてはネット検索すればわかることだから他で参照してもらって、ここは日記なので私の感想を中心に書くことにする。ちなみに当ゲーム内にある各ゲーム(全部で8つ)の感想クリア順(実績解除順)に並べる。

Sawayama Solitaire

最初クリア及び実績解除したゲーム

他のパズルゲーム頭脳酷使した後のリフレッシュにちょうどいいのでついつい繰り返しプレイして、必要ないのに50勝以上もしてしまった。(10勝で実績解除)

Dungeons & Diagrams

初めの頃はルール理解するのに苦労した。最初はとりあえず升目を空けてステージクリアしたが、なぜステージクリアになったのかがわからなかった。しかし、次第にルール理解できるようになると、楽しくステージ進行できるようになった。とはいえ、終盤のほうはなかなか難しくて頭を抱えたりもした。

20th Century Food Court

オブジェクトを運んで加工してと、まさにZachtronicsらしいパズルゲームステージクリア後にコストステップ数のランキンググラフで表示されるので(SpaceChemなどでもおなじみだ)、クリアもついつい効率化を図ってしまうのもまさにZachtronicsだ。コスト低減のためにコンベヤやセンサの設置をシンプルにして、代わりにロジック部分を配線まみれにしてしまうのが楽しくて仕方がない。

難易度の上昇幅もちょうどよく、ステージの終盤になるとロジック部分がギチギチで配線グチャグチャになったりしたのも楽しかった。

ステージクリア後の利用客のレビュー面白い英文ちょっとしかったけど)。コーラ製造ステージコークペプシを作るのだが、「全部同じじゃないですか」(意訳)というレビューがあって笑った。カップデザインが違うだけで中身が同じだからだ。

Kabufuda Solitaire

あっさりと最高難易度までクリアして実績解除できた。しかし、クリアしても適切な戦略が良くわからなかった。クリアしても初期配置が良かったからとしか思えなくて達成感は無かったし、失敗してもやはり初期配置が悪かったからとしか思えなかった。ようするに運ゲーしか感じなかった。やたらめったらカードを動かして積み重ねては駄目なようだけど、さりとてカードを積み重ねることでしかカードを動かせないのだからいったいどうすれば、という感じだった。

おなじく運ゲーソリティアであるSawayama Solitaireは滅茶苦茶はまったのに対して、Kabufuda Solitaireにはあまりまらなかった。これは、カード操作戦略思考を持てるか否かの違いだろうか。

STEED FORCE Hobby Studio

ゲームというより作業シミュレーター? 無心になって、ニッパープチプチとパーツを外してパーツをはめ込むのは、禅の境地だろうか。

X’BPGH:The Forbidden Path

ゴアホラー雰囲気を漂わせたパズルゲームゴア表現は無い)。この雰囲気パズルゲーム? と思ったが、スライム状のオブジェクトを増殖して変化させるパズルは、ゴア雰囲気がふさわしい。プレイと共に雰囲気が好きになってきた。

難易度の上昇幅もちょうどよく、序盤はテンポよく次々とステージクリアできるが、終盤になると頭を抱えるほどに難しくなる。実績解除してこれで全ステージクリアかと思ったら、まだまだステージがたくさんあることに気づいて愕然とした。どれも難しそうなので、やらずに放置している。

ChipWizard Professional

PNPとNPNってどう違うんだっけ? ベースコレクタ・エミッタってなんだっけ? いまだによくわかっていないが、PNPとNPNを組み合わせて問題解決するのは楽しかった。特にしかったのは自己保持回路だ。どうすれば自己保持できるんだと悩んだが、試行錯誤の末に実現して動作を眺めるのが楽しかった。

難易度上昇幅もやはりちょうどよく、終盤は頭を抱えたり奇声を上げるほどに難しかったが、それだけに達成感も大きかった。Zachtronicsおなじみの、ステージクリア後のランキングもやはりいい。ランキング上位を目指そうとステージクリア後も回路を小さくするよう、ついつい改良してしまう。

HACK*MATCH

パネルでポン』を彷彿させるパズルゲームブロックが消えている間にブロックを投げ込んで連鎖できるのも、パネルでポンにおけるアクティブ連鎖彷彿させる。

このゲーム攻略は、3ステージ目がなかなかクリアできずに後回しにしていた。

3ステージ目は、運悪く盤面ブロックの種類がバラつくとブロックを消すのに手間取ってしまい負けてしまう。また、プレイが長引くと爆弾ブロック邪魔になって負けることが多かった。爆弾は発動させても相手ダメージを与えられないので、メリットは無い。逆にブロック配置の運が良いと連鎖簡単に組めたり、あるいは勝手連鎖になって相手に大ダメージを与えることができる。

3ステージ目は何度もコンティニューして、運良く連鎖が繋がった時に勝つことができた。

4ステージ目(最終ステージ)はコンティニュー1回で勝てたが、これも運良く画面外で連鎖が繋がったのが主因だ。

このゲームは、ブロック操作の速さやテクニックよりも、運の良さに左右されるゲームだと思う。

まとめ

全実績を解除した時点の感想としては、とにかく楽しくて苦痛でもあった。それだけに達成感もまた大きかった。さすがはZachtronicsだ。

Last Call BBS内のどのゲーム面白かったが、その中でも『20th Century Food Court』が一番良かった。次に『ChipWizard Professional』だ。

もう当分の間パズルゲームはやりたくないのでしばらくは他のジャンルゲームをするだろうが、何か月もすると禁断症状が出てまたパズルゲームをやりたくなるだろう。その時には『SHENZHEN I/O』をやろうと思う。

2024-10-18

anond:20241018133049

なんかAIでさ

脚本読み込んだらアニメが出てくるとかさ

LLMと動画生成を組み合わせればまぁ…いつかは

動画読み込んだら効果音出てくる

これはmetaが最近作ってたAIに、動画と同時にシーンに合わせた効果音も生成するのがある

てことは動画を見て効果音を生成するのも技術的には可能

テキストから効果音生成ならもうあるのでVLMと組み合わせればそれで行けなくもない

>背景入れたら3Dモデル出てくるとかさ

3dは、深度+形状+法線+テクスチャ…みたいなメッシュ生成だと若干進化が遅いけど、軽さと詳細のバランスがすごい点群の生成が今めっちゃ有望でAdobeSubstanceテスト実装してた

カット最初最後入れたら途中が全部出てくるとかさ

これは中国でかなり凄いのが出来てる

中割り(フレーム補完)もあるし、1枚着色すれば中間も着色するのもある

課題はいずれも解像度学習データ

現実から無限採取できるデータと違って、アニメとかイラストってのは適切なデータ集めが大変なんよ

からいまだに自動選択とかオブジェクト認識、背景除去すら微妙な性能のしかない

ちな音声は正直言っていつでも声優の99%を置き換えられるしオリジナル声のまま外国語展開できるくらいにはなってる

残ってる1%は演技要員

アニメの人の給料上がって欲しい

うーん、アニメ技術者の給料はあがるかな

描く人は変わんないと思う

まぁ、2年後くらいには上で書いたのも商業水準になるんじゃないか

2024-10-16

アマプラ広告はいらない。むしろAWS広告つきにしろ

ファミコン貝獣物語

3パーティ切り替えて操作するRPG

最初からFF6のラスダンみたいなイメージ

あるパーティオブジェクト操作することで他のパーティが通れなかった場所が通れるようになったりして合流を目指す

夕飯中に数時間詰まってた場所解放を思いついてためそうとしたらデータ消えてた

悲しいなあ

2024-09-24

anond:20240924174252

ネストしない平たいオブジェクトならCSVの方が容量食わないしパーサも高速だから

まあそんな容量や実行速度にシビアじゃないプロジェクトでもなぜかCSV使うんだけどね

2024-09-20

なんか特許侵害訴訟話題なんで弁理士が通るよ(追記あり

9/22 更新しました

注1(大事):以下の文章一般的な実務慣行規則適当に述べたもので、法的なアドバイスではない

注2:深夜テンションで書いたので文章がわかりにくい、ゆるして

お前だれ

ぺーぺーの弁理士。一応、知的財産専門家ということになってる(弁理士法1条)。普段特許を取れるように文章を書いたり特許庁の人を説得したりしてる。

言いたいこと

お気持ちメインで特許侵害訴訟なんてしない

今回の件で「はじめは泳がせていたけど調子に乗ってきたからブチぎれて訴訟を提起した」みたいな話が聞こえてきたけど、そんな感情で急に動くわけではないと思う(発言主もそのつもりはないかもだけどそういう風に解釈した人がいた)。

特許訴訟に至るプロセス

・自社特許権を侵害しているかを(リバエンとかして)調査して

・(公にしない状態で)警告状を送ったんだけども、

相手実施を中止したり設計を変更したりしなかったんで

という段階を踏むのが(たぶん)よくある流れだけど、この「調査」というのが手間と時間と金がかかる。

特に弁理士事務所の鑑定とか使うと結構金額になってくる(中小企業だと気になるくらいの金額)。

あと、訴訟は失敗するとしっぺ返しを食らうし、相手が小さいと勝っても「弱い者いじめ」みたいになってしまうしお金も取れない。

なので、「特許侵害確信できて」、「ある程度大きくなった状態で」、「こちらの警告に従わなかった」という条件がそろったのが今なんじゃないかな~と勝手に思ってる。

なんもわかってない状態判例がどうとか言っている人は信用してはいけない

現時点でたぶんなんもわかってないので、今は勝てそうか勝てなさそうかを予想することは無駄だと思う。オープンにされない交渉和解検討もあるだろうし。

あと、どの特許権か分かっても、特許権の権利範囲認定や、侵害認定(アウト・セーフのライン決め)、特許自体無効理由の有無とかの判断もケースバイケースなことも少なくなくてしかもその判断簡単じゃない。

少なくとも実務経験なかったら知財管理2級通った程度では絶対無理

ましてや原告が同じだけの事件を引き合いに出しているのは相手にしないほうがいい。たぶんその人マジのガチでなんもわかってない。

今後の流れ

ざっくりだけど、相手方(被告)はこれから以下を検討するだろうと思う。

①自社製品特許権の権利範囲に入ってないと主張できるか?

特許無効理由存在するか?

ライセンスなどの交渉はできるか?

①②検討して勝てなさそうだったら③かな。

マジの特許ガチ勢の方へ

そんなに間違ったことは言ってないハズですが、おかしなところがあったら言ってください。

QandA(9/22追記

書きなぐった文が思ったより反響あってビビる

有識者と思われる人からのご指摘もいただいて感謝しかないです

主な反響に対する回答をしたい


Q. 訴えるってことは相手方の行為が嫌ってことなので、結局は「お気持ち」では?

A. 「お気持ち」の言葉不明確すぎた、申し訳ない。

特許侵害訴訟は、商標著作権比較して、相手行為が嫌だからってすぐできるものじゃなくて、戦略を練って綿密な準備するのが普通だよ~って話がしたかっただけです。

お気持ち」というのは、カッとなってすぐにやる、くらいの意味で使ってました。


Q. 特許権利解釈侵害認定ってそんなにムズいの?「箇条書きマジック」と違うんでしょ?

A. 「箇条書きマジック」が何を指すのかはよくわからないけど、特許侵害認定ってむしろ「箇条書き」をぶつけ合うイメージがある。

特許権利範囲(どこまでセーフか、アウトかの基準)は基本的に「特許請求範囲」という文書記載で決めるとされていて(特許法70条1項)、特許侵害訴訟では、そこに被告製品が入るかどうかを争う、ということになる。

それで、「特許請求範囲」で発明特定する事項(発明特定事項)は、箇条書きに近い形式記載されることが多くて(特に最近特許)、

その発明特定事項が曖昧で、被告製品がそれに当てはまるか微妙であればあるほど、その発明特定事項の解釈裁判で大きな争点となる可能性が高い。

その曖昧さを見抜くこと、そしてそれに基づいて自分に有利な主張を組み立てるには、どうしても多少の実務経験必要だと思っているんで、そういう点で簡単じゃない、資格(条文の知識)だけでは無理、と言わせてもらいました。

(もちろんその難易度技術分野や具体的な特許の内容によって大きく変わってくると思う)


ちょっと具体例で説明を。◆忙しい人は読み飛ばしOKです。◆


例として、弁理士の嵐田先生が紹介してるこちら↓の特許で考えます

https://x.com/IP_Arashida/status/1836641385476403289?t=OGHEYc6cYKuG2NqadszuSQ&s=06

この特許の「特許請求範囲」の請求項1は、プレイキャラが地上用の乗り物と空中用の乗り物を交互に乗り換えることを可能にするゲームプログラム発明を示している。

この特許では、以下すべての条件(発明特定事項)を満たすゲームプログラム特許権利範囲に入る(実施する権利なければ特許侵害)ということになる。

で、特許侵害訴訟では、その用語意味解釈が争点になることが少なくなくて、例えばこの記載だけを見るとこういう疑問が考えられます

  • 「搭乗指示」って何?キャラクターがゴンドラの床を踏んだだけの場合も含む?
  • 「地上」って何?空中に浮いている島も含む?
  • 「搭乗」って何?鳥の足につかまってる場合オブジェクトの念力で浮いている場合も含む?
  • 「地面に向かって移動」って何?移動中に動く地面が迫ってきた場合も含む?

とまあイチャモンな気もするが、こういう語句解釈いかんによっては、被告製品原告特許侵害するかどうかが変わってくることも少なくない。

なので、権利解釈侵害認定に上手く対応できることは特許を専門とする弁護士弁理士にとって大事資質の一つだと思う。


Q. 被告側の検討事項に設計変更が入ってないじゃん!

A. はい、ご指摘の通りです…すみません

書いたときは、実施開始から設計変更までの賠償責任が残るので、対処として適切ではないと思って外していましたが、和解過程でその責任をどうにかできれば、設計変更をするというのは、差し止められるよりかはビジネスへのダメージも少なくて良い方法だと思います


Q. ソフトウェア特許ってなんでもアリな気がする。結局業界の発展を阻害しているのでは?

A. ソフトウェア特許が本当に何でもアリなのかどうかは私の力ではコメントできない。普段案件では扱っていないし、権利の広さが回避が容易でないレベルなのか、審査がほかの分野と比べて甘いかどうかもよくわかっていないので…


ただ、個人的意見になるけど、特許制度自体が本当に産業の発達に寄与しているのか疑問に感じることはある。

例えば、特許の主な役割として「技術の公開を代償に独占権を得て、他の人は公開された技術に基づいて技術を発展させる」(公開代償説)という考えがあるけど、

特許文章って内容の真実性について第三者のチェックも基本無いし、ノウハウを公開しないために発明を実現するのに必要技術特許庁に指摘されない程度に省くことも少なくないので、この考えには甚だ疑問がある。

あと、権利として使える特許をいっぱい取るには、良い明細書を良い弁理士にたくさん書いてもらう必要があるから、どうしても資金力がある大企業に有利だし、独占を加速させる制度ではあると思う。


今は技術文章でまとめたり特許庁と文章ケンカしたりするのが楽しくてこの仕事をやれているけど、この疑問には向き合わないといけないんだろうな。

2024-09-19

コードを綺麗にするのは読みやすくするためじゃない

https://type.jp/et/feature/26796/

もうホントこいつって害悪だと思う

コードを読むのが下手なエンジニアのためにコードを綺麗にするのは時間無駄かな、、と。

この発言にもあるように「コードを綺麗にする=読みやすくする」ってことだと勘違いしてる

コードを綺麗にするのは「バグを少なくする」ためであって読み手のためじゃない

グローバルに一文字変数を使って困るのは「どこでそれを触ってるか分からいから」であって「読みにくいから」ではない(まぁ読みにくいけど)

特に昔だとLintもないし変数の参照先を探すのはgrepぐらいしかなくて

$iとかだと$iiもひっかかるし$iの後ろにスペースがあったり無かったりするともう探すのは不可能に近くなる

それでも動いているなら最悪問題無いんだがバグ修正時にめちゃくちゃ困って

「作り直すしか無いな」

ってなるのでビジネス的にも大きな影響が出る

「どんなコードでも動くコードを作るのが正しい」「done is better than perfect完璧を目指すよりも、まずは終わらせることが重要) 」のスタンス効率的だろうなぁ、、と思うおいらです。

これも元の言葉意味曲解していて、「終わらせることが重要」というのはバグがあって良いわけじゃない

例えばログインボタン実装したときに、ユーザー名とパスワードに何を入れてもログインできる状態にするのも「終わらせること」だし

開発初期はとりあえず画面が必要なのでそれで良いかもしれない

ただこのままリリースできるわけではないし、プロダクトとしては「終わっていない」

パスワードを平文で保存して実装するのも「終わらせること」ではあるけれどそのままリリースしていいわけではないし

下手に動いてしまうとそのままリリースされたりもするのでよりタチが悪い

この言葉重要なのは「better than perfect」の方であって「done」の方ではない

全てを完璧にする必要は無い(し、そもそも完璧定義できない)ので「perfectでなくていいよ」というだけ

バグがあったり不十分だったりセキュリティ不備があって良いわけではない

毎日論理構成の中に浸ってる人は、推理小説は向いてるかもしれないですね。初期にちょろっと設定したグローバル変数が、最終的な結果に大きく影響してくるとか、「ここで使われてるのかー」みたいな感慨とか。

残念ながら「ああ、まともなコードしか読んできてないんだな」としか思えない

例えば「ユーザー名前と住所は設定できてるから性別を設定できるようにして」という依頼があって

コード確認してみるとuser1, user2, user3という変数が100個用意されていて、user1.name = 'hoge', user2.name = 'gaga' って感じで100行書いてあって、更に住所で100行あって、性別も同じように100行追加しろっていうコードを読んだことが無いんだろう

そしてそのコードのどこかで住所設定が間違えているか確認しないといけないような作業をしてないんだと思う

小説で言うと同じ文章が100ページ続いていて、その中のどこかの漢字が違っていて、そいつ犯人、みたいな推理小説面白いか?

他にも足したり引いたりこねくり回された変数値が最後に定数値で上書きされてたり、UserオブジェクトがいきなりWeatherのオブジェクトに置き換えられていて、name属性に晴れとか雨のデータが入ってたりしたことがないんだと思う

汚いコード伏線を回収しないし最終的に犯人も分からないし無駄に長いので推理小説には全く向いてない

で、やっぱりこういう汚いコード問題は「バグが混入しやすいかどうか」であって「読みやすいかどうか」ではない

下手するとuserオブジェクトを100行ずつ書いてくれてる方が読みやすさはあるかもしれないが

user36だけ住所が設定されていない」といったバグが混入し得るし、それを確認するのに多大な労力を必要とする

人間は誰もが間違いを犯すので誰もがバグを混入させる危険性があるんだけれど

その危険性は最大限まで下げるように努力するべきだし、インシデントを引き起こすことでビジネス的なインパクトも大きい

現場猫案件と似たようなもの事故は無くせないけれど、だからといって適当にやって良いわけじゃないし

「優秀なエンジニアは汚いコードですよ〜〜〜」

みたいなゴミ意見を広めるのは害悪しか無い

2024-09-18

M理論とIIA型超弦理論双対性

以下は、M理論超弦理論幾何学抽象化した数学的枠組みでのモデル化について述べる。

∞-圏論と高次ホモトピー理論

まず、物理対象である弦や膜を高次の抽象構造としてモデル化するために、∞-圏論を用いる。ここでは、物理プロセスを高次の射や2-射などで表現する。

∞-圏 𝒞 は、以下を持つ:

  • 対象Ob(𝒞)
  • 1-射(またはモルフィズム):対象間の射 f: A → B
  • 2-射:1-射間の射 α: f ⇒ g
  • n-射:高次の射 β: α ⇒ γ など

これらの射は、合成や恒等射、そして高次の相互作用を満たす。

デリーブド代数幾何学と高次スタック

次に、デリーブド代数幾何学を用いて、空間場の理論モデル化する。ここでは、デリーブドスタック使用する。

デリーブドスタック 𝒳 は、デリーブド環付き空間の圏 𝐝𝐀𝐟𝐟 上の関手として定義される:

𝒳 : 𝐝𝐀𝐟𝐟ᵒᵖ → 𝐒

ここで、𝐒 は∞-グルーポイドの∞-圏(例えば、単体集合のホモトピー圏)である

物理的なフィールドパーティクルのモジュライ空間は、これらのデリーブドスタックとして表現され、コホモロジーデリーブドファンクターを通じてその特性を捉える。

非可換幾何学とスペクトラルトリプル

非可換幾何学では、空間を非可換代数 𝒜 としてモデル化する。ここで、スペクトラルトリプル (𝒜, ℋ, D) は以下から構成される:

作用素 D のスペクトルは、物理的なエネルギーレベルや粒子状態対応する。幾何学的な距離や曲率は、𝒜 と D を用いて以下のように定義される:

高次トポス

∞-トポス論は、∞-圏論ホモトピー論を統合する枠組みである。∞-トポス ℰ では、物理的な対象フィールドは内部のオブジェクトとして扱われる。

フィールド φ のグローバルセクション(物理的な状態空間)は、次のように表される:

Γ(φ) = Homℰ(1, φ)

ここで、1 は終対象である物理的な相互作用は、これらのオブジェクト間の射としてモデル化される。

L∞-代数と高次ゲージ理論

ゲージ対称性やその高次構造表現するために、L∞-代数を用いる。L∞-代数 (L, {lₖ}) は次元付きベクトル空間 L = ⊕ₙ Lₙ と多重線形写像の族 lₖ からなる:

lₖ : L⊗ᵏ → L, deg(lₖ) = 2 - k

これらは以下の高次ヤコ恒等式を満たす:

∑ᵢ₊ⱼ₌ₙ₊₁ ∑ₛᵢgₘₐ∈Sh(i,n-i) (-1)ᵉ⁽ˢⁱᵍᵐᵃ⁾ lⱼ ( lᵢ(xₛᵢgₘₐ₍₁₎, …, xₛᵢgₘₐ₍ᵢ₎), xₛᵢgₘₐ₍ᵢ₊₁₎, …, xₛᵢgₘₐ₍ₙ₎) = 0

ここで、Sh(i,n-i) は (i, n - i)-シャッフル、ε(sigma) は符号関数である

これにより、高次のゲージ対称性や非可換性を持つ物理理論モデル化できる。

安定ホモトピー理論スペクトラム

安定ホモトピー理論では、スペクトラム基本的対象として扱う。スペクトラム E は、位相空間やスペースの系列 {Eₙ} と構造写像 Σ Eₙ → Eₙ₊₁ からなる。

スペクトラムホモトピー群は以下で定義される:

πₙˢ = colimₖ→∞ πₙ₊ₖ(Sᵏ)

ここで、Sᵏ は k-次元球面である。これらの群は、物理理論における安定な位相特性を捉える。

ホモロジカル場の理論

物理的な相関関数は、コホモロジー類を用いて以下のように表現される:

⟨𝒪₁ … 𝒪ₙ⟩ = ∫ₘ ω𝒪₁ ∧ … ∧ ω𝒪ₙ

ここで、ℳ はモジュライ空間、ω𝒪ᵢ は観測量 𝒪ᵢ に対応する微分形式またはコホモロジーである

M理論における定理の導出

先に述べた抽象数学的枠組みを用いて、M理論重要定理であるM理論とIIA型超弦理論双対性を導出する。この双対性は、M理論11次元での理論であり、円 S¹ に沿ってコンパクト化するとIIA型超弦理論等価になることを示している。

1. デリーブド代数幾何学によるコンパクト化の記述

空間の設定:

コホモロジー計算

Künnethの定理を用いて、コホモロジー計算する。

H•(ℳ₁₁, ℤ) ≅ H•(ℳ₁₀, ℤ) ⊗ H•(S¹, ℤ)

これにより、11次元コホモロジー10次元コホモロジーと円のコホモロジーテンソル積として表される。

2. C-場の量子化条件とM理論の場の構造

C-場の量子化条件:

M理論の3形式ゲージ場 C の場の強度 G = dC は、整数係数のコホモロジー類に属する。

[G] ∈ H⁴(ℳ₁₁, ℤ)

デリーブドスタック上のフィールド

デリーブド代数幾何学では、フィールド C はデリーブドスタック上のコホモロジー類として扱われる。

3. 非可換幾何学によるコンパクト化の非可換性の考慮

非可換トーラスの導入:

円 S¹ のコンパクト化を非可換トーラス 𝕋θ としてモデル化する。非可換トーラス上の座標 U, V は以下の交換関係を満たす。

UV = e²ᵖⁱθ VU

ここで、θ は非可換性を表す実数パラメータである

非可換K-理論適用

非可換トーラス上のK-理論群 K•(𝕋θ) は、Dブレーンのチャージを分類する。

4. K-理論によるブレーンのチャージの分類

M理論のブレーンのチャージ

  • M2ブレーン:K⁰(ℳ₁₁)
  • M5ブレーン:K¹(ℳ₁₁)

IIA型超弦理論のDブレーンのチャージ

  • D0ブレーンからD8ブレーン:K-理論群 K•(ℳ₁₀) で分類

チャージ対応関係

コンパクト化により、以下の対応が成立する。

K•(ℳ₁₁) ≅ K•(ℳ₁₀)

5. 安定ホモトピー理論によるスペクトラム同値

スペクトラム定義

スペクトラム同値性:

安定ホモトピー理論において、以下の同値性が成立する。

𝕊ₘ ≃ Σ𝕊ᵢᵢₐ

ここで、Σ はスペクトラムの懸垂(suspension)函手である

6. 定理の導出と結論

以上の議論から、以下の重要定理が導かれる。

定理M理論とIIA型超弦理論双対性

デリーブド代数幾何学、非可換幾何学、および安定ホモトピー理論の枠組みを用いると、11次元M理論を円 S¹ 上でコンパクト化した極限は、IIA型超弦理論数学的に等価である

7. 証明の要点

(a) コホモロジー対応

(b) 非可換性の考慮

(c) スペクトラム同値

2024-09-15

書きかけの小説が見つかったので晒す

「なんだって!!?」

 クリーニング屋の息子であり僕の友人であるロバートダウニーJr.からその話を聞いたとき、僕は我が耳を疑った。

「今度、新しいお祭りを始めんだ。良かったら帰ってこいよ」とロバートダウニーJr.はエッジの利いた訛り言葉で話し、どんなお祭り? と僕が尋ねるとロバートダウニーJr.は夏の熱風に当てられたかのような「ふふぅん!」という鼻息を聞かせ、それからスマートフォン祭りだ」と言った。

 僕の故郷は過疎が進んだ限界集落で、"集"という言葉を用いるのが憚られるほど毎年人が減っており若者は逃げ出すような、そんな場所だ。

 かくいう僕も脱走した若者の一人であり、しかし"スマートフォン祭り"なるものが気になり(ネットで調べてもまるで出てこない。情報ゼロだ)、今夏は久々に帰省することにした。

 着いたのはちょうどお祭りの当日、その昼間だった。夕方から始まる祭りに備え、ロバートダウニーJr.に会おうとクリーニング屋に向かいながらぶらぶら村の中を歩いていると、見慣れないオブジェクトが目に入った。

 この村にはひとつだけ特に大きな広場があり、どうやらそこに何がある。僕はドリンクバー好奇心猜疑心ミックスしたジュースを飲むような心地でその広場に向かった。

 は…? なんだこれ…?

 そこにはモニターを模したような巨大な石像があり、「ほっほっほ、驚いたかのぉ、よし坊」と声をかけられ振り替えると村長が居た。

 僕は挨拶するのも忘れて「なんだよこれは!?」と尋ねた。

 村長はニタァ…と笑って「すまーとふぉん、じゃよ」と得意気に言った。僕は絶句した。いやこれiPadだよね?

 喉元まで出かかった言葉を飲み込むと

2024-09-03

ゲームって結局演出が命だな

いろいろ作ろうと思って考えてたのだが

リソースが限られたなかで優先すべきは演出だと思った。

どこまで演出という概念に含めるかと言うのもあるが

オブジェクトを押したら少し凹んで戻るようなちょっとしたこと

これがあるかないかでかなり違う

凝れば凝るほどよいと言うわけではないが0→1でのバリューが高い

棒立ちのキャラ絵は見てられないが少し上下させるだけで格段に感覚がよくなる

2024-08-30

anond:20240830084009

ゲームに例えれば、教養が有れば、FPSTPSになったり、相手視点になったり、オブジェクト視点になってり、俯瞰視点になったり、よな

2024-08-19

数学宇宙仮説についての考察

数学宇宙仮説を説明するには、宇宙をどのようにモデル化するかを考え、各理論役割を明確にする必要がある。

以下に、各概念説明し、物理宇宙数学的にどのように捉えるかを示す。

数学構造

数学宇宙仮説の中心にあるのは、宇宙数学構造のものであるという考え方である数学構造は、集合とその上で定義される関係演算の組み合わせである

具体例として、微分多様体を考える。微分多様体は、局所的にユークリッド空間に似た構造を持ち、滑らかな関数定義できる空間である物理学では、時空を微分多様体としてモデル化し、一般相対性理論の基盤としている。このように、宇宙全体を一つの巨大な数学構造として捉え、その性質研究する。

集合論

集合論は、数学の基礎を形成する理論であり、すべての数学対象を集合として扱う。特に、Zermelo-Fraenkel集合論(ZFC)は、集合の存在とその性質定義する公理である数学宇宙仮説では、宇宙を集合として捉え、その集合上の関係演算物理法則表現していると考える。

モデル理論

モデル理論は、形式的論理体系が具体的な構造としてどのように実現されるかを研究する。数学宇宙仮説では、物理宇宙がある論理体系のモデルである仮定する。具体的には、物理法則公理とする論理体系のモデルとして宇宙を捉える。これは、ペア算術公理系のモデルとして自然数存在するのと類似している。

カテゴリ理論

カテゴリ理論は、対象オブジェクト)とそれらの間の射(モルフィズム)を扱う理論であるカテゴリ 𝒞 は次のように定義される:

  • 対象の集合 Ob(𝒞)
  • 射の集合 Hom(A, B) (対象 A, B ∈ Ob(𝒞) 間の射)

射は合成可能であり、合成は結合的であるさらに、各対象に対して恒等射が存在する。

数学宇宙仮説では、宇宙を一つのカテゴリとして捉えることができる。カテゴリ対象は異なる数学構造であり、射はそれらの間の変換や関係を表す。これにより、異なる「宇宙」間の関係性を数学的に探求することが可能になる。

トポス理論

トポス理論は、集合論一般化であり、論理空間概念統一する枠組みであるトポスは、論理体系のモデルとして機能し、異なる数学構造統一的に扱うことができる。

数学宇宙仮説では、宇宙トポスとして捉えることができる。トポスは、論理体系のモデルであり、異なる物理現実表現するための柔軟な枠組みを提供する。トポス理論を用いることで、宇宙数学性質をより深く理解することが可能になる。

まとめ

数学宇宙仮説を抽象数学説明するためには、数学構造公理系、集合論モデル理論カテゴリ理論トポス理論といった数学概念を用いることが必要である

これにより、物理現実数学的に厳密に記述し、数学物理の深い関係を探求することができる。

この仮説は、数学対象物理実体として存在するという新しい視点提供するが、現時点では哲学的命題としての性格が強く、数学的に証明可能定理ではない。

2024-08-17

anond:20240817015407

依存関係は木で表現

ノードロック持たせる

ロックに条件持たせる

やりたいことはできてるように見えるが、うーんしんどい

# Entity Relation Diagram
# ```mermaid
# ---
# title: Rental Office example
# ---
# erDiagram
# OFFICE ||--|{ ROOM : x
# OFFICE {
# number office_id
# }
# ROOM {
# number office_id
# number room_id
# }
# ROOM ||--|{ SCHEDULE : x
# SCHEDULE {
# number room_id
# datetime start_at
# datetime end_at
# }
# OFFICE ||--|{ BUSINESS_HOUR : x
# BUSINESS_HOUR {
# number office_id
# enum week_of_day
# datetime start_at
# datetime end_at
# }
# ```

# Directed Acyclic Graph
#
# ```mermaid
# graph LR
# A[OFFICE] --> B[ROOM]
# B --> C[SCHEDULE]
# A[OFFICE] --> D[BUSINESS_HOUR]
# D --> C
# A --> C
# ```


# 基底クラス: EntityLock
class EntityLock
attr_accessor :entity_name, :entity_locked, :attribute_locks

def initialize(entity_name)
@entity_name = entity_name
@entity_locked = false # エンティティ全体のロック状態を保持
@attribute_locks = {} # IDに対するロック管理するハッシュ
end

def lock_entity
@entity_locked = true
puts "Entity '#{@entity_name}' is now locked."
end

def unlock_entity
@entity_locked = false
puts "Entity '#{@entity_name}' is now unlocked."
end

def lock(attributes)
entity_id = attributes["#{@entity_name.downcase}_id"]
if entity_id && !@attribute_locks[entity_id]
@attribute_locks[entity_id] = true
puts "#{@entity_name} with ID '#{entity_id}' is now locked."
end
end

def unlock(attributes)
entity_id = attributes["#{@entity_name.downcase}_id"]
if entity_id && @attribute_locks[entity_id]
@attribute_locks.delete(entity_id)
puts "#{@entity_name} with ID '#{entity_id}' is now unlocked."
end
end

def locked?(attributes)
# まずエンティティ全体がロックされているかチェック
return true if @entity_locked

# 次に特定IDロックされているかチェック
entity_id = attributes["#{@entity_name.downcase}_id"]
if entity_id && @attribute_locks[entity_id]
return true
end

# ロックされていなければfalseを返す
false
end
end

# 子クラス: OfficeLock, RoomLock, ScheduleLock
class OfficeLock < EntityLock
def initialize
super("Office")
end
end

class RoomLock < EntityLock
def initialize
super("Room")
end
end

class ScheduleLock < EntityLock
def initialize
super("Schedule")
end
end

# 子クラス: BusinessHourLock
class BusinessHourLock < EntityLock
def initialize
super("BusinessHour")
@attribute_locks = [] # BusinessHour用のロック配列管理
end

def lock(attributes)
start_at = attributes["start_at"]
end_at = attributes["end_at"]
if start_at &amp;&amp; end_at
@attribute_locks << [start_at, end_at]
puts "BusinessHour from '#{start_at}' to '#{end_at}' is now locked."
end
end

def unlock(attributes)
start_at = attributes["start_at"]
end_at = attributes["end_at"]
if @attribute_locks.include?([start_at, end_at])
@attribute_locks.delete([start_at, end_at])
puts "BusinessHour from '#{start_at}' to '#{end_at}' is now unlocked."
end
end

def locked?(attributes)
# まずエンティティ全体がロックされているかチェック
return true if @entity_locked

# 次に特定時間範囲ロックされているかチェック
start_at = attributes["start_at"]
end_at = attributes["end_at"]
if start_at &amp;&amp; end_at
@attribute_locks.each do |(locked_start, locked_end)|
if locked_start <= start_at &amp;&amp; end_at <= locked_end
return true
end
end
end

# ロックされていなければfalseを返す
false
end
end

# TreeNodeクラス
class TreeNode
attr_accessor :name, :children, :parents, :lock

def initialize(name, lock)
@name = name
@children = []
@parents = [] # 複数の親ノードを保持する配列
@lock = lock # TreeNodeにロックを持たせる
end

def add_child(child_node)
child_node.parents << self # 子ノードにこのノードを親として追加
@children << child_node
end

def display(level = 0)
indent = " " * (level * 4)
puts "#{indent}#{@name}"
@children.each { |child| child.display(level + 1) }
end

def has_dependency
return false if @parents.empty?

@parents.each do |parent|
puts "#{@name} is dependent on #{parent.name}"
return true
end

@parents.any?(&amp;:has_dependency)
end

def locked?(attributes = {})
# 自身ロックされているか確認
return true if @lock.locked?(attributes)

# 親ノードロックされているか再帰的に確認
@parents.any? { |parent| parent.locked?(attributes) }
end
end

# 木構造の組み立て

# ロックオブジェクト作成
office_lock = OfficeLock.new
room_lock = RoomLock.new
schedule_lock = ScheduleLock.new
business_hour_lock = BusinessHourLock.new

# ノード作成
office_node = TreeNode.new("Office", office_lock)
room_node = TreeNode.new("Room", room_lock)
schedule_node = TreeNode.new("Schedule", schedule_lock)
business_hour_node = TreeNode.new("BusinessHour", business_hour_lock)

# ノード間の依存関係の設定
office_node.add_child(room_node) # Office -> Room
room_node.add_child(schedule_node) # Room -> Schedule
office_node.add_child(business_hour_node) # Office -> BusinessHour
business_hour_node.add_child(schedule_node) # BusinessHour -> Schedule

# 木構造の表示
office_node.display

# ロック確認
puts "Case 1. Office全体がロックされた場合"
puts "Is office_node locked? #{office_node.locked?({})}" # false
puts "Is schedule_node locked? #{schedule_node.locked?({})}" # false
office_lock.lock_entity
puts "Is office_node locked? #{office_node.locked?({})}" # true
puts "Is schedule_node locked? #{schedule_node.locked?({})}" # true
office_lock.unlock_entity

puts "Case 2. Room id:1 がロックされた場合"
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1 })}" # false
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 2 })}" # false
room_lock.lock({ "room_id" => 1 })
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1 })}" # true
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 2 })}" # false
room_lock.unlock({ "room_id" => 1 })

puts "Case 3. BusinessHour start_at:0 end_at:5 がロックされた場合"
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 0, "end_at" => 5 })}" # false
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 5, "end_at" => 10 })}" # false
business_hour_lock.lock({ "start_at" => 0, "end_at" => 5 })
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 0, "end_at" => 5 })}" # true
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 5, "end_at" => 10 })}" # false
business_hour_lock.unlock({ "start_at" => 0, "end_at" => 5 })

2024-08-15

スターの多い順にブコメを並び替える

FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークコメント欄スター数順にソートするブックマークレット作りました

作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設コメント順位付けモデル無効化していますが、あのアルゴリズムには特に不満は特にありません。

ブックマークレット

javascript: (async () => {
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
window.scrollTo(0, 0);
await wait(1000);
const p = document.querySelector('.js-bookmarks-recent');
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
l = l.filter(e => g(e) > 0);
l.sort((a, b) => g(b) - g(a));
p.replaceChildren(...l);
})();

ミニファイしたものコードに一部誤りがありましたので訂正しました(2024-08-16 11:47)

javascript:(async()=>{const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();window.scrollTo(0,document.body.scrollHeight);await wait(1000);window.scrollTo(0,0);await wait(1000);const p=document.querySelector('.js-bookmarks-recent');let l=Array.from(p.querySelectorAll('.entry-comment-contents'));const g=e=>{let n=e.querySelectorAll('.hatena-star-star').length;const c=e.querySelector('.hatena-star-inner-count');return c?n+Number(c.textContent):n};l=l.filter(e=>g(e)>0);l.sort((a,b)=>g(b)-g(a));p.replaceChildren(...l)})()

使い方

FANZAの検索結果から熟女を除外するブックマークレット 参照

コード解説

コード説明にダサイところがあったら厳しく指摘して下さい。

javascript:

ブックマークレット必要な、URLの種類を示すスキーム名です。

(async () => {
// 処理
})();

ページに元々ある変数たちとバッティングしないように、まず無名関数ラップします。処理の中で await を使いたいので async 宣言しています

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

処理の途中で待ち時間を設けるための関数です。便利。

document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);

「新着コメント」タブをクリックし、ページの一番下までスクロールダウンしてから少し待つ動作です。新着コメントの後半部分(スクロールきっかけの遅延読み込みになっているところ)の読み込みをうながしています

window.scrollTo(0, 0);
await wait(1000);

ページの先頭に戻ってまた少し待ちます。合計2秒の待ち時間雰囲気で決めていますので、これでなければならない・これで過不足ないという値ではありません。単にコメントの読み込み完了を判定する処理を書くのがめんどうだっただけです。

const p = document.querySelector('.js-bookmarks-recent');

新着ブコメの親要素です。繰り返し呼び出すので名前をつけています

let l = Array.from(p.querySelectorAll('.entry-comment-contents'));

コメントをすべて配列に格納します。

const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};

コメントはてなスター数をカウントして返す関数です。たくさんスターがついてる ★256★ みたいなやつの数字も足します。

l = l.filter(e => g(e) > 0);

ソートする前に、無スターコメントを消去しています。してもしなくてもいいことですが。

l.sort((a, b) => g(b) - g(a));

残ったコメントスター数で降順ソートします。.querySelectorAll() で収集した要素を配列に入れ直したのは、この .sort() メソッドを使いたいからです(.querySelectorAll() が返す配列風の NodeList オブジェクトは、配列共通メソッドもいくつかあるものの、大半は使えないのです)。

p.replaceChildren(...l);

親要素の内容を、並び替えの終わったコメントそっくり入れ替えて、処理完了です。画面を見ると新着コメントの中身が「スターのついたコメントのみ・スターの多い順」に並んでいます。元に戻す方法はないので、原状回復にはリロードします。ソート状態を示すフラグを立てておいてスターソート⇔日付ソートをかわりばんこに行うようにすればできそうだなと思ったけど実装しません。連打スターを省く処理を追加してUU数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装しません。

2024-08-04

ドゥボールが主張した「スペクタクル社会」とアート役割はどのよ

ギー・ドゥボール**(Guy Debord)は、フランス哲学者であり、**シチュアシオニストインターナショナルSI)**の創設メンバーです。彼は著書『**スペクタクルの社会La Société du Spectacle)**』で現代社会における「スペクタクル」の概念提唱し、その中でアート役割についても言及しています

以下に、ドゥボールの「スペクタクル社会」とアート役割に関する主張を詳しく説明します。

## スペクタクル社会

### 1. **スペクタクル概念**

### 2. **スペクタクル特性**

### 3. **メディア役割**

## アート役割

### 1. **アートの疎外と商業化**

### 2. **アート潜在的可能性**

### 3. **シチュアシオニズムとアート**

### 4. **アート革命意識**

## ドゥボールの影響と現代への示唆

ドゥボールの「スペクタクル社会」は、現代社会におけるメディア広告支配、消費文化の広がり、そして個人の疎外といった問題を鋭く指摘しています。この考え方は今日においても、情報過多の社会デジタルメディアの影響下での社会問題に対する批判視点提供しています

アート役割についても、商業化が進む現代アートシーンにおいて、再び批判的かつ革新的な力を取り戻すべきだという視点は、アーティストキュレーターにとって重要示唆となるでしょう。

2024-08-01

ゼルダの伝説ティアキンをやってる

BotWの時もそうだったけど物理演算で動くオブジェクトうまいこと掴んで運んで積み重ねて、、、みたいな要素が何も楽しさがなくて辛い

個人的にはイライラしかまらない要素なんだけどスタッフはこれそんな好きなの

2024-07-28

デジタルツインを即座に生成・同期する技術

実際の事物論理的関係を、VR空間上の3Dオブジェクトおよびその挙動マッピングした「比喩空間」。

眼鏡で見た世界で生きて、その疑似空間上の操作悲劇的な結果を生むも、それは新たな擬似空間によって誤魔化される。

それは現在も行われていることの比喩しかない。

[アイディア]

ログイン ユーザー登録
ようこそ ゲスト さん