はじめに
日本語で書き出されたファイルを持たされて困ったことはありませんか?
僕はあります
何がいけないの
・2バイト文字でファイル名を保存するとfacerigにうまく読み込めない(もしかしたらSDK自体かも)
ここまでにしたこと
・ファイル名の変更(「モデル3.moc3」→「model.moc3」)
・フォルダ名の変更(「モデル3」→「model」)
・facerigようにセットアップ(「モデル3」→「model」)
STACK DUMP saved in
D:\games\SteamLibrary\steamapps\common\FaceRig\Bin\FaceRig_stack_2020-06-04_13-23-48.dmp
EXCEPTION: Access violation while 'writting to' address 0x8 at address 0x173ab8b
SegGs=0x2b SegFs=0x53 SegEs=0x2b SegDs=0x2b
Edi=0x2 Esi=0x10 Ebx=0x16a45ca0
Edx=0x6ff568 Ecx=0xff900ac0 Eax=0x7f800000
Ebp=0x6ff4e8 Eip=0x173ab8b SegCs=0x23
EFlags=0x210287 Esp=0x6ff4e0 SegSs=0x2b
Dr0=0x0 Dr1=0x0 Dr2=0x0
Dr3=0x0 Dr7=0x0 Dr7=0x0
SymInit: Symbol-SearchPath: 'D:\GAMES\STEAMLIBRARY\STEAMAPPS\COMMON\FACERIG\BIN\;.;D:\games\SteamLibrary\steamapps\common\FaceRig;D:\games\SteamLibrary\steamapps\common\FaceRig\Bin;C:\Windows;C:\Windows\system32;', symOptions: 210, UserName: 'user'
DbgHelpPath: 'C:\Windows\SYSTEM32\DbgHelp.dll'
DbgHelpVersion: '6.2.0'
OS-Version: 6.2.9200 () 0x100-0x1
---CallStack---
0173AB8B (FaceRig): (filename not available): (function-name not available)
0173B0D7 (FaceRig): (filename not available): (function-name not available)
00F6B7C9 (FaceRig): (filename not available): (function-name not available)
0106765D (FaceRig): (filename not available): (function-name not available)
00F4C7B3 (FaceRig): (filename not available): (function-name not available)
00F54320 (FaceRig): (filename not available): (function-name not available)
00FB69CC (FaceRig): (filename not available): (function-name not available)
00F3E59D (FaceRig): (filename not available): (function-name not available)
010C9B62 (FaceRig): (filename not available): (function-name not available)
74DF6359 (KERNEL32): (filename not available): BaseThreadInitThunk
77477C24 (ntdll): (filename not available): RtlGetAppContainerNamedObjectPath
77477BF4 (ntdll): (filename not available): RtlGetAppContainerNamedObjectPath
調べる
facerigでモデルを使おうとするとエラーが出て使えないです
↓
FaceRigでLive2Dモデルを使えるようにす
↓
ほーん
・キャラ名でフォルダを作り、そこに各ファイルを入れます
これがそのままFacerigでのフォルダ名になりますので他の人と重複しない名前が良いです
日本語や記号は使わず半角英文字だけが良いです、(半角英文字、半角数字、_、使用が良い)
キャラ名はフォルダ名、モデルファイル名、cfgファイル設定内文字などすべて同じにします
後から変更せずに書き出しの時から同じにします
理由は、書き出しの時の名前がファイル内部に記録され、
それを元に画像ファイルなどの場所を参照しているからです
後から名前を変えると参照先に何も無く、真っ黒で表示とかになります
↓
積んだ\(^o^)/
仮設
moc3ファイルにファイル名が入っているなら直接変更すればいいのでは?
結論
無理
自分にはバイナリ読むことはできなかったよ
でも、もしmoc3にファイル名が書かれているのなら場所さえわかれば変えれるのでは?
検証
ファイル名の違うmoc3ファイルを書き出して文字列の違いを探す
仮設2
もしかしてファイル名は別の場所に書かれている?
検証
正解
model3.json
にファイル名とテクスチャパスが書かれていた
変更して再度読み込み直したらエラーも出ずにしっかり表示できた
※画像はイメージです
結果
ファイル名を変更したいときはファイル名の変更とmodel3.json
のパス変更をすれば再度使えるようになる
追記
Twitterでなぜこのような記事がないか聞いたところ
誤記や修正残しをした場合発見することが難しいためこのような記事がない(提案しない)そう
ということで、基本的には再度書き出ししなおして欲しい
もしも、moc3とその周辺ファイルしか持ってない場合の最終手段として活用してください