
2026-02-01のBlogの「AIについての調査(ComfyUIの勉強)」で議論した通り、勉強内容を変更する事にします。
ただしHoudiniの勉強はそのまま残す事にしました。これを削るのはもう少し考えてからする事にします。
Logoは直してる時間が無いので、しばらくはこのままです。
それぞれの勉強の内容や目的はそれぞれの章にまとめる事にします。
1.今週の予定
今週からこの順序に従って勉強していきます。
- 映像作成用UE5の勉強
- AIの勉強
- Nvidia Omniverseの勉強
- AIの勉強2(日本語字幕AIを作成する)
- Houdiniの勉強
- Nvidia Omniverseの勉強2(強化学習の勉強)
- DirectX12の勉強
それぞれの勉強の最初にその勉強をする目的を一寸だけ書いておきます。
2.映像作成用UE5の勉強
2.1 PCGを使用した神社の作成
PCGで建物を作成する方法を勉強してるので、その応用としてPCGで神社を作成する事にしました。
最終的にはUEFNのMap内で神社を作成して、 誰でも参拝出来るようにするつもりです。
2.1.1 先週の復習
神社の参道を作成しています。
以下の形状だった参道を

実装からPointの生成を3列に増やして
以下のような形状に変化させました。

更に以下の実装からPointのSizeを2倍にして

以下の様な参道にしました。

Meshに使用してるTextureのSizeを変更する必要があります。
それが出来るMaterial Instanceを昔作成したんですが、どのProject内で作成したのかは不明です。
先週のBlogの最後に以下の様に書いて終わっていました。

今週はこのMaterial Instanceを探す事をやります。
2.1.2 TextureのScaleを調整できる前に作成したMaterial Instanceを探せ
では探していきます。
2024-05-26のBlogから探していきます。
見つけました。
2024-06-10のBlogで実装しています。

お、Materialの名前にPwnisherが入っていますね。
これでProjectのあるFolderを検索したら一発でこれを作成したProjectが分かります。
見つけました。

Test0909です。
Test0909を開きます。
ありました。

けどこれMaterialでMaterial Instanceじゃないです。
あれ?
Material InstanceからTextureのSizeの調整をしたはずだけどな?
もう少しBlogを読む進めて内容を確認します。
2023年に作成したこっちのProjectで実装してるのが本物のようです。

今度はしっかりありました。

これのMaterial Instanceの操作方法を復習します。
あれ?
MyImprovedMaterialの中に以下のMaterial Instanceもありました。

更にTestingの中に以下のMaterial Instanceがありました。

どれがどれなのか分かりません。
またBlogを読んで整理します。
まずこれが、Pwnisher氏のTutorialを忠実に再現したMaterialとMaterial Instanceです。

これを完成させた後、
Mega ScanのSurfaceで使用されているBase MaterialであるM_MS_Surface_Material

の実装を、Pwnisher氏のTutorialで学んだ機能を追加すれば、ほぼ完ぺきなMaterialとMaterial Instanceが完成するはず。
となり
Test5_3のPwnisherTutorialのMaterial Folder内に新しいFolder、MyImprovedMaterialを作成し

この中に
Mega ScanのSurfaceで使用されているBase MaterialであるM_MS_Surface_MaterialにPwnisherのTutorialで学んだ機能を追加したMaterialとそのMaterialのInstanceを作成しました。
これが、

M_MS_Surface_Material_Me、M_MS_Surface_Material_Me_Inst、そしてMF_TORです。
以上でした。
という事は

を使ってMaterial Instanceの調整をするのが一番良いという事です。
M_MS_Surface_Material_Me_Instを開いて以下のTiling/OffsetのTiling Xの値を

いじると

TextureのX方向のSizeだけTextureの大きさが変化します。
これです。
これが欲しかった。
このMaterial Instanceがそのまま使用出来たら一番ですが、なんせこれUE5.3で作成されたものなので、神社を作成してるProjectでは動かない可能性があります。
神社のProjectのUEのVersionは何だっけ?

5.4か。
これなら動くだろ。
試してみます。

普通に動きました。
ではこれで石道のMaterial Instanceを作成しましょう。
なんと石道のTexture、以下の2つしかありません。

しかたないので以下のように組みました。

結果です。

うん。
これなら使えそうです。
TilingのXの値を変えてみました。

結果です。

おお、TextureのSizeが変化しました。
これなら石道のTextureの大きさを丁度良く調整出来そうです。
2.1.3 実際の石道で試してみる
ではやってみます。

を開いて以下のStatic Mesh Spawnerノードの

以下のOverlay Materialに

M_MS_Surface_Material_Me_InstをDuplicateして作成したM_MS_Surface_Material_Me_Inst_Sanndouをセットしました。

あれ?

Materialが変更されてません。
何で?
仕方ないです。
石道に使用してるStatic MeshからMaterialを変更しました。

結果です。

取りあえずTextureのSizeを巨大にしてみました。
もう少し調整が必要です。
TextureのSizeが調整出来る事は確認出来ました。
残りは来週やります。
今週はここまでです。
2.2 PCGの勉強
PCGを使用した建物の作成を勉強しています。
その理由ですが、Luma AIで作成した3D Gaussian SplattingをUE5にImportすると以下の様に、

奥にあるHigh-rise apartment Building(マンション)が歪んでいます。
気持ち悪くなる位曲がっています。
これ直さないと3D Gaussian Splattingは使用出来ない。との結論になりました。
でどのように直すかとなると、PCGを使用してHigh-rise apartment Building(マンション)を作成するしかないのかな。と成りPCGで建物を作成する方法を勉強する事になりました。
2.2.1 前回の復習
Create Procedural Interiors With Full Room Separation | UE 5.4 P5 [1]の<18:20 - Grow Selection Based on Created Center Points>の続きを勉強してました。
特に記録すべき事も無いので実装を始めます。
2.2.2 Create Procedural Interiors With Full Room Separation | UE 5.4 P5 [1]の<18:20 - Grow Selection Based on Created Center Points>の続きを実装する
以下の実装を追加しました。

これでSetノードのParameterの設定によって値がどう変わるのかの確認が出来る様になりました。
Get Attribute From Point Indexノードの

以下の値は0.2です。

で

の同じところのDensityの値も0.2になっています。

ところがその一つ前にあるAttribute Filter Rangeノードの

同じ場所のDensityの値は

です。
確かにSetノードで、InputされたPointのAttributeのDensityの値が、Get Attribute From Point Indexの値で上書きされてました。
そこは確認出来たんですが、
以下の虫のようなIconが何を表してるのかが分かりません。

これはそれぞれのLoopの時にInputされるPointでした。
後、この気持ちの悪いIconはテントウムシだそうです。
更に以下の実装を追加しました。

結果です。

お、出来てそうです。
反対側の建物は以下の様になっていました。

出来てますね。

そしてNamed Rerouteノードを作成しました。名前はRoom Densitiesです。
Self Pruningノードの結果はこれから別な箇所で使用するそうです。
更に
以下の実装を追加しました。

これで部屋を区切る壁を配置するためのPointが生成されるそうです。
結果です。

部屋を区切る壁を生成するためのPointは生成されていますが、壁のPointも生成されてしまっています。
なんで?
Tutorialの結果を見ると

うーん。微妙。
よく見ると壁にもPointが表示されていますね。
でも、私の結果とは一寸違う感じもします。
ここで、先週の勉強は終わっていました。
これは一個ずつ、実装を読み直して何を計算してるのかを確認する必要がありますね。
今週はここまでにします。
これは来週やる事にします。
2.3 Level Sequence上でAnimationの編集をする方法
Level Sequence上でDragonをAnimation Sequenceで使用するとDragonの爪が地面にめり込んでしまいます。
これを直すには、Animation SequenceではなくControl Rigを使用する必要があるみたいです。しかし私が使用してるDragonには付属のControl Rigがありません。
しかもControl Rigがどういうものなのか全く理解していません。
のでControl Rigがどういうものなのかについての全般的な知識と、その使用方法についての基礎を勉強する事にしました。
その後、今まで勉強してたTutorialはUE5.0用のTutorialで5.5はControl Rig [2]を勉強する必要がある事が判明しました。
のでControl Rig [2]を勉強する事にしました。
そして2025-12-21のBlogでまとめましたが、別なLayerを使用する事で、Control Rigを使用してLevel Sequence上のAnimationを編集出来る事が判明しました。
ので、後はDragonにControl Rigを追加出来れば、Dragonの爪が地面にめり込んでしまう問題を直す事が出来る事が判明しました。
<追加>
2026-03-09のBlogで、判明したのですが、実は地面にめり込んでいたのはDragonの爪じゃなくて、Dragonの足でした。

しかも使用したDragonはSand Dragonではなく、Quadraped CreaturesにあるMountain Dragonでした。
つまり問題は
DragonをLandscape上の凸凹な地面の上をLevel Sequenceを使用してAnimationで歩かせると足が地面に潜りこんでしまう。
というのが正しかったんです。
2.3.1 前回の復習
先週の勉強の内容を語るために、先々週のまとめを簡単に説明する必要があります。
先々週はこれからの課題として以下の2つをまとめました。
<FBIKノードの追加>
Dragonの足をFBIKノードで作成する事で、Level Sequence上で自由に足の位置を編集出来る様になります。
ただし、FBIKノードからBakeしたAnimationは元のAnimationと全く同じにはならないそうです。
更に以下の工程でやる必要があるので、最低3カ月はかかります。

しかしFBIKの調整には職人芸が求められるので、元のAnimationを再現出来るような高品質なFBIKを作れた場合、即商業化出来ます。
そこは凄いMeritです。
<Dragonの爪の位置だけ調整する>
爪の位置だけ変更する事でSmoothなAnimationを表現出来るかどうかは不明ですが、FBIKノードの難しい設定を避ける事が出来るので、短い時間で完成させる事が出来ます。
これを試したところ非常にSmoothなAnimationが完成しました。
<前回の勉強の内容>
ので実際のProjectで、Dragonの爪の位置だけ調整する。を試してみようとしたところ、

爪はAsphaltに食い込んでいるん事は食い込んでいるんですが、気になるLevelでは無かったです。
いや、別なProjectで確かにDragonの足が地面に潜りこんでるのがあったはずです。
探しました。
Test0909という名前のProjectで、以下のDragonの映像を作成したんですが、

近づくとDragonの足が地面に潜りこんでいます。

これです。
これを直したかったんです。
これを直すための専用のProjectを作成しました。名前はControlRigWithDragonです。
以下の様に岩を貫いて歩いてしまうAnimationを作成しました。

ここにControl Rigを追加し、更にそのControl Rig内でFBIKノードを使用して、右前足のAnimationを調整します。
2.3.2 FBIKを使用してControl Rigを作る
今週からFBIKノードを使用してDragonの足のControl Rigを作成する事にします。
以下の工程でやっていきます。

まず新しく作成したProject、ControlRigWithDragonに前のProjectで作成したControl RigをMigrateして、ControlRigWithDragon内でも前に作成したControl RigでDragonのAnimationをLevel Sequence上で動かせるかどうかを確認します。
以下の様に前のProjectで作成したDragon用のControl RigをこのProjectにMigrateしました。

これを使用して、Animationを作成してみます。

Animationを確認します。

普通に動いています。
もっと激しいAnimationで確認します。

出来てますね。
ではFBIKで代用してみましょう。
2.3.3 FBIKに関して今までどんな勉強したのかを復習する
今までどんな勉強をしたのかを復習します。
FBIKでBlogを検索しました。
11個のBlogが引っかかりました。
それぞれどんな内容を勉強したのかを以下にまとめます。
UE5のContent Exampleを見てます。その中に

があり、

がありました。
それだけです。
何か勉強した訳ではありません。
Full-Body IK [3]を勉強していました。

これって今でもそうなんでしょうか?
確認します。

最初Errorになりましたが、再度読み込みを開始して成功しました。
これは後で確認する事にします。
ここで述べてる内容は以下の1つだけです。
前にFBIKを使用して作成した時は、以下の様に腕が述べて変形してしまった。

このTutorialでは腕は変形しないで正常に作用してる。
実際にこの方法でやってみたら、以下の様に腕は変形しなかった。

それだけです。
膝を曲げる動きなどをFBIKで再現する方法について勉強していました。

Full-Body IK [3]の内容ですが、それなりに一生懸命勉強してますが、
これを勉強した時、まだFBIKの使い方がよく分かってなかったので、実際に使用すると言う観点からは、全く理解してない結果になりました。
この辺の内容を勉強し直すのところから始める必要がありますね。
前回作成したFBIKを使用して色々実験して、何故こんな設定を勉強したのかを理解しようとしています。
悲しい。
Level SequenceでSmoothなAnimationを生成するためのFBIKなんです。
これを説明しないで、色々な設定を示されても何も大切な事は理解出来ないって事ですね。
以下の様に膝が逆に曲がっていても

なんとも思っていません。
そりゃそうだ。SmoothなAnimationを再現するためにFBIKを使用するんだって説明が一個も無いんだもの。
CR_Mannequin_BodyのFoot_r_ik_ctrlでは、どのようにFBIKが使用されているのかを調べていました。
結論は、実装が複雑すぎて理解出来ない。
でした。
ここではSolveの勉強をしてるんですが、この時はForward SolveとBackward Solveの意味が理解出来てなくてかなり頓珍漢な勉強になってしまっています。
ので今となっては、あまり読み直す価値は無いんですが、以下の重要な質問をChatGPTにしています。

そして以下のかなり重要な情報を提供していました。

更に以下の原因も教えてくれています。

Pole VectorとかPreferred Angleについても調べていました。
Preferred Angleは Full-Body IK [3]で勉強したそうです。
ローカル軸の方向が想定と逆
では、以下の前に作成したControl Rigの腕にFBIKを入れた例を持ち出していました。

そう言えば、こんなのも作成しましたわ。
2025-03-16のBlogでこのControl Rigについては説明されているそうです。
この位ですね。
2.3.4 Full-Body IK [3]をもう一回勉強する
以下の部分からやります。


Rootの設定ですが、Dragonなどの四足歩行の動物でもRootはHipsやPelvisにしろ。といっています。

これは実際に試す必要がありますね。
Mannequinnで試してみます。
以下の実装を試しに組みました。

動かしてみます。

Meshが全く変形しないでMesh全体で移動しました。
今度は以下の様にFootを追加しました。

動かしてみます。

今度は反対側のEffectorsは動かないので、MannequinのPoseが変形しました。
そうか、理解したぞ。と以下の様に組んでみました。

そしたら普通のBoneの方はControlが効かなくなってしまいました。
Geminiに分析してもらいましょう。

うーん。
ここで時間切れです。
続きは来週やる事にします。
3. AIの勉強
Iの勉強の目的ですが、
生成AIが凄いTrendになってるので、最低限の基礎は知っておくべきと思いこの勉強を始めたんでした。
のでこれを勉強してどうしたいというのは無いです。
ここではPractical Deep Learning for Coders 2022 [4]の勉強をしています。Antigravityを使用したVibe Codingの勉強はしばらくお休みします。
3.1 先週の復習
先週は Lesson 6: Practical Deep Learning for Coders 2022 [5]の続きを勉強しました。
Kaggle Competitionに参加するための手順や注意点について勉強しています。
注意する点として

が一致してる点が挙げれます。
3.2 Lesson 6: Practical Deep Learning for Coders 2022 [5]の続きを勉強する
<1:15:15 How to automate the process of sharing kaggle notebooks>
Lectureで見てるSiteは
First Steps: Road to the Top, Part 1 [6]
です。
以下の場所の話から始まっています。


以下のCommandがついてました。

ローカルPCで書いたNotebookをKaggle Notebookとして公開するCodeですね。
ChatGPTによるとPush_notebook()関数の因数、Competitionは以下の意味があるそうです。

How to automate the process of sharing kaggle notebooks
と言うと仰々しいですが、Kaggleの自分のPageにPushする関数を紹介してるだけです。
Kaggleの以下のところにScoreの値が表示されています。

何で敢えて公開する必要があるのかについてですが、
以下のVoteのように

自分の客観的な評価を知るためだそうです。
友達に自分のPageを見せて
「全然いいね!が付かない。」
というと、
大抵の友達は、
「いや君のProjectは素晴らしいよ。どこにも問題ないよ。」
と答えます。
しかしそれは間違っています。
良いねが付かないというのは、全然凄くないという事なんです。
この後、KaggleのProjectの管理方法について、

Jeremy Howard氏のやり方を説明してましたが、これは記録する程の内容ではないので無視します。
<1:20:17 AutoML>
ここからAutoMLの話になりますが、AutoMLが何なのかを全員が理解してる前提で話が進んでいます。
ChatGPTにAutoMLって何だ?と聞いたら
AutoMLとは、人間がやっていた
・モデル選択
・ハイパーパラメータ探索
・前処理
をコンピュータに自動でやらせる仕組みだそうです。
つまり今までやっていた
1 データ前処理
2 Feature engineering
3 モデル選択
4 ハイパーパラメータ調整
5 学習
6 評価
7 推論
を全自動で全部やってくれるって事です。
で、AutoMLを使うかどうかの話になります。Jeremy Howard氏は絶対に使わない派だそうです。
その理由は、
単に機械的に最適解を探すのではなく、「科学者のように高い意図を持ち、仮説を立てて検証し、結論を導き出す」というプロセスを重視しているから
だそうです。
そしてModelの選択についても回答しています。
表形式データにおいては、
まずはランダムフォレスト(Random Forest)から始め必要に応じてGBM(勾配ブースティング)を試すそうです。
コンピュータビジョン(画像認識)では
前に使用したベンチマーク表(Fine-tuningの比較データ)を参考にして、試行錯誤(Iteration)ではSpeedを重視し、精度と速度のバランスを重視する場合は、ConvNeXt(特にTinyやSmallサイズ)を推奨しているそうです。
注意すべき点として、訓練データがImageNetと似ているか(例:ペットの画像)、大きく異なるか(例:衛星写真)によって、最適なモデルが異なるため、それぞれのケースでの性能をまとめた表を基に選ぶそうです。
最後にModel選択の最も重要な点は
1分程度で学習が終わるモデルを選ぶ事だそうです。
「100個のモデルを数ヶ月かけてグリッドサーチする」のではなく、「1つの速いモデルで、クロッピングや学習率などの仮説を20分で検証する」ほうが、最終的に優れたモデルに到達できる
そうです。
<1:24:16 Why the first model run so slow on Kaggle GPUs>
この内容をまずNotebookLMに要約してもらいました。

分かり易い。
これだけ勉強した方が、理解が進むんじゃないでしょうか。
でももしHallucinationを起こしていたら大変なので一応、動画を見て確認します。
あってました。
ただ最後に別なModelを選択してますね。
その辺もNotebookLMに説明してもらいました。

更に以下の点を説明してくれました。

ConvNeXtがResNetより優れているとの結論です。
この動画が作られたのはもう3年も前の話です。
ChatGPTに今でもそうなのか聞いてみました。

だそうです。
これは前も聞いたかもしれないです。
<1:27:53 How much better can a new novel architecture improve the accuracy>
最初にModelとArchitectureの違いについてまとめておきます。
この2つは同じものと思ってたんですが、どうもJeremy Howard氏は違うものとして扱ってる気がします。
ChatGPTの回答です。

だそうです。
更に詳しく
Architectureの説明もしています。

これがAttentionとかいうやつなのか。
このArchitectureの中身についてはまだ勉強してないので、こんなこのなものかぐらいで納得しておきます。
そして

はそのArchitectureを使用して重みづけまでを行ったものだそうです。
ちなみにNotebookLMの回答では、Architectureの定義はほぼ同じでしたが、Modelは以下のような回答を返しました。

特定のDataでFine TuningさせたものがModelである。と定義していました。
この2つって同じ事を言ってるの?
うーん。
そうだ。別なAIに聞いたらいいんだ。
Geminiに聞きました。
非常に詳しく説明してくれたんで、完璧に理解出来たんですが、ここにそれを全部書くと長すぎるので結論だけ書きます。
この2つは違う事でした。

しかしどっちも新しいModelを生成しています。
ではこの節の要約をNotebookLMにしてもらいます。

<1:28:33 Convnext>
NotebookLMに要約させました。

動画を見ましたが、これ以上の語る事は無いです。
<1:31:10 How to iterate the model with padding>
これもNotebookLMに要約してもらいます。

あれ?結果はあまり変わらなかったんじゃなかったの?
もう一回動画を見て確認します。

Padを使用した結果を述べてるところです。
今までで一番良い結果と同じ位の結果だった。
と言ってます。
これを私は、結果はあまり変わらなかった。と解釈し、NotebookLMはベストの結果だった。と解釈した訳です。
どっちも正しい。
今週はこの位にしておきます。
後、一寸ですが、疲れて来ました。無理はしません。
4. Nvidia Omniverseの勉強
Robotic AIの仮想空間におけるTrainingのための環境設定こそがこれからの3D Graphicsの専門家が生きる場所であると思っています。
のでその仮想空間でRobotic AIがどんなTrainingを行っているかをまず勉強する事にしました。
色々調べると、その部分はNvidiaのOmniverseの中のIsaac Simが担当している事が判明しました。
のでその辺りを勉強します。
2025年9月からIsaac Lab Documentation [7]の勉強に切り替えました。
4.1 前回の復習
Walkthrough [8]のClasses and Configs [9]を復習しました。
先週はここで勉強した上に「7. Nvidia Omniverseの勉強2(強化学習の勉強)」でも勉強したので、Classes and Configs [9]の復習を全部終える事が出来ました。
ここではisaac_lab_tutorial_env_cfg.py、つまりProject名_env_cfg.pyの実装をする事で、
EnvironmentのConfiguration(設定)を行います。
ここでは、Environmentに関してのあらゆる設定を指定する事が出来ますが、絶対に指定しないといけないのが、
- Sim(Simulation)
- Scene
- Robot
の3つです。
先週はここでEnvironment Design Background [10]の5つの階層、App、Simulation、World、Stage、そしてSceneにRobotは含まれてない。と疑問に思っていました。
これについての明確な回答は無い代わりに、DirectRLEnvで作成したProjectはRegex Pathを使用すれば良い事が判明しました。
その後、DirectRLEnvについて調べていたら、
このProjectはDirectRLEnvで作成された事、更にDirectRLEnvには以下のように設定Classと環境Classの2つがある事が判明しました。

設定ClassのSimの設定では

のParameterで
- Time Step:Simulationする間隔。dt=1/120なら008秒毎にSimulationを計算
- Render Interval:Renderする間隔。何Step毎にFrameをRenderingするのかを指定。2の場合は、2 Step毎にFrameをRendering
を指定します。
次のSceneでは

ここでは、
- 生成する環境の数
- それぞれの環境をどれくらいの距離話すのか
- Replicate_Physics:それぞれの環境の物理的な特性(地面の摩擦など)を同じにするか、別々にするかを指定
を指定します。
最後のRobotでは、
今回のProjectはDirectRLEnvで作成してるので、

Stage上のRobotへのPrim_Pathを指定しています。
ちなみにPrim_Pathの定義は以下のようになっています。

後、このRobotのところで、Articulationの定義について復習してました。
まず、ActuatorとArticulationの違いについて確認しました。

どっちも発音が似ていて混乱します。
更にArticulationを構成するLinkとJointの定義ですが、

の様になっています。
4.2 前回の復習2
前回は、「7. Nvidia Omniverseの勉強2(強化学習の勉強)」でも、Walkthrough [8]のClasses and Configs [9]を復習したので、その復習もやっていきます。
復習の復習ですね。
ここでは、Classes and Configs [9]のThe Environmentの勉強をしています。
ここは、先程のisaac_lab_tutorial_env_cfg.py、つまり設定Classで設定した内容を、実際に実装するためのClassになります。
そしてその内容はisaac_lab_tutorial_env.pyで指定しています。
以下にisaac_lab_tutorial_env.pyの内容を示しておきます。

このCodeがどんな機能を司ってるのかを詳細に渡ってまとめてありました。
ここにその内容をまとめると、かなり時間が消費され、今週の勉強に差し障るのでそれは止めます。
最後に

と書いてありました。
有りましたが、これはやらないでも良いかな。
今週はWalkthrough [8]の次のTutorialをやる事にします。
4.3 Environment Design [11]の復習をする
以下の

を勉強します。
まずBlogを調べて、前にどんな勉強をしたのかを確認します。
2025-11-03のBlogで勉強していました。
Blogの内容をざっと読んで確認します。
本文の訳がありました。

ここからJetbotを使用した強化学習のためのCodeの編集が始まるのか。
以下の手順でCodeの編集をやるそうです。

<Define the Robot>
手順1のRobotの定義ですね。

しかし最初はRobotの定義ではなく、Tutorial拡張にRobotsという新しいModuleの追加をしています。
具体的には以下の作業を行っています。

ここで作成したFileのそれぞれの役割も説明していました。

そしてJetbot.pyの実装が以下の様に載っていました。

この節の目的であるRobotの定義はここで行ってるんでしょうか?
2025-11-03のBlogでは、まずはここに書かれた実装の意味を理解すると書いてありました。

Robotの定義はここで行ってますね。
DampingとStiffnessの値もここで定義していました。
それぞれの機能についても以下の様にまとめてありました。

2025-11-03のBlogは今読み直してもかなりしっかりしています。
この節の最後の本文の訳です。

今回は全体の流れに注目するために、細かい点はあまり掘り下げない事にします。
次に行きます。
<Environment Configuration>
次の工程である

は、ここでやるんでしょうか?
2025-11-03のBlogでは以下の様に書かれています。

そうか、ここはEnvironment Configuration、環境の設定Fileの編集を行うのか。
そりゃ使用するRobotを変更するんだから、Environment ConfigurationのRobotの設定は変更しないといけないよな。
となるとここでもまだ、Robotの定義をしてる段階なのかな。
この工程がどこまでを指してるのかよく分からないですね。
追加するCodeだそうです。

SceneのCodeの切れてる部分は以下の様になってました。

で、前のEnvironment Configuration、環境の設定Fileと比較してどこが変わってるか、
なんですが、
2025-11-03のBlogでは比較してません。
次の本文にこのCodeの解説が書かれているのでそれを読んでます。
のでここで比較する事にします。

のCATPOL_CFGがJETBOT_CONFIGに
![]()
代わっています。
その後の、IsaacLabTutorialEnvCfg()関数内で、以下のFieldの設定が追加されています。

そしてSim、Robot、Sceneの設定をしてるですが、これらの設定は前と全く同じです。

ここが最大の謎で、Robotの設定は変わってないです。
あ、でもStage上に登録されたRobotは既にJETBOTになってるのかも。
それなら同じでも良いですね。
IsaacLabTutorialEnvCfg()関数内の最後に地味に以下のCodeが追加されていました。
![]()
次の本文です。

ここで定義したそれぞれのParameterは何を司ってるんでしょうか?
それは分かりません。何故なら2025-11-03のBlogではその検証をする前に次の文章を読んでるからです。

お、でもAction_SpaceとObservation_Spaceについては、この文章から何を司ってるか理解出来ますね。
2025-11-03のBlogでは、ここからCopilotに質問しまくって以下の回答を引き出しました。

ここで、次元数で入力してるのは、GPUでAcceleration Computingをするためでしょうね。
この後、Environment Configuration、環境の設定FileのCodeを一から全部、解説しています。
前のClasses and Configs [9]で勉強した部分は、省略すれば良いじゃん。と思ったんですが、
2025-11-03のBlogの時点では、Classes and Configs [9]でEnvironment Configuration、環境の設定FileのどのCodeの設定を勉強したのか理解して無いので、全部復習するしかなかったんですね。
以下のFieldの機能についての解説もありました。

ここで、2025-11-03のBlogは終わっています。
続きは2025-11-09のBlogに書かれています。こっちを読んでいきます。
以下の最後に追加されたdof_namesについての解説が一寸だけありました。

どのJointを動かすのかを指定してるはずです。
このRobotは車輪が2つあるだけなので、それぞれの車輪名を指定しています。
と書かれていました。
これで<Environment Configuration>の勉強は終わっています。
内容は、Fieldの次元数への変換方法がよく分からない事を除き、特に疑問は無いですが、今回の勉強の主目的である

の工程の内、何処に入るのかが分かりません。
普通に考えたら2ですが、でもここでRobotの定義もしてますよね。1かもしれません。
Claudeにそれを聞いてみますか?

だそうです。
この後、詳しい説明がされていますが、結論としてはこの工程が適当で、実態にそぐわない分類だったって事です。
このTutorial、Environment Design [11]の復習が終わったらこの工程表は現実の工程に沿ったものに、自分で作り直す事にします。
今週はここまでにします。
5. AIの勉強2(日本語字幕AIを作成する)
これとHoudiniの勉強はしばらくお休みにして、Claudeの勉強をする事にします。
Claudeに学習の順番を教えてと言ったら以下の順番で勉強しろ

というのでこれでしばらく勉強します。
で一寸考えてるんですが、無料で出来る範囲だけ実装して残りは勉強するだけにしても良いかなと思っています。
別に自分でAI Appを作成して売りたい訳じゃないです。
AI Agentの基礎だけ理解出来れば良いです。
5.1 Claude 101を読む
ここは流石に知らない事は無いと思いますが、一応読んでおきます。

読みました。
これってClaudeの使い方の説明じゃん。
CodeやCoworkについて知りたいんや。
これは後で勉強する事にして、次のAPI Fundamentalを見る事にします。
5.2 API Fundamentalを勉強する
そんな講座はありません。Claudeに確認させます。

Skilljarの講義を見てみますか。
これの事だそうです。

うーん。
どうせ動画を見るだけだし。
ClassにEnrollしますか。
こんな感じでした。

凄いLectureの量です。
最初のWelcome to the Courseを見ます。
2分程度の動画ですね。

API Keyは無いぞ。
今回は見るだけだし。
でVideoを見たんですが、こんなのNotebookLMで要約してもらえば、30秒で理解できるやろ。
しかしそれは出来ないようになってるのか。
そうだ画面を録画してそれをNotebookLMに上げてみよ。

Errorになりました。
じゃWhisperに読ませて、Textにして挙げてみます。
あれ?
Whisperって言語の設定が必要でしたっけ。
Geminiに質問して確認します。

だそうです。
この設定を追加する必要があるのか。

しました。
これで

を実行すればいいそうです。
w-eng "Test4.mp4"
を実行すれば良いのか。

お、結構時間がかかりましたが出来ました。
30秒位かかったかもしれません。
出来たTextをNotebookLMに読ませました。

今度は出来てます。
この動画の内容を箇条書きで教えてと書いたら


機能拡張とか、RAGの勉強もやるのか。
そしてMCPの基礎も学べるのね。
最後にClaude CodeとComputer Useもどんなものか理解出来るようになるのか。
結構Volumeあるな。

Codeは書けない。APIキーを使う気は無い。
動画を見てからどうするか考えます。
今日はここまでにして、明日やる事にします。
6. Houdiniの勉強
Houdiniの勉強はしばらくお休みします。そしてClaudeの勉強をします。
6.1 Building with the Claude APIの<Overview of Claude models>を勉強する
ここはClaudeの3つのModel、Opus、Sonnet、そしてHaikuについて説明してるだけでした。
特にまとめる内容でもないです。
次行きます。
6.2 Building with the Claude APIの<Accessing the API>を勉強する
最初のLectureです。
5分程度ですが、結構濃い内容でした。
昨日やったやり方で、NotebookLMに上げて要約してもらいます。

<0:00 Introduction>
ここは以下のSlidesでこのLectureの概要を簡単に説明しています。

この部分の講義をNotebookLMにまとめてもらいました。

これは次のSlideの内容も含めた説明ですね。

このSlideは一瞬写しただけでした。
<00:45 Request to Server>

ClientからServerにRequestするPhaseですね。
NotebookLMのまとめです。

APIキーは必ずServer側で設置するようにと言っていました。
<Request to Anthropic API>

NotebookLMの解説です。

<01:57 Model Processing>
このPhaseにおけるNotebookLMの説明です。

ここは沢山のSlideで更に細かい工程を説明していたので、それぞれのSlide毎の説明も以下に追加しておきます。
<<Tokenization>>


まず文字をTokenにするって事ですね。
<<02:34 Embedding>>


この工程は知らなかったです。もしくは勉強したけど忘れていました。
その単語を数値に変換するのか。
あ、これそれぞれのTokenのWeightを決定したやつじゃないですか。
AIの勉強のどこかで勉強したはずです。
<<02:44 Possible Meaning of Quantum>>

このSlideだけ突然出てきた感じですが、何故このSlideがここにあるのかもNotebookLMに解説してもらいます。

あらゆる言葉は、
多様な意味を持っていて、特定の意味に文脈によって限定されるので、Embeddingの次に文脈化を考える必要がある。
という事を説明するための例として
Quantumという言葉が出て来たのか。
<<03:04 Contextualization>>


<<03:26 Generation>>

この部分は何故か、NotebookLMは無視していていました。
あえて時間を指定してこの部分にはGenerationが書いてあるはずだからそこをまとめて。
と言ってやっと以下の回答を得る事が出来ました。

これじゃまとめになってないです。
一行で説明してと注釈を入れてみました。

<<03:59 After Generation>>

ここなんですが、NotebookLMが上手くまとめる事が出来ません。

Generationを繰り返してる事を言いたいのでしょうか?
Slideを見ると明らかに別な話をしてるはずです。
しかしNotebookLMはそれを認識する事が出来ないみたいです。
一文で説明して。と言ったら以下の様に返してきました。

うーん。なんかSlideの内容と合わない気がします。
ここは実際のLectureを見て確認します。
あってました。
これで回答文が生成されたんですか?
なんか、よく分からんところがあります。
<04:33 Response to Server>

NotebookLMの回答です。

<04:58 Response to Client>

ここまで来たら普通のServerとClientのやり取りです。
NotebookLMは以下の説明をしていました。

<05:10 Conclusion>

NotebookLMのまとめです。

6.3 Building with the Claude APIの<Accessing the API>を勉強した感想
結構時間がかかりました。
そして結構、疲れてた。
勉強時間は短くはならなかったですね。
正しこのLecture内の内容で分からない事は無くなりました。
なんか、とても優秀な生徒と同程度の学習を平均的な生徒でも出来るようになる、正しその分時間の短縮は出来ないし、疲れもする。
という感じです。
それぞれのStepを自動化出来たら、もっと楽に勉強出来る気がします。
以下に今回やった勉強のStepをまとめます。
- 動画を録画
- 録画した動画の音声をOpenAI WhisperでText化
- そのTextをNotebookLMで読み込む
- 動画で出て来たSlideを全部、Screenshotで切り抜く
- そのScreenshotをBlogに張り付ける
- Screenshotが取ったSlideが表示された時間を、そのScreenshotを貼り付けたBlogの上に記録
- NotebookLMにそのScreenshotの内容を一文で説明してもらう。
- その説明をBlogのScreenshotの下に張り付ける
- それぞれのScreenshotの下に感想を書く
だいたいこんな感じです。
1~8までを自動化するAppをAIで作成出来たら凄い勉強が速くなりますね。
それを作成する事を今回のClaudeの勉強の目的にしましょう。
7. Nvidia Omniverseの勉強2(強化学習の勉強)
Nvidia Omniverseの勉強で、Isaac Lab Documentation [6]の勉強をしていますが、
これってIsaac Labの使用方法の勉強が主で、
Robotが自動歩行するためにどんな強化学習をしなければならないのかは別に勉強しないといけないのではないのか?
との疑問が出て来ました。
で先週は強化学習の教科書について調査しました。
でその教科書を勉強するための時間をここに作りました。
7.1 Nvidia GTCに登録する
前々回、勉強した How to build Humanoid: NVIDIA Isaac Lab, how to walk [12]で、今年のNvidiaのGTCがあるのでVirtualでも登録しろ。Robotに関連したSessionで参考になるのが沢山あるから。と言っていたので
登録する事にしました。

Resister Nowを押したんですが、
Virtualのみの参加なのに、Ticket買わないと先に進めなかったりして、結構大変でした。
記録するの忘れてしまったのでここにまとめる事が出来ません。
Geminiに色々質問してやっと出来ました。
こんな感じで見たいSessionを登録したんですが、

後からGeminiに聞いたら、別に登録しなくても後から録画を見る事が出来るそうです。
それ聞いて、途中でSessionから興味あるのを探すのを止めました。
疲れた。
今週のNvidia Omniverseの勉強2(強化学習の勉強)はこれだけです。
8. DirectX12の勉強
3D Graphicsを作成するのにOpenGLを使ってるとバカにされるからDirectX12の使い方も勉強しようとしたら、Windows 8ではDirectX12が使用出来なくてずっと勉強を我慢していました。
で新しいPCを買ってやっとDirectX12を勉強できる環境になったら、もうDirectX12を勉強する人がいなくなっちゃってたんです。
のでこれも出来たら何したいというのは無いですね。
ああ、昔MMDを自分で作りたいというのはありました。それを目的にします。
8.1 「DirectX 12の魔導書」を勉強する
8.1.1 前回の復習
教科書には(sizeof(matrix)+0xff) & ~0xff)を計算すると必ず256の倍数になると書いてありました。
しかし& ~0xffをすると256の倍数になるのは分かりますが、実際に必要なByte数よりも小さくなってしまうんじゃないのか、と言う疑問があってそれについて調査しました。
結論は、+0xffをする事で、必ず必要なByte数より256の倍数になる数だけ上になる事が判明しました。
その後で、「6.2.1 定数Bufferの作成」を実装しました。
実装した内容を先々週作成したGitHubのRepositoryにPushもしました。
8.1.2 「6.1.2 Mapによる定数のCopy」を勉強する
これは非常に短い節なんですが、今週はMapの使い方の復習もしたいのでこれだけ勉強する事にします。
2026-01-18のblogに以下の手順をまとめましたが、

最後のmatrixはErrorになっていますが、matrixはどこにも宣言してないので当然です。
Sample Codeは

となっています。
ここは何をやってるのかよく分かってなかったんですが、Geminiに聞いたら分かりました。
まず先週実装した以下のCodeで、

Upload Heap領域に定数Buffer用のMemoryを確保します。
そして今週勉強した以下の実装で

そのMemoryに定数Bufferの値を保持させます。
8.1.3 Map()関数の使い方を復習する
Map()関数について復習します。
GeminiにMap()関数について簡単に説明してもらいました。

あれ?
Upload Heap上のバッファはCPUからもGPUからもAccess出来るんじゃなかったの?

うーん。よく分からん。
と思ったらGeminiは私の心が読めるのか分かり易い例えをしてくれました。

あ、分かった。CPU側から認識できる住所(Adress)がないんだ。
そのAddressをMap()関数が作成するんだ。

納得しました。
Map()関数の機能に戻ります。

そういう事だったのか。
で今回の

になるのか。
Geminiに一応解説してもらいました。

あれ、これXMMATRIXのSize分と言っていますが、
Buffer((sizeof(XMMATRIX) + 0xff) & ~0xff)
なんだから、256Bytes分のMemory領域を確保してるんじゃないの?
確認しよ。

代入で書き込むSizeは256Bits以下だから64Bitsでも良いのか?
更に詳しく説明してくれました。

うーん。
成程。

XMMARIXで作成してるので、自動でSizeが64Bytesになってしまうのか。
そして書き込むMemory領域と確保したMemory領域のSizeが違っていても、確保したMemory領域が書き込むMemory領域よるも大きければ問題は無いって事です。
理解しました。
もうMap()関数で分からない事は無いですね。
と言うか今日勉強した内容を分かった気になってた今までの方が怖いです。
Map()関数の勉強して良かった。
8.1.4 GitHubのRepositoryにPushする
最後に今日追加した

のCodeをGitHubのRepositoryにPushしておきます。
GitHub Desktopを開き、Commentを書き、Commitし、その後Pushをしました。
Browserから確認しました。
Chapter6のmain.cppに以下のCodeが追加されていました。

出来てますね。
8.2 Lötwig Fusel氏のD3D12 Beginners Tutorial [D3D12Ez]を勉強する
8.2.1 前回の復習
前回何をやったのか全く覚えていません。
Blogを遡って調べたら、前回勉強したのは2026-03-01のBlogでした。
Writing Shaders in HLSL | D3D12 Beginners Tutorial [D3D12Ez] [12]の続きを勉強していました。
27:45まで勉強したと書いてありました。
今週はここで勉強した内容を実装します。
8.2.2 Writing Shaders in HLSL | D3D12 Beginners Tutorial [D3D12Ez] [12]の続きを実装する
2026-03-01のBlogを見ると
Shader.cppのConstructorに以下の実装を追加しろ。と書いていました。

Sample FileにそっくりなCodeがあったのでそれをCopyして以下の様に追加しました。

あってますね。
2026-03-01のBlogによるとこれでShader.cppの実装は完成だそうです。
そして以下の様に書いていました。

調べます。
あれ?
どこにもありません。
Geminiに聞いたら以下の様になってるそうです。

MAX_PATHはWindows.hで最初から定義されてるそうです。
はい。
理解しました。
そしてMAX_PATHは260という事も分かりました。
Main.cppに戻ってShader.hをIncludeします。

しました。
そしてShader Classを使用してVertex ShaderとPixel Shaderを以下の様に読み込みます。

これはShader ClassのObject、vertexShaderとpixelShaderを作成しただけですね。
更にShader.cpp FileのShader()関数に以下の実装を追加しました。

ここは何をしてるのかよく分からなかったんですが、Geminiに聞いたら氷解しました。

Pathを取り出していたのか。
納得。
具体的には以下の事をやっていました。

これでCSO FileがあるところのPathを取得出来た訳です。
ShaderDirをStaticなVariableに変更します。
しますが、これTutorialでは最終的に

に実装してるんですが、Sample Codeでは以下に示した様に

Shader ClassのConstructor内で宣言してるんです。
うーん。
どっちで実装しよう。
動画を見て確認します。
動画では最後は以下の様にSample Codeと同じ実装にしていました。

じゃ、これで実装します。

しました。
Shader.hに#include <fstream>を追加しました。

<fstream>は以下のような機能を持っています。

Shader.cppのConstructor内に以下の実装を追加しました。


だそうです。
で、Shader.hに以下のinlineのGetterを追加しました。

を追加しました。
ここで、2026-03-01のBlogの勉強は終わっていました。
9. まとめと感想
なし
10. 参照(Reference)
[1] Procedural Minds. (2024, August 25). Do you want to remove just one side of your building? | UE 5.4 p4 [Video]. YouTube. https://www.youtube.com/watch?v=ngizgkYM2Ac
[2] Epic Games. (n.d.). Control Rig in Unreal Engine, from https://dev.epicgames.com/documentation/en-us/unreal-engine/control-rig-in-unreal-engine
[3] Full-Body IK. (n.d.). Unreal Engine. https://dev.epicgames.com/documentation/en-us/unreal-engine/control-rig-full-body-ik-in-unreal-engine
[4] Howard, J. (Instructor). (n.d.). Practical Deep Learning for Coders [Video playlist]. YouTube. https://www.youtube.com/playlist?list=PLfYUBJiXbdtSvpQjSnJJ_PmDQB_VyT5iU
[5] Howard, J. (2022, July 21). Lesson 5: Practical Deep Learning for Coders 2022 [Video]. YouTube. https://www.youtube.com/watch?v=_rXzeWq4C6w
[6] Howard, J. (n.d.). First Steps: Road to the Top, Part 1 [Kaggle notebook]. Kaggle. Retrieved February 24, 2026, from https://www.kaggle.com/code/jhoward/first-steps-road-to-the-top-part-1
[7] Nvidia. (n.d.). Isaac Lab Documentation. Retrieved from https://isaac-sim.github.io/IsaacLab/main/index.html
[8] NVIDIA. (2026, February 14). Walkthrough. Isaac Lab Documentation. https://isaac-sim.github.io/IsaacLab/main/source/setup/walkthrough/index.html
[9] Nvidia. (2026, March 4). Classes and Configs. In Isaac Lab Documentation. Retrieved from https://isaac-sim.github.io/IsaacLab/main/source/setup/walkthrough/api_env_design.html
[10] Nvidia. (2026, March 4). Environment Design Background. In Isaac Lab Documentation. Retrieved from https://isaac-sim.github.io/IsaacLab/main/source/setup/walkthrough/concepts_env_design.html
[11] NVIDIA. (n.d.). Environment design. Isaac Lab Documentation. https://isaac-sim.github.io/IsaacLab/main/source/setup/walkthrough/technical_env_design.html
[12] Lötwig Fusel. (2023, August 6). Writing Shaders in HLSL | D3D12 Beginners Tutorial [D3D12Ez] [Video]. YouTube. https://www.youtube.com/watch?v=8MMRz9QMJI8