ヘッダーのリザーブ

2016年1月25日月曜日

Fallout 4 のフォントを変更しよう

Fallout4 日本語版における5つもの問題
  1. フォントがダサい
    理由: FO4ローカライズチームのフォント選定センスがだめすぎるから
  2. 字が上にズレてる
    理由: 日本語版フォントの Ascent と Descent が大きい、もしくは小さいから
  3. $MAIN_Font_Bold の字が変に太い
    理由: わかりません :3 フォントに何かされているのは確かです フォントを変えればそれだけで直ります
  4. 字幕が左揃えだ
    理由: HUDMenu.swf に細工がしてあるから
  5. ワークショップのメニューで Perk 要求のテキストがはみ出てる
    理由: Workshop.swf に細工がしてないから
Commonwealthで快適な生活を送るためにこれらの問題をなんとかしましょう!

完成品をお望みの方は Noto Sans と MigMix で作ったフォントも置いておきますからそれを持って行ってください。というかここに書いてある情報はFallout4の更新に追いついてなかったりもっと効率的な方法があったりと古いまま整備されてないのであまり頼りにしないで完成品を使ってください🐢
→ 別記事 : Fallout 4 用の代替日本語フォント

長いので区切ります。


ではまずダサいフォントの話から。

ダサい!

もうロアフレンドリーとかそんなこと言ってられないレベル。中華フォントと日本語フォントのはざまに囚われたみたいな変なフォントです。
なんですかこれ? 游ゴシックがまだましに見えるレベル。Skyrimのときは良くも悪くも普通だったのに。
追記: 調べてたら視覚デザイン研究所のV7ゴシックだという話が見つかりました でもわざわざこんなの使うくらいなら能登でいいでしょ?


視覚デザイン研究所|デジタルフォント|書体見本|V7ゴシック - http://www.vdl.co.jp/font/v7go.html

早急にフォントを変えねばなりませんがSkyrimと同じやり方だとうまくいきません。
新しくフォントが埋め込まれたswfを用意してfontconfig.txtにfontlibで追加するところまでは問題無いですがもともと設定されているフォントからはmapをどれだけ書き換えても変わりません 
なんでだ?

ここに書いてある話を実践するつもりがあるならMODを使えるようにしておいてね
(My Documents\My Games\Fallout4\Fallout4Custom.ini の [Archive] セクションが下のようになるように書いてね)
[Archive]
bInvalidateOlderFiles=1
sResourceDataDirsFinal=



fontconfig.txt でフォントを指定できるようにする 


fontconfig.txt が言うことを聞かない理由はわからないままですがこのfontconfig野郎を従わせる方法があります。
それさえできればあとはSkyrimのフォントの変え方がそのまま使えるってもん。
  1. B.A.E. などの .ba2 が展開できるツールで Fallout4 - Interface.ba2 から fonts_en.swf をひっぱり出す
  2. FontConfig.txt もひっぱり出す
  3. JPEXS Free Flash Decompiler で fonts_en.swf を開く
  4. Resource View から fonts を開いて入れ替えたいフォントを選ぶ(大抵の場合全部入れ替えたいと思うはず)
  5. 右クリックして Remove with dependencies する
  6. Yes する
  7. できあがり! 他にも入れ替えたいフォントがあれば 3. にもどる
  8. リボンから Save を押して保存する(removeした時点で保存されてるけど念のため)
  9. できあがった fonts_en.swf と FontConfig.txt を Fallout 4\Data\Interface に置く
  10. おわり

だいたいの説明

おもむろにフォントを fonts_en.swf から消し去ることにより路頭に迷った Fallout 4 は仕方なく(?) fontconfig.txt で指定されているフォントを読み行くようです。なんでだ?
ここまでやればあとは自分で作ったフォントなり、Skyrim用にリリースされたフォントを同じ方法でそのまま使えます。

一応それぞれのフォントの説明(かっこ内は英語版でのフォント名):
  1. V7極太明朝P(Handwritten_Institute): $HandwrittenFontで指定されます。主にメモに使われています。手書きでここまでの明朝体を書ける人はそういないと思いますが。
  2. Controller  Buttons inverted(Controller  Buttons inverted): $Controller_Buttons_invertedで指定されます。コントローラーのボタンのフォントです。消さないほうがいいです。
    Skyrimのときボタンのアイコンはshape(かな?)で作ってたみたいですけど今回はフォントとして入れたんですね。
  3. Controller  Buttons(Controller  Buttons): $Controller_Buttonsで指定されます。上に同じ。中が塗りつぶされているバージョン。
  4. fo4_jp_term Regular(Share-TechMono): $Terminal_Fontで指定されます。ターミナルとPip-boy起動時の画面(pipboybootsequence.swf)で使われています。
  5. fo4_jp_mainbold Regular(Roboto Condensed(Bold)): $MAIN_Font_Boldで指定されます。いたるところで使われています。下の fo4_jp_main より太いです。BoldなのにRegularとはこれいかに。
  6. fo4_jp_main Regular(Roboto Condensed(Normal)): $MAIN_Fontで指定されます。いたるところで使われています。上の fo4_jp_mainbold より細いです。
  7. fo4_jp_brody Regular(Brody): $BRODYで指定されます。ワークショップの必要Perk表示で使われています。日本語の部分はV7極太明朝Pと同じです。
    ひらがなとカタカナ全部が入っていますがその中で実際に使われる機会があるのは「ク」「ラ」「ン」の3文字です。
  8. (Arial): $ConsoleFontで指定されます。コンソールで使われています。日本語版の fonts_en.swf には入っていませんが、fonts_console.swf にも入っているので表示されます。日本語はお豆腐になりますが。

武器改造画面でのフォント指定 (ExamineMenu.swf)
読み物画面でのフォント指定 (Book.swf)
ターミナルでのフォント指定 (TerminalMenu.swf, TerminalButtons.swf)



フォントを swf に埋め込み、Fallout4で使う


Fallout 4 で使えるのはswfに埋め込まれたフォントだけです。
まあ埋め込めればAdobe Flashでも方法はなんでもいいんだけど手軽なやつで…

rusutaku/skyrim-font-embedder · GitHub

Skyrim用に作られた skyrim-font-embedder というのがあるのでこれを使ってくだし、使い方はreadmeに書いてあるし!
Flashdevelopインストールしてソースを思うように書き換えて実行するだけ!
で、うまくいって fonts_ja.swf が出てきたらそれを Fallout 4\Data\Interface に置きます。都合に応じてファイル名は変えるべきだと思います。

例としてふい字Pを $HandwrittenFont に指定してみます。

できあがったふい字Pが埋め込まれた fonts_hui.swf

このswfファイルにはふい字Pが"Hui"という名前で埋め込まれています。
fonts_hui.swf を Fallout 4\Data\Interface に置いたら、FontConfig.txt には次のように書きます…
fontlib "Interface\fonts_en.swf"
fontlib "Interface\fonts_console.swf"
fontlib "Interface\fonts_hui.swf"
map "$HandwrittenFont" = "Hui" Normal
map "$MAIN_Font" = "Roboto Condensed" Normal
map "$MAIN_Font_Bold" = "Roboto Condensed" Bold
map "$Terminal_Font" = "Share-TechMono" Normal
map "$Controller_Buttons" = "Controller  Buttons" Normal
map "$Controller_Buttons_inverted" = "Controller  Buttons inverted" Normal
map "$ConsoleFont" = "Arial" Normal
map "$DebugTextFont" = "Consolas" Normal
map "$BRODY" = "Brody" Bold
validNameChars "`1234567890-=~!@#$%^&*():_+QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./qwertyuiop{}asdfghjkl;'zxcvbnm"
validBookChars "`1234567890-=~!@#$%^&*():_+QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./qwertyuiop{}asdfghjkl;'zxcvbnm"
fontlib "Interface\fonts_hui.swf" を書き加えて、
map "$HandwrittenFont" = "Handwritten_Institute" Normal の Handwritten_Institute を Hui に書き換えました。
fontconfig.txt の書き方は Skyrim のそれと同じなので、特に特殊なことはありません。
でこれで起動するとこんな感じ


おめでとうございます!フォントが変わりました。



字がちょっと上にズレてる


「ひと目で、尋常でないズレだと見抜いたよ」
右が日本語版デフォルト 左が理想(英語版)です

画面下によく表示されてる操作説明
HUDの弾薬数表示

こんなにズレてて許してもらえると思ってたんでしょうか?
上のほうでも書きましたがこれはフォントの ascent と descent が大きい、もしくは小さいからズレてます。
ascent というのはベースラインを基準にしたフォントの高さで、descent はそれに対し深さを表しています。(ちなみに leading は行間みたいなもの)

Fallout 4 では Roboto フォントの ascent と descent しか考慮してないのでそれ以外の数字だとこのようにズレが生じるわけです(たぶん)
でもわざわざあのダサいやつとRobotoを合成したフォントを使ってるんだから ascent と descentもそっちに合わせるべきだと思うんですよね…

ffDecで見た図 日本語版フォントのほうが小さい
でこれを直すにはそれぞれを Roboto のほうに合わせないといけないわけです。

追記: もっといい方法がありました swfに埋め込む前に目的のフォントをFontforgeで開いて ascent と descent を合わせて Roboto に合わせるという方法です。
  1. Fontforgeでフォントを開く 
  2. メニューバーから エレメント→フォント情報→一般情報 でアセントとディセントをあわせる そして一旦OKする)
  3. 念の為に一般情報をもう一度開き、下線の位置と高さをあわせる
  4. 加えた変更をフォントに保存するときは、メニューバーから ファイル→フォントを出力(G)... を選びます 形式をTruetypeにするのを忘れずに エラーが出ても無視しろ
参考までにRobotoの ascent と descent の数値はこんな感じです 高さ:1536 深さ:512 下線:-100 Height:100
この辺は目的のフォントの 一般情報 を見てそこに書いてある数値に合わせてみてください
詳しく書くとFontforge講座になって面倒くさいので今は省きます。

以下は古い方法が書かれていますが一応残しておきます 見たかったらボタンを押してください。


FFdecのRaw editでそれぞれ変えることができますが…漢字がいっぱい入ってるフォントだと読み込み/書き込みに時間がかかります。
なので…ズレが気になる部分に使われるフォント($MAIN_Font_Bold)はひらがなとカタカナと記号だけ埋め込んでから ascent と descent を合わせて、その後漢字を埋め込むといいと思います。
  1. FlashDevelopを起動して skyrim-font-embedder の Main.as を開く
  2. Embed タグの部分に次のように書きます(基本的な記号とアルファベット(全角含む)、ひらがなとカタカナだけ埋め込むようになってます)
    [Embed(source = '../asset/fonts/お望みのフォントファイル', fontName = 'お望みのフォント名', embedAsCFF = 'false', unicodeRange='U+0020-U+007E,U+2015,U+2018,U+2019,U+201C,U+201D,U+2020,U+2021,U+2025,U+2026,U+203B,U+3000-U+301B,U+3041-U+3096,U+3099-U+30FE,U+FF01-U+FF5E', mimeType = 'application/x-font')]
  3. 動かします(ツールバーの「プロジェクトをテスト」を押すかF5キーを押す)
  4. できたフォントをFFdecで開きます
  5. Resource View から fonts を開いてフォントを選ぶ
  6. 右クリックして Raw edit
  7. 右ペインが Raw edit モードになるので下の Edit ボタンを押す
  8. fontAscent:UI16 を 19460 に書き換える
  9. fontDescent:UI16 を 5120 に書き換える
  10. Save ボタンを押す
  11. Raw edit から抜ける( Resource View からフォントを選びなおす)
  12. 右の Parameters ペインにある Embed... ボタンを押す
  13. Installed もしくは TTF file からお望みのフォントを選ぶ
  14. Japanese Kanji - Level 1 にチェックを入れる
  15. Individual characters にJIS第2水準漢字を入れる(確信はないけど第2水準まで入れておけばFallout4で出てくる全ての漢字をカバーできるはず)
    JIS第2水準漢字のすべて
    弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙
  16. OKする
  17. なんか聞かれたら No to all する(これから埋め込もうとしてる文字がすでにあるのでそれらをどうするか聞いている)
  18. リボンから Save を押して保存する
  19. できあがったフォントを Fallout 4\Data\Interface に置く
  20. fontconfig.txt にそれらしく書き込む
  21. おわり
(補足) skyrim-font-embedder で先にひらがなとカタカナと記号だけ埋め込んだ理由: FFdecでフォント埋め込みを行うと全部の文字を等幅で埋め込むので記号とかを埋める際に空白ができるから
FlashdevelopでAS3のembedを使うと幅はきちんとしてくれます。

上がAS3のembed 下がFFdecのembed 引用符に空白ができている

まあ時間がかかってもいいならFFdecで目的のフォントでRaw edit開いて ascent と descent を変えて保存すればいいと思います。そんな何時間も待たされるわけじゃないですし。
フォントのサイズにもよると思いますが普通なら一つの動作に2-3分くらい。(Raw edit開くのに2-3分、Ascent変えるのに2-3分…)


もっといい方法があれば誰か教えてちょ。


なんで字幕を左揃えにしたんだ?


本来(英語版)なら字幕は中央揃えで表示されますが、日本語版の HUDMenu.swf は英語版のものと違って字幕が左揃えで表示されるようになっています。なんでだ?


手っ取り早い解決策としては英語版の HUDMenu.swf を引きちぎってきて \Interface に置けば解決します。
ですがそうすると今度はレベルアップ時にXPゲージ上に表示される「レベルアップ!」がはみ出ます。解決になってねえ。
なので日本語版 HUDMenu.swf の字幕部分を直して使うか、英語版 HUDMenu.swf のレベルアップテキスト部分を直して使うか(もしくはstringsを編集して「レベルアップ!」を"LEVEL UP!"に書き換えるという手もある)の2択です。
ここでは前者のほうで書きます。
  1. B.A.E. などの .ba2 が展開できるツールで Fallout4 - Interface.ba2 から HUDMenu.swf をひっぱり出す
  2. JPEXS Free Flash Decompiler でそれを開く
  3. Resource View から texts を開いて DefineEditText (407) を選ぶ(ここは字幕のセリフの部分)
  4. 右クリックして Raw edit
  5. 右ペインが Raw edit モードになるので下の Edit ボタンを押す
  6. initialText の中身を消して下のを貼り付ける(英語版の同じ部分そのまま)
    <p align="center"><font size="21" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>I&apos;m sorry, but Mayor McDonough&apos;s really steamed, Piper. Sayin&apos; that article you wrote was all lies. &nbsp;The whole city&apos;s in a tizzy.</b></font></p><p align="center"><font size="21" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>line 3</b></font></p><p align="center"><font size="21" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>line 4</b></font></p><p align="center"><font size="21" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>lowercase letters jpqyg;</b></font></p>
  7. variableName の中身を消して "(" と入力する("d"以外ならなんでもいいと思われるけど他のDefineEditTextではそうなってるのでそうする)
  8. Save ボタンを押す
  9. Resource View からすぐ下の DefineEditText (408) を選ぶ(ここは字幕の発言者の名前の部分)
  10. 右クリックして Raw edit 、右ペインが Raw edit モードになるので下の Edit ボタンを押す
  11. leftMargin を 767 に書き換える(英語版の同じ部分そのまま)
  12. Save ボタンを押す
  13. リボンから Save を押して保存する
  14. できあがった HUDMenu.swf を Fallout 4\Data\Interface に置く
  15. おわり

フォントによってはけっこう行間が開くようになるかもしれません。leading を調整して対処しましょう。

メモ: レベルアップ!のテキストはTextの314番(1.3以前)、もしくは317番(1.4)、もしくは445番(1.5) 



はみ出てない?


ワークショップでPerk要求があるものに表示されるウィンドウですが…
右がデフォルト(英語版と同じ)で、左が修正後


すごく軽微な不具合だけど不具合は不具合だ、このままリリースするなんてぜにあじはどうかしてるよ。
requiresなPerkがあることはわかりますがこれではランクいくつが必要なのかがわかりません。
これは英語版と同じ Workshop.swf が使われていることが原因です。
英語だと "Req: Rank 2" なのでそれほど幅を取りませんが日本語だと「必要条件: ランク 2」なのでけっこうな幅になって途切れます。
まだあの錠前のアイコンまで余裕な余白があるのにあそこで切れるようにしてるべせすだのほうが悪い気もする。
Workshop.swf を編集して余白を開ける事もできますが一番早い対処法は、Translate_ja.txt の "$Req:"の部分を適当に短く書き換えることです。("Req: ランク"とかでいいと思う)
せっかく書いたのでswfをいじる方のやり方で書いときます…
  1. B.A.E. などの .ba2 が展開できるツールで Fallout4 - Interface.ba2 から Workshop.swf をひっぱり出す
  2. JPEXS Free Flash Decompiler でそれを開く
  3. Resource View から texts を開いて DefineEditText (91) を選ぶ
  4. 右クリックして Raw edit
  5. 右ペインが Raw edit モードになるので下の Edit ボタンを押す
  6. bounds を展開して Xmax:SB[nbits] を "2215" に書き換える
  7. Save ボタンを押す
  8. リボンから Save を押して保存する
  9. できあがった Workshop.swf を Fallout 4\Data\Interface に置く
  10. おわり
Workshop.swf は Fallout4 バージョン 1.2 のものと1.3 のものでは互換性がないので気をつけてください!(違うバージョンで使うとワークショップを開いたときにCTDします)




fontconfig.txt の怪


Fallout 4 でも TESV: Skyrim と同様に fontconfig.txt でフォントが指定されていますがもともと書かれている指定についてはどれだけ書き換えてもゲーム内にそれが反映されることがないようです。
そもそも日本語版の fonts_en.swf ではメインのフォントが fo4_jp_main Regular という名前になっているのに fontconfig.txt では
map "$MAIN_Font" = "Roboto Condensed" Normal
と書かれていてそれにもかかわらずちゃんとフォントが表示されているという時点でもうすでにおかしいです。(map "$MAIN_Font" = "fo4_jp_main Regular" Normal と書かれるべきだと思う)
どこでフォントを指定しているんでしょうか? 私にはわかりません…
まあ一番最初に書いたとおり、Fonts_en.swfからフォントを消せば言うことを聞いてくれます。



おまけ: HUDのフォントを変えよう


FFdec で任意の DefineEditText を Raw edit で開いて fontclass パラメータに新しい変数名で書き換えてそれにしたがって fontconfig.txt で指定すれば、そこのフォントはその指定に従います。

DefineEditText(444) は HUD の予備弾薬数です ここでは $HUDFontB としました
fontconfig.txt の例
こうなる(実際には予備弾薬数以外のところの fontclass も書き換えました)

HUDのみならず、どこか特定の場所のみフォントを変えたいという思いがあればこの方法はどこにも使えるそうです。

---
参考にしたもの:
Fallout4 PC Vault55 [転載禁止]©2ch.net - http://anago.2ch.net/test/read.cgi/game/1447391026/39
fontconfig.txtについて | おばちゃんのスカイリムガイド - http://obachanskyrim.blogspot.jp/2012/08/skyrimfont.html
みふさんはTwitterを使っています: "Fallout4セリフ字幕フォント差し替えMODアップロードしました https://t.co/97Hfl4wvpk https://t.co/OJGOIsKzmE" - https://twitter.com/MiF21C/status/679482597458616320
Fallout4 セリフ字幕フォント変更MOD | 315-Steel Battalion - http://prf315sb.wp.xdomain.jp/2016/01/16/fo4_subtitlemod/
How to make a custom UI by editing HUDMenu.swf at Fallout 4 Nexus - Mods and community - http://www.nexusmods.com/fallout4/mods/2300/
rusutaku/skyrim-font-embedder · GitHub - https://github.com/rusutaku/skyrim-font-embedder
フォントとテキスト/動的テキストタグ - Flash SWF Spec -  http://hkpr.info/flash/swf/index.php?%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%81%A8%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%2F%E5%8B%95%E7%9A%84%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%BF%E3%82%B0
AS3 で埋め込みフォントを使うテクニック - てっく煮ブログ - http://tech.nitoyon.com/ja/blog/2008/07/23/as3-embed-font/

0 件のコメント :

コメントを投稿