日本語入力がONなのに日本語が入力できない

ここ最近になって、日本語入力ができなくなる現象がたびたび発生するようになりました
 半角/全角の切り替えキーを押すと IME のモード表示は「A」と「あ」とで切り替わるのですが、実際に文字を入力してみるとどちらのモードでも半角アルファベットが入力されてしまうのです
 Windows を再起動すると正常に戻るのですが、毎回毎回この現象が発生するたびに再起動するのは面倒なので改めて調べてみました

Windows10 で発生していると言われているこの現象に対しては IME を再起動することで正常に戻すことができました
 再起動の方法は、コマンドプロンプトを使う方法と、タスクマネージャーを使う方法とがあります

実施の際は自己責任にてお願いします

●コマンドプロンプトを使う方法
taskkill /IM "ctfmon.exe" /F
ctfmon.exe

/IM はイメージ名の指定、ここでは "ctfmon.exe"
/F は強制終了

場合によるのか環境によるのかは分かりませんが、1 行目を実行して "ctfmon.exe" を終了したら自動的に "ctfmon.exe" が再起動した場合は 2 行目の実行は不要です

が、起動しなかった場合は 2 行目も実行して "ctfmon.exe" を起動します


●タスクマネージャーを使う方法

プロセス "ctfmon.exe" あるいは "CTFローダー" を終了します
(タブによって表示される名前が違いますが、示すモノは同じです)

"ctfmon.exe" が自動的に再起動した場合はこれで作業は終了です
 起動しなかった場合は「ファイル」→「新しいタスクの実行」→ "ctfmon.exe"


以下、駄文

Signature scanで欲しい値があるメモリアドレスを見つける方法

Signature scan はゲームプログラムの特定のバイナリ値の並びを使ってメモリ検索を行うことで、そのプログラムが書き込んているアドレスを特定する方法です
 Signature は Array of Bite、AOB などと書かれていることもあります
Sig scanの概要

もくじ

  1. 概要
    1. Signature scan を使用するメリット
  2. 作業手順
    1. 1. 欲しいアドレスへのポインタを含む命令文を探す
    2. 2. Signature の作成
    3. 3. Sig scan に対応した asl の記述

<新版>日本語の作文技術

<新版>日本語の作文技術
朝日文庫

分かりやすい文章を書くための技術を教えてくれる本です

偶然タイムラインに流れてきたのを見て、まさに自分に必要な本だと思ったのですぐに購入して読んでみました

まず、筆者の技術論と思想とを分けて読むのが良いと思います
 レビューなんかにも「内容には同意できるけど、思想には同意できない」といった意見が複数見られ、引用されている例文のチョイスや地の文から発せられる雰囲気でどのような思想なのかは分かるかと思います

肝心な技術論の部分については、全てに完全に同意できるわけではないですが全体的に参考になる部分が多く、技術の指南書として見れば良書だと思います
 ただし、元の本(新版ではない方)が出版されたのが 1982 年であり、当然ながら引用文はそれより前に作られた文章(さらには筆者の思想による例文のチョイスもあったり)なので、古い文体に慣れていないと理解を妨げてしまうような気もしました

レビューでは「わかりにくい」という意見も見られましたが、おそらくは筆者の思想や文体が気になって本題が頭に入りにくくなってしまったのでは? と思います

そんな訳で「技術指南書としては良書だが、技術的な内容とその他の内容を分けて読む必要がある」という、「注意点を伝えたうえでなら良書として人に勧められる本」と言うのが私の正直な感想

以下、個人的に特にタメになったと思う内容について

Livesplit用コンポーネントの作り方

コンポーネント開発に興味を持った方が開発に必要な情報を調べようとした時に少しでも助けになればと思い、私が調べた情報などを紹介するためにこの記事を書きました。

この記事はコンポーネント開発に必要な全ての情報を記載している訳ではありませんが、公式のソースコードを読み解くための参考資料として活用していただけると幸いです。

この記事の中で My~ と書いている部分は開発するコンポーネント名と考えてください。

もくじ

  1. 開発資料リンク
  2. あらかじめ知っておきたい C# の知識
    1. C# の仕様関連で知っていると便利なこと
    2. 標準ライブラリ関連で知っていると便利なこと
  3. コンポーネント開発の始めに
    1. 環境構築
    2. コンポーネントのプロジェクトに含まれるファイル
    3. コンポーネント開発の始めの一歩
    4. プロジェクトのプロパティ設定
  4. コンポーネント開発で利用する定番クラス
  5. コンポーネントの処理の流れ
    1. クラスの実体化やメソッド呼び出しのタイミング・順序
    2. コンポーネントで発生した例外
  6. タイマー画面への描画
  7. 設定画面
    1. AutoScaleMode に注意
    2. MyComponentSettings ユーザーコントロール
    3. 配置するコントロール類
    4. 設定画面に関係するイベント
    5. 設定項目の値
  8. 実際にタイムの値が格納されている場所
    1. LiveSplitState からアクセスできるタイム
    2. 計測中のタイム
    3. 自己ベストタイム
    4. 履歴タイム
    5. 比較対象タイム
  9. 比較対象タイム Comparison の生成
    1. タイムを生成する ComparisonGenerator
    2. Comparison の名前の設定
    3. LivesplitState に含まれている各 Comparison
    4. 注意したい Splits コンポーネント、Subsplits コンポーネントの仕様
  10. 各種イベント
    1. LiveSplitState
    2. TimerModel
    3. Run
    4. その他
  11. コンポーネントのデバッグ
  12. 自動更新

フォルダごとの紹介・説明

  1. LiveSplit.Core/UI/Components
  2. LiveSplit.Core/UI
  3. LiveSplit.Core/Model
  4. LiveSplit.Core/TimeFormatters
  5. LiveSplit.Core/Model/Comparisons
  6. LiveSplit.Core/Model/RunSavers
  7. LiveSplit.Core/Model/RunFactories
  8. LiveSplit.Core/Options
  9. LiveSplit.View/View
  10. UpdateManager

Unity 製ゲームの場合に使用できる、Autosplitter 用の asl で使用したいメモリアドレスの特定方法

お知らせ

この記事の改訂版を公開しました。

(改訂版)Unity 製ゲームの場合に使用できる、Autosplitter 用の asl で使用したいメモリアドレスの特定方法



Cheat Engine を使って asl ファイルで利用するための静的アドレスを特定する場合、一つの値に的を絞って値を検索して特定する方法があります
 が、その場合は欲しい値が存在している保証がなく、また、欲しい値の数だけ検索を繰り返す必要があります

Unity 製ゲームの場合は mono の分析機能を利用することで、欲しい値を格納しているフィールドの有無を知ることができ、さらにはクラス単位でフィールドの値を格納している静的アドレスを特定することができます

この記事はメモリアドレスを特定する方法のみの記事です
asl の全体的な説明や基本的な作り方などをまとめた記事もありますので、よろしければこちらもご覧ください

また、構造解析機能を使ってメモリアドレスを調べる部分の実演をした動画を公開しておりますので、よろしければこちらも参考としてご覧ください

手順
  1. 1. 欲しいフィールドを含むクラスの探索
  2. 2. クラス内のフィールドの動的アドレスの特定
  3. 3. フィールドのポインタ検索
  4. 4. クラスの静的アドレスの特定
  5. 5. 欲しいフィールドの静的アドレスを決定

Typoman - revisedAny で 36:48 を達成





RTA 配信を一覧表示できるサイトで知らないゲーム画面を見たことがきっかけで出会ったゲームで、普通に面白そうなゲームだと思ったことと steam セール中だったことで即購入
 その時は自分で RTA を走るつもりはなかったのですが、なんとなく SRC で紹介されている短縮技に挑戦してみて、成功条件の検証などをし始めて、そこまでやったならと自分でも走り始めたという経緯があります

Flash ゲーの RTA イベントに出場するために別ゲーの練習をしている間に、このゲームの新技が見つかったりパズルの最適化が進んだりで、実は記録を出したこの時は新しい方法に手をなじませるための練習のつもりのプレイでした
 別ゲーの直後であり、新旧の方法が頭の中で混線していて、ところどころ操作が拙い感じになっていますが、それでも記録は記録

autosplitter 用の asl ファイルで初めて公開できるレベルのものができたゲームでもあります

この1年の振り返り

箇条書きで簡単に
  • RTA のイベントに初出場
  • 他の RTA イベントにも出場
  • Linelight - All Yellow Stars で SRC 記録より 20 分早くクリア
  • Typoman - revisedAny% で SRC 記録より 2 分早くクリア
  • Typoman 用 asl ファイルを公開
  • Deep Sea Hunter - 100% で SRC 記録より 3 分早くクリア
  • RiJO 2020 の効果でブログアクセス数が初の 4 桁!

  • padlight 用のスキンを作成
  • その後、padpyght 用に移植(そういやまだ公開してない)

  • 天使の微笑みの攻略チャートを公開
  • 初めて c# でプログラミング
  • VS Code を導入

  • ブログ記事で表示するソースコードを行数付きに変更
  • ブログ記事本文中の外部リンクにアイコンが付くように変更
こうして並べてみると、今年は RTA に関連することが多かったなと改めて実感しました
 タイムだけで見れば WR いくつか持っていますが、公に認められたタイムではないので自称 WR です

1 年前の振り返り記事で「今の風を感じて」の 100% で 2 時間切りたいと書いてますが、結局挑戦すらしないまま 1 年経ってしまいました
 他の RTA を色々やっていたし、そちらではそれなりに記録を出しているので大目に見てください

RKS FS では、ついにコピクラ縛りで RTA という頭おかしいことをやりました
 満足のいく内容ではないため、またいつか挑戦して動画をアップ出来たらいいな


某 1 時間条例がきっかけで c# の勉強をして、未公開ではあるものの一応はゲームを完成させました
 その時に身に着けた知識が、まさか Autosplitter の asl を作ることに生かせるとは思ってもいませんでした
 それどころか、もし Autosplitter に興味を持ち始めた時に c# の知識を持っていなかったら、自分で asl ファイルを作ることはなかったんじゃないかとすら思っています

初めて作った asl が Linelight のチャレンジモード world.1 用のものですが、完成度が低いし、そこでしか使えないというものです
 昨日、ようやく Full-game 用の asl 作成に必要なメモリアドレスが分かってきたところなので、年が明けたら本格的に着手したいと思っています


箇条書きで簡単にと言ったのに、普通に文章を長々と書いてしまった……

とにかく、簡単にまとめると、今やっていること一つ一つを着実に形にして行けたら良いと思います