カテゴリー別アーカイブ: プログラミング

Skyrim のフォント変更ツールとサンプル

swf にフォントを埋め込むツール

フォントを埋め込んだサンプル SWF

fonts_ja.swf を Data\Interface にぶち込んでください.同フォルダの fontconfig.txt で参照するフォント名は skyrim_every です.

loading screen strings demoperks strings demo

rusutaku が使っている fontconfig.txt は以下の通りです.英語版を日本語化したものが元になっています.詳しくは おばちゃんのスカイリムガイドSkyrim フォント変更覚え書きSkyrim Wiki JP FAQ/日本語化 参照.
[sourcecode]fontlib “Interface\fonts_console.swf”
fontlib “Interface\fonts_jp.swf”
fontlib “Interface\fonts_ja.swf”
map “$ConsoleFont” = “Arial” Normal
map “$StartMenuFont” = “skyrim_every” Normal
map “$DialogueFont” = “skyrim_every” Normal
map “$EverywhereFont” = “skyrim_every” Normal
map “$EverywhereBoldFont” = “skyrim_every” Normal
map “$EverywhereMediumFont” = “skyrim_every” Normal
map “$DragonFont” = “Dragon_script” Normal
map “$SkyrimBooks” = “Skyrim_JP_BookFont” Normal
map “$HandwrittenFont” = “Skyrim_JP_HandWriteFont” Normal
map “$HandwrittenBold” = “Skyrim_JP_HandWriteFont” Normal
map “$FalmerFont” = “Falmer” Normal
map “$DwemerFont” = “Dwemer” Normal
map “$DaedricFont” = “Daedric” Normal
map “$MageScriptFont” = “Mage Script” Normal
map “$SkyrimSymbolsFont” = “SkyrimSymbols” Normal
map “$SkyrimBooks_UnreadableFont” = “SkyrimBooks_Unreadable” Normal
map “$CreditsFont” = “Futura Condensed” Normal
validNameChars ” `1234567890-=!@#$^&():_+QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./qwertyuiop{}asdfghjkl;zxcvbnm?|”[/sourcecode]

とろろのろとろのなんたらかんたら

前に貼った作りかけのコードが今こうなっている.

Rails を使ってみた. http://tororo-fmk.heroku.com/

# coding: UTF-8

class LotroChatdef
  @str = ''
  def make_filter(type, name = '')
    to = ''
    from = ''
    type_s = what_type?(type)
    if type_s == 'User' then
      return false if name == ''
      to   = to_channel(name, true)
      from = from_channel(name, true)
    elsif type_s == 'Tell' then
      to   = to_person
      from = from_person
    elsif type_s != false then
      to   = to_channel(type_s, false)
      from = from_channel(type_s, false)
    else
      return false
    end
    @str = to + "\n" + from
    return @str
  end
  def what_type?(type)
    if    /^u/i =~ type then
      return 'User'
    elsif /^te/i =~ type then
      return 'Tell'
    elsif /^f/i =~ type then
      return 'Fellowship'
    elsif /^k/i =~ type then
      return 'Kinship'
    elsif /^ra/i =~ type then
      return 'Raid'
    elsif /^g/i =~ type then
      return 'Group'
    elsif /^tr/i =~ type then
      return 'Tribe'
    else
      return false
    end
  end
  def get_filter
    return @str
  end
  def to_channel(channel_name, ignore_casing)
    tmp = "/^\\[To #{channel_name}\\] /"
    tmp += 'i' if ignore_casing == true
    tmp += "\t"
    return tmp
  end
  def to_person
    return "/^You tell (.+?), /\t"
  end
  def from_channel(channel_name, ignore_casing)
    tmp = "/^\\[#{channel_name}\\] (.+?): /"
    tmp += 'i' if ignore_casing == true
    tmp += "\t"
    return tmp
  end
  def from_person
    return "/^(.+?) tells you, /\t"
  end
end

cmd から Console2 を起動し,cmd を蹴る

Windows の cmd.exe がいい加減腹立たしいので,Console2 を使ってみようと思ったが,cmd.exe を直接呼び出す機能を多用しているので,cmd.exe を起動と同時に Console2 を起動させたいところだ.そして以下のページに巡り会った.

レジストリを書き換えて cmd.exe 起動時に自動的にバッチファイルを実行させる.しかし,しっかりと制御しないと無数のウィンドウが君を出迎えることになる.

以下のバッチで,Console2 が起動し cmd.exe は自動的に閉じる.

が,よく考えたら他のプログラムから cmd.exe が呼び出された場合の動作がおかしくなるなあ.

@echo off
rem バッチのERRORLEVELが -1 の場合は二重起動でエラー
set RC=-1
call :main 0>>"%~dpnx0"
if %RC% equ 0 (
exit %RC%
) else (
exit /b %RC%
)
:main
start [Console2 のある場所]\Console.exe %1
set RC=0

とろろのろとろ用フィルター生成ツールを作ろうかと思っている

ホワイトリストをお手軽に作るためのツール.Web で動作するようにしたいと思います.なんとなく作りかけのコードを貼り付けておきます.

# coding: UTF-8

class LotROChatDef
  def to_channel(channel_name, ignore_casing = true)
    tmp = "/^\\[To #{channel_name}\\] /"
    tmp += 'i' if ignore_casing == true
    return tmp
  end
  def to_fellowship
    return to_channel('Fellowship', false)
  end
  def to_kinship
    return to_channel('Kinship', false)
  end
  def to_person
    return '/^You tell (.+?), /'
  end
  def from_channel(channel_name, ignore_casing = true)
    tmp = "/^\\[#{channel_name}\\] (.+?): /"
    tmp += 'i' if ignore_casing == true
    return tmp
  end
  def from_fellowship
    return from_channel('Fellowship', false)
  end
  def from_kinship
    return from_channel('Kinship', false)
  end
  def from_person
    return '/^(.+?) tells you, /'
  end
end

とろろδ3

とろろ delta3 の出番です.変更内容はほぼバグの修正です.

tororo-delta3
  • 変換後に別のログを変換させると,キャラクタ名色の位置が間違った位置に出るバグを修正
  • 大文字で始まる単語を変換しないオプション機能を追加.デフォルトでオン.
  • ローマ字文字列が区切り文字を挟んでいると,日本語と判定されないバグの修正
  • メインウィンドウを最小化したままプログラムを終了させると,次回起動時にウィンドウが表示されなくなる(位置情報が狂う)バグの修正
  • 設定ウィンドウの最小化と最大化ボタンを削除

とろろにゅうでるたぞーん

ろくにテストしてませんが,不備な点を修正しました.

  • スクロールずれ直し
  • 随時最新行にスクロールするかしないか選択可能に
  • キャラクタ名に色をつける機能実装
  • ミニモード使うか使わないかの設定を保存するように
  • OKと適用ボタンで即再読込するように
  • ハイライト機能の実装は後回し
  • とろろアイコンを「釣りぴょん」に

.NET Framework 4.0 が必要になると思われます.

なにかありましたらコメントをどうぞ.