C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

UE4 の Material における Sampler の Sampler Type の Color と Linear Color の違い、対応する Texture と使い所について

Quiz: どんな描画結果が得られるでしょう? ↓のX軸方向にR値が 0 から 255 へ線形に変化するだけの 8 bit/channel の PNG 画像を UE4 へテクスチャーとしてインポートし、 マテリアルを作成して↓のノードを組み2値化を実装した サンプラーノードの Parameter…

Windows 10 で 64GB 以上の USB マスストレージデバイスを FAT または FAT32 でフォーマットしたい時のメモ

状況 メインボードの BIOS アップデートに USB マスストレージデバイスを使おうと思ったら FAT または FAT32 じゃないと認識してくれないとかそういう状況がたまによくある。 Windows 10 で 64 GB 以上の USB マスストレージデバイスは exFAT または NFTS で…

ピンヘッダー&ピンソケットの切断加工は OLFA 167B で綺麗な仕上がりを簡単に

↓ピンヘッダー&ピンソケットのソケットの方。電子工作で直接はんだ付けせずに部品を脱着可能に接合するコネクターとして定番のやつ。ピンヘッダー&ピンソケット、QIコネクター、ブレッドボードの穴などなど、多くの電子工作の接合部分に抜き挿しできる。 …

Pro Micro の I2C とプルアップ抵抗値の計算メモ

Pro Micro で I2C を使った通信を行う設計をしたい場合にプルアップ抵抗の適正値の計算方法を知らないので調べたメモ。 調査前の既知の知識は Let's Split では 4.7kΩ の抵抗器を使う回路が特に説明も無く登場しているのを知っている程度。 qmk_firmware/key…

Pro Micro と qmk_firmware と WSL-Ubuntu と avrdude のメモ

自作キーボードを Windows 10 な PC で楽しみたいけど WSL-Ubuntu でにゃんにゃんしたいメモ。 WSL-Ubuntu での AVR 開発環境の準備 sudo apt install -y gcc-avr avr-libc binutils-avr avrdude WSL-Ubuntu での qmk_firmware の make によるビルド git clo…

Pro Micro と Arduino IDE と VSCode と Windows 10 のセットアップのメモ

note: Pro Micro は install 前から挿しておいても特に問題ないし、 Windows 10 では COM ポートとして認識される。 install Arduino IDE を install する。 Windows は Installer, ZIP, Store-App から導入方法を選べる。 Store-App で install すると inst…

tetraface Metasequoia ユーザーが Autodesk Fusion 360 を使うときの QUICK SETUP メモ

自作キーボード設計に Metasequoia では少々つらいので Autodesk Fusion 360 を導入しました。趣味の工作で売り上げもへったくれも無いので無償使用できます ↓ Metasequoia のユーザーは最初の QUICK SETUP の CAD Experience は Thinkercad を選択するとそ…

CITIES: SKYLINES の MOD 開発環境の整え方、デバッグ出力の出し方

(note: Windows 10, Visual Studio 2017, STEAM 環境向け) ① MOD 開発環境の整え方 理屈はめんどくさいので解説しないよー CITIES: SKYLINES を STEAM で導入 Visual Studio Installer で Workloads タブの Game development with Unity を導入 Visual Stu…

usagi.notes 開発始めてました。

Note: 今回は技術的なはなしはたぶんありません。 Sticky Notes アプリってどうもいまひとつわたしが欲しい納得のアプリが無いのよねー、と数年おきくらいにちょっとアプリを調査しては結局ふだん使いとは別にテキストエディターを用意してメモやコードスニ…

C#, XAML: Windows 10 の Ligth/Dark テーマ状態を確認してそれっぽいテーマを採用するアプリにする方法

// Windows のテーマが Light か Dark か取得するヘルパー using Microsoft.Win32; namespace usagi.example { static public class ThemeHelper { const string WindowsThemeRegistryKeyPath = @"Software\Microsoft\Windows\CurrentVersion\Themes\Persona…

C#: C# コードから ECMAScript ソースを翻訳&実行する処理系を組み込む方法; WebBrowser, JScript, V8 ( ClearScript )

いくつか手段がある。 ECMAScript の Microsoft 処理系の1つ ChakraCore を内包する WPF の WebBrowser コンポーネントを組み込む方法 ECMAScript の Microsoft 処理系の1つ JScript を組み込む方法 ECMAScript の Google 処理系の V8 を組み込む方法 ECMASc…

XAML: DataContext へ Properties/MySettings.settings を XAML だけで完結して束縛する方法

前提: Visual Studio 2017 でプロジェクトを作成してWPFアプリをデザイナーを使って作る際のはなし。 1. はじめに。 C# コードで束縛する場合 // 例えば MainWindow の DataContext へ // MainWindow の ctor で Properties/MySettings.settings に // 用意…

C#: generics<T> + object 黒魔法 vs. 非ジェネリクスメソッド 実行速度編

前回の記事「C#: 組み込みの数値型を扱いたい generics の 型と IConvertible の肝っぽい事、それと object 型を暗躍させる必要性のメモ」で C# の generics で数値計算を実装すると結局 object の暗躍が必要なので実行時コストが気になるよ、でもまあ実行コ…

C#: 組み込みの数値型を扱いたい generics の <T> 型と IConvertible の肝っぽい事、それと object 型を暗躍させる必要性のメモ

// 前提; この記事の Fail とか AreEqual とかはこいつの↓ using static Microsoft.VisualStudio.TestTools.UnitTesting.Assert; // 任意の IConvertible を別の IConvertible に数値を保持して変換したい場合 public static B C<A, B>( A a ) where A : IConverti</a,>…

C#, LINQ, Lambda-expression: LINQ の query-expression の中の select 句で lambda-expression を吐かせたい。でも C# ちゃんが翻訳死しちゃったの、ってスタック・オーバーフロー・チャンスしたら .NET イケメンの Reza Aqhaei が助けてくれたメモ。

// Example-0; 突然の翻訳死が訪れるよ var xs = from v in Enumerable.Range( 0, 4 ) select w => w; こういう事をしたいけど、これじゃ C# コンパイラーちゃんが死んじゃう error CS1942: An expression type in select' clause is incorrect. Type infere…

C#: null れる class と null れない struct いずれの可能性もある object を as<T> したい場合の限界、あるいは C# らしい結論

// これはコンパイルできない(´・ω・`) // object -> T static public T As<T>( object o ) { return o as T; } // as T できるためには T に class 制約が必要。これはコンパイルできるし、期待動作するかもしれない。 // object(class=nullれる何か) -> T st</t>…

C#, WPF, XAML: System.Windows.Controls.Control が "いわゆるコントロール" の共通基底だと思い込んで実装したら TextBlock であっさり null 例外に殺された件

// 前提、 C#-7.0 using System.Windows.Controls; var c = new Control(); if ( c is Label l ) Console.WriteLine( $"Label.Content={l.Content}" ); if ( c is TextBlock t ) // <--ここでコンパイルエラーが生じてくれる。 Console.WriteLine( $"TextBlo…

C#-7.0: 滲み出すスコープ

Visual Studio の C# プロジェクトでも Error も Warning も1件も見逃さない綺麗なビルドを心掛けていますが、 Messages は見落としていました。何件か来ている。 まず、一番上を見る。 IDE0018: Variable declaration can be inlined とやら。 IDE0018 "Var…

WPF,XAML: Image に Source で入れると極端にぼやけたり何かがおかしい JPEG に遭遇してしまった時の簡単な対処方法

仕事で扱ってもいるので国土地理院の地理院地図のタイル画像データはよく使わせて頂いています。います、のですが、これがたまにメタデータだったりピクセルフォーマットだったりが奇妙な画像ファイルに遭遇する事がたびたびあります 今回は地理院地図のJPEG…

C#/.net/NuGet: nuget デビューしたはなし

usagi.cs ; わたしが欲しいと思った適当な機能たち for C# nuget -> NuGet Gallery | usagi 0.0.0 repos -> GitHub - usagi/usagi.cs: わたしが欲しいと思った適当な機能たち for C# 数年ぶりに C# の実装を書いていて「きぶん」と「おもいつき」で書いてみ…

UE4/C++: USoundWave と USoundCue または何れにせよ USoundBase でいいやのメモ

UE4 プロジェクト内のアセット化された「なにか」を C++ コードの ctor で拾いたい場合には以下のようにする、するのだが…: #include "Runtime/CoreUObject/Public/UObject/ConstructorHelpers.h" // どこかの UObject 系の ctor でプロジェクト内のアセット…

C#: ビルド番号の自動採番の有効化と Properties.Settings.Default の Upgrade トリックの必要について

遠いむかしの記憶、 C# というか Visual Studio のプロジェクト管理システムにはバージョン番号の一部を自動採番する便利な機能があった、ような気がした。実際に執筆時点で現行製品の VS2017 で作った C# のプロジェクトの AssemblyInfo.cs にも次のコメン…

XAML: 同じ ItemsSource を持つ複数のコントロールの効率的な定義の仕方、あるいは ItemsSource を StaticResource で別定義する方法

例えば同じ要素軍を選択肢として提示する複数のコンボボックスを配置したいとしよう。以下のコード例は何れも <Window> の内部に定義している。 <ComboBox Name="CB1"> <ComboBoxItem Content="選択肢1"/> <ComboBoxItem Content="選択肢2"/> <ComboBoxItem Content="選択肢3"/> </ComboBox> <ComboBox Name="CB2"> <ComboBoxItem Content="選択肢1"/> </comboboxitem></combobox></window>

C#/JSON: Newtonsoft.Json の最も簡単な使い方

C#er には標準ライブラリーに準じてお馴染みらしい JSON を扱うライブラリー Newtonsoft.Json があるようだ。しかし、こういってはなんだがろくな解説が無い(個人の感想です。)ので私が使うにあたり最低限調査したメモを残す。 使用する主な名前空間は2つ…

Windows: スタートボタンが死んだ日

Note: 今回はわりとエッセイ的ななかみです。 もう数年程度は必要の無かったので Windows 10 は(昔に比べれば)安定動作してくれてその点では余計な手間が少なくなって嬉しいな、と思っていた。 だが、今日は スタートボタン が死んだ タスクバーの他の機能…

.net/XAML: bool を反転して Binding したかっただけなんだ

XAML で UI を作っていたんだ。 <CheckBox IsChecked="{Binding Awabi}"/> <CheckBox IsEnabled="{Binding !Awabi}"/> 先日の 「.net/XAML/C#: XAML のプロパティーは Visibility 型だけど Boolean の DataContext に束縛したい場合の最適解、あるいは BooleanToVisibilityConverter について」 の例から IValueConverter を実装した Inverse</checkbox></checkbox>…

UE4/C++/BP: UGameplayStatics::OpenLevel の Options が ? に化ける怪異、あるいは UEngine::SetClientTravel のパラメーターの本当の意味について

次のコードあるいは相当のBPは期待とは異なる動作を招くかもしれない。 UGameplayStatics::OpenLevel ( GetWorld() , TEXT( "Sushi" ) , true , TEXT( "#Tako" ) ); 『このようなレベルの開き方をした場合、開かれたレベルでは AGameMode::OptionsString が …

UE4/C++: UEDirectInputPadPlugin を Fork してにゃんにゃん

katze_7514 さんの UEDirectInputPadPlugin を Fork して でにゃんにゃんしました。 Fork 先: usagi/UEDirectInputPadPlugin Fork 元: katze7514/UEDirectInputPadPlugin UE4 には 4.15 以降は標準で Windows RawInput Plugin が入りましたが、 軸の入力値が…

.net/XAML/C#: XAML のプロパティーは Visibility 型だけど Boolean の DataContext に束縛したい場合の最適解、あるいは BooleanToVisibilityConverter について

「Boolean なプロパティー Hoge が DataContext に束縛された Window のにある何かのコントロール(下の例では Button )の Visibility プロパティーを XAML だけで簡単に Window の DataContext の Hoge に束縛したい!」と思ったんだ。 <Window ... 略 ...> ... 略 ... <Button Visibility="{Binding 😂 Hoge ? Visible : Hidden したいんだけど!!😂}"/> ... </button></window>…

UE4/C++: NewObject で生成したオブジェクトの Outer を変更したい場合のメモ

↓こういうのが居たとする。 // UObject 派生だがシングルトンファクトリーで生成されるオブジェクトがあったとする UA* UA::GetInstance() { if ( ! my_static_instance ) my_static_instance = NewObject< UA >(); return my_static_instance; } このような…