エフアンダーバー

個人開発の記録

【RPGツクールMV】イマドキのプラグイン記述術

ツクールMVが発売されたのが2015年の年末だそうで、その頃からはずいぶんWeb周りも進化しました。 ツクール自体もアップデートが繰り返され、使える機能もいろいろ増えたので、 プラグインの『イマドキ』の書き方についてまとめておきます。 ツクールMZが発…

【Unity】 Quaternionの回転順の話

Unityも2020.1になるとのことなので、ひとつ今更な話でもしようかと。 UnityEngine.Quaternionのoperator *を見ると 次のように説明されています。 Combines rotations lhs and rhs. Rotating by the product lhs * rhs is the same as applying the two rot…

【Unity】 ECS CHANGELOG [0.2.0]-[0.11.0] 和訳メモ

ECSのまとめ記事の更新をしようとCHANGELOGを翻訳したのだけど、 それだけで疲れたので更新は先送りにしてとりあえずこれだけ公開。 半年サボった代償は大きい……。 いくつか意味がとれない文があったりと翻訳の質が少しアレですが、 元々自分用のメモだった…

【Unity】 ECS『を』実装しよう

ECSの記事は徐々に増加しており盛り上がりを見せていますが、 それでもやはりECSとは何かよくわからないという声は多く、 なればその仕組みを紐解くべく自前で実装してみよう……という建前の思いつき記事です。 これを読んでUnity ECSが使いこなせるようにな…

PureScript 入門 のそのまえ

QiitaでPureScriptを始めるのに苦戦している記事を読んで、 自分もこの前すごく苦労したことを思い出したので、 まだ感覚が残っているうちにいろいろ書いておくことにしました。 PureScriptの紹介が目的ではないので、 「PureScriptとは何か」とか「どんなコ…

【RPGツクールMV】コモンイベントの力を見せてやる!!

RPGツクールはシンプルな使い勝手にもかかわらず、 使い方次第で多彩なゲーム表現を可能とするツールです。 今回はそんなRPGツクールにて、隠されたアイテムを発見するダウジング機能を実装してみたいと思います。 そう、コモンイベントのみで……。 サンプル…

GIMPのファイル操作が異常に遅いときの対処法 (Windows)

GIMPは無料の画像編集ソフトとして長いこと使っているのですが、 いつの頃からかいくつかのファイル関係の操作に数秒かかるようになり、 遅いなぁとずっと思っていました。 何年か前に対処法を調べたときはうまく見つからなかったのですが、 今回英語で調べ…

シノビガミアプリの開発について

シノビガミの代用判定アプリの開発に関する記事です。 シノビガミの代用判定アプリ自体についての説明は前記事を参照してください。 www.f-sp.com ソースコード 開発の経緯 開発環境 UI設計 プログラム設計 PureScript所感 ブラウザバグたち 未対応 縦書きモ…

シノビガミのアプリつくりました

シノビガミの代用判定時の目標値を表示するWebアプリを制作しました。 この記事は一般向けのアプリの宣伝を目的としたもので、プログラマ向けの開発周りの話は別に記事を書きます。 制作物 shinobigami.f-sp.com Webアプリなのでブラウザで開けばそのまま利…

【Unity】 ECSへ 思考の移行ガイド

前回書いたECS記事はなかなか好評だったみたいで、ありがたいことに日本の公式にもツイートしていただきました。 www.f-sp.com しかし一方で、反応を見ているとECSに対して否定的な意見が多く見られました。 内容から推察するに、おそらく前回記事が機能の説…

【Unity】 ECS まとめ(後編)

前編の続きです。 www.f-sp.com C# Job Systemとの連携 エンティティの並列列挙 IJobChunk ForEach ジョブとEntityManager ComponentDataFromEntity EntityCommandBufferSystem EntityCommandBuffer.Concurrent ビルトインのEntityCommandBufferSystem 共有…

【Unity】 ECS まとめ(前編)

前にUnityのECSについて調べて記事を書きましたが、 おそらく今後しばらく使うことはないと思われるので、 忘れないうちに現状のUnity ECSについてまとめておくことにします。 www.f-sp.com ……という動機で記事を書き始めたのですが、 なんやかんやで片っ端…

メモ:すべてのプログラマに推奨される読み物

AmethystのForumに Recommended Reading for Any Programmer というトピックが挙がっていてて、いつか読まないと/学ばないといけないなと思っていたものがまとまっていたのでメモ。 書籍 メイン The Pragmatic Programmer: From Journeyman to Master 和訳…

【Unity】 ネイティブプラグインのリロード

Unityにてネイティブプラグインのリロードに苦労したのでメモ。 Windowsを想定した記事ですが、おそらく各OSに対応したAPIを叩けば他のOSでも同様のことはできるはず。 基本的に次の記事の内容をやってみたよ、という記事です。 qiita.com 自力でやることに…

クトゥルフTRPG Webアプリ 移転しました

クトゥルフTRPGツールβ版のドメインとサーバを移転したのでそのお知らせです。 www.f-sp.com 移転先 coc.f-sp.com 機能自体は特に変更ありません。 移転の理由 ざっくりと言うと、もともと使っていたサーバが使いづらかったため変えました。 ドメインはその…

【Unity】 『ECSだけしかいない世界』の補足 - ForEach -

前回記事の公開後、Twitter上でForEachについて少し議論があったので、 前回雑に流したあたりについてもう少し詳しく書くことにします。 www.f-sp.com <19/04/17 更新> ECS preview.30対応のコードに更新。 <19/09/23 更新> インクリメンタルガベージコレク…

【Unity】 ECSだけしかいない世界

今更ながらUnityのECSについて学習したので、ECSで簡単なゲームを作ってみました。 巷ではECSが一種の高速化手法のように使われているサンプルが多いので、 ECSはアーキテクチャなんだぞ、ということを示すためにGameObjectとComponent禁止縛りで書くことに…

BabelによるTypeScriptの変換でハマる

クトゥルフTRPG ツールにてGooglebotのためにBabelを入れたので、 ついでにTypeScriptの変換もBabelに任せてしまおうと作業していたところ、 不可解な現象に悩まされたためメモ。 不可解な警告 Dexie.jsというIndexed DBのラッパーライブラリを用いて次のよ…

【Unity】 物理演算の基礎

Unityでアクションゲームを作る上で避けては通れないのが、 コライダー(Collider)やリジッドボディ(Rigidbody)といった物理演算コンポーネントの存在です。 特に物理的な挙動を再現したいわけではなくても、当たり判定に関する処理のためにはこれらが必要に…

クトゥルフTRPG Webアプリβ版の開発についてだらだらと

先日公開したクトゥルフTRPG Webアプリβ版の開発周りの話です。 アプリ紹介については過去記事を参照してください。 www.f-sp.com アプリ本体はこちら。 coc.f-sp.com はじめに アプリ開発の話、というと『こんな技術やあんな技術を組み合わせて素晴らしいシ…

クトゥルフTRPG Webアプリのβ版公開しました

クトゥルフ神話TRPGで遊ぶ際に必要なダイスロールやステータス管理をアシストするWebアプリのベータ版を公開しました。 Webアプリなのでブラウザでページを開くだけで使用できます。 また、インストールにも対応しているためモバイルアプリのようにも扱えま…

【JavaScript】`\0` ← ヌル文字 `\00` ← エラー

ヌル文字を表すと思っていた構文が実はヌル文字を表す構文じゃなかったという話。 コトのおこり 8進エスケープシーケンスとは? \0 はダメなのか? なぜ8進エスケープシーケンスはダメなのか? やはり \0 はダメなのか? 8進エスケープシーケンスの遺産 おわ…

【TypeScript】 Vuexもクラス形式で書きたい!!

vue-class-componentやvue-property-decorator、 vuex-classといったデコレータによるクラス形式のコンポーネント記述に感動したので、 Vuexもクラス形式で書けないかと仕組みを試作してみました。 ちなみにVuexの初心者も初心者、ほとんどドキュメントに目…

TypeScriptとVueのMixin

VueのMixinに関する(Webの世界では)一昔前の記事を読んでいて、 TypeScript 自体が Mixin 構文をサポートすればこのつらさもなくなるような気がしますが、 TypeScript 公式でこのめんどくさい Mixin のやり方を紹介しているので望みは薄いような気も……。 …

WebpackでTypeScriptのモジュール解決

TypeScriptのコンパイラオプションには baseUrl、paths、rootDirsといういくつかの特別なモジュール解決の設定があります。 しかし、これらはあくまでもTypeScriptコンパイラのための設定でWebpackやts-loaderはこれらを考慮してくれません。 そこで、Webpac…

【Webpack】 css-loader周りのSourceMap関連バグと戦う

css-loaderを使っていてSourceMapのパスが壊れるバグにハマったのでその際調べたことのまとめです。 長くなるのでタイトルに入れていませんが、 css-loader、 postcss-loader、 sass-loader辺りのバグです。 問題 原因 原因1:パスとURLの混同 原因2:相対…

SVGをCanvasに変換しようとして失敗した話

Electronでsvg要素を画像として保存したいと思い、Canvasに変換してからPNGとして保存しようと試みた結果、失敗したという話。 最終的に諦めたのでこの記事に解決策は書いてありません。 同じことをしたい人が時間を無駄にしないための記事です。 drawImage…

乱数生成の備忘録2

C#

他人が書いた乱数生成のコードを読んでいたところ、 前回自分が書いたものと違う実装をしていたので改めていろいろと調査。 www.f-sp.com 問題のコード 異なる実装となっていたのは整数の乱数から[0,1)の範囲の実数の乱数を生成するコード。 前回自分が書い…

乱数生成の備忘録

C#

以前書いた疑似乱数生成コードの修正作業をしたので、その際に調べたことや考えたことのメモ。 基本的に自分用なので雑。 動機と方針 System.Randomのアルゴリズムは古めで偏りがある。 Knuthの減算法。 再現性の問題があるので今後も変わることはなさそう。…

【Unity】 Rigidbodyの回転方法

Rigidbody(剛体)の移動方法については以前書きましたが、回転方法については書いていなかったので今更ながらまとめてみます。 まあ、移動方法とそんなに変わらないんですが・・・。 www.f-sp.com 準備 説明の簡略化のため、本記事内では下記の記号は特別な…