お知らせ

 

ロックマンエグゼ合宿

ロックマンエグゼシリーズを振り返るゲーム合宿をまったり進行中です。最終回となる第6回のタイミングを検討中。過去分については特集を参照。

11月 052017
 

私のブログで閲覧数の多い記事の中には、下記の動画エンコード関連のものがあります。

書いてから随分時間が経ってますが、なんやかんや有用らしい。

ただ、流石にちょっと古いので、周辺情報を整理してみます。私も暫くゲームのキャプチャとかやってなかったんで、改めて調べ直してみました。が、なんか思ったより沼にハマった気がします。色空間まわりはかなり自信がないので、詳しい人からツッコミあると嬉しいな。

キャプボは使える前提で話を進めます。エンコードなどの基本的な概念については、「高画質動画エンコード設定」で簡単に説明しています。

Continue reading »

10月 142017
 

タイトルの通り、キャメルケースの分割(split)をします。実装はC#。

正規表現で頑張る方法もあるようですが、ちょっとややこしいのとパフォーマンス的に嬉しくないことは容易に想像できるので、愚直な方法で実装します。

厳密なキャメルケースであれば、IDのような単語は、idやIdとなると思いますが、そのままIDと書くこともあるため、そのパターンにも対応します。スネークケースとの混用も対応します。先頭と末尾のアンダースコアは無視します。

例えば、_abcFOOBar123_456hoge__HOGE_ならばabcFOOBar123456hogeHOGEに分割します。

Continue reading »

10月 132017
 

(2017/11/20 「参照としてのスライス」節を追加、Span構造体について言及)

スライス(slice)とは、列(sequence)から部分列(subsequence)を取り出す操作のことを呼ぶもの、とここでは定義しておきます。

スライスは色んな言語に実装されている機能で、特に文字列(string)から部分文字列(substring)を得る機能を実装している言語は多いでしょう。文字列に限定しないときスライスという言葉が用いられている気がします。どこ由来なのか知らないため定義もわかりません。

C#にもそれっぽい機能はありますが、ちょっと使いにくいので、Pythonのスライスに近い機能を実装してみます。

Continue reading »

10月 082017
 

(2018/03/11 ルールにroot追加)

前回、プレイリストファイル(m3u/m3u8)を自動生成するPythonスクリプトを書いたんですが、やっぱりもう少し機能が欲しかったので拡張しました。

そこそこ複雑になってきたので、使う人が他にいるのかは知らぬ。

Continue reading »

10月 032017
 

(2017/10/08 機能拡張版を書きました)

Pythonスクリプトによってプレイリストファイル(m3u/m3u8)を自動生成する話です。自分がすぐに使えるよう、Pythonと正規表現でサクッと作りましたが、そういった技術的要素が理解できないと利用は厳しいことは先に言っておきます。

Continue reading »

9月 052017
 

出現確率が一様な抽選は、インデックスを一様乱数で求めればいいので実装が簡単です。

public static T sample<T>(T[] values)
{
    return values[UnityEngine.Random.Range(0, values.Length)];
}
public static T sample<T>(List<T> values)
{
    return values[UnityEngine.Random.Range(0, values.Count)];
}

ちなみに、この抽選は引いたくじを除外せずに次回も有効となる独立試行です。このような抽選を復元抽出と呼ぶそうです。

各要素の出現確率(重み)を設定して復元抽出したいとき、上の手法ではうまくいかないので、ひと工夫する必要があります。例えば、レア度によって出現確率の異なるガチャを実装したいといったケースですね。

以下、Unity向けに実装しますが、乱数取得部分を変えればUnity以外でも使えます。

Continue reading »

Top