mmd-for-unity-proj / mmd-for-unity

MikuMikuDance for Unity
BSD 3-Clause "New" or "Revised" License
415 stars 83 forks source link

材質・剛体にファイル名として使用出来無い文字が含まれていると変換に失敗する不具合の修正 #10

Closed eral closed 11 years ago

eral commented 11 years ago

概要

材質・剛体にファイル名として使用出来無い文字が含まれていると変換に失敗する不具合を修正しました。

詳細

修正内容

材質名・剛体名を元にファイル名が生成される箇所に於いてWindowsのファイル名として使用出来無い下記9種類が含まれる事に為ったら全角にエスケープする様にしました。     \/:*?"<>| また、もし改行が含まれていた場合には除去する様にしています。

問題点

Mac側だと9種類もエスケープしなくて良いと思いますが、 UnityEditorがMac上で動いている事を入手する手段が分からなかったので、取り敢えず区別していません。

テストモデル

作者名 式 モデル名 (バージョン) 結果 備考
化身バレッタ式セルシアナ(Ver4.8) 今回の変更に依り正常化
まれよん式初音ミク(ver1.3.9h) 今回の変更に依り正常化
あにまさ式初音ミク(MMD Ver.8.03(x64)付属) 以前から正常、変更に依る不具合は見られない
Lat式ミク(Ver2.3) 以前から正常、変更に依る不具合は見られない
Tda式初音ミク・アペンド(Ver1.00) 以前から正常、変更に依る不具合は見られない
GRGSIBERIA commented 11 years ago

リクエストありがとうございます. 以前,Lat式ミクでも同様のことが起こりまして,かなり頭を悩ませた記憶があります. 利用できない文字が使用されることはまだしも,改行が入る理由がわからないのがつらいですね…….

eral commented 11 years ago

あ、Closedに為ってもコメントは書き込めるのですね。 てっきり書き込めないものだと思っていました。

改行ですが、最新のPMXエディタ(0.2.1.9)・PMDエディタ(0.1.3.9)で、 LF改行の含んだコードをコピペすれば入りました。 CRLF改行とCR改行だと弾かれたので一応は改行チェックしてる様なのですが、 LF改行が考慮されていなかった様です。

Windows環境でLF改行テキストをクリップボードに入れるの結構難しいと思うんですけどね。

GRGSIBERIA commented 11 years ago

$B$"$"!$$J$k$[$I!%$=$&$$$&;v>p$,$"$C$?$s$G$9$M!D!D!%(B $B$H$9$k$H!$%!<%sL>$NN.$79~$_Ey$,860x$G$9$+$M!)(B $BK\2H$N$[$&$GBP1~$G$-$k$HBgJQ4r$7$$$N$G$9$,!%(B

2013$BG/(B9$B7n(B12$BF|(B 20:38 eral notifications@github.com:

$B$"!"(BClosed$B$K0Y$C$F$b%3%a%s%H$O=q$-9~$a$k$N$G$9$M!#(B $B$F$C$-$j=q$-9~$a$J$$$b$N$@$H;W$C$F$$$^$7$?!#(B

$B2~9T$G$9$,!":G?7$N(BPMX$B%(%G%#%?(B(0.2.1.9)$B!&(BPMD$B%(%G%#%?(B(0.1.3.9)$B$G!"(B LF$B2~9T$N4^$s$@%3!<%I$r%3%T%Z$9$l$PF~$j$^$7$?!#(B CRLF$B2~9T$H(BCR$B2~9T$@$HCF$+$l$?$N$G0l1~$O2~9T%A%'%C%/$7$F$kMM$J$N$G$9$,!"(B LF$B2~9T$,9MN8$5$l$F$$$J$+$C$?MM$G$9!#(B

Windows$B4D6-$G(BLF$B2~9T%F%-%9%H$r%/%j%C%W%!<%I$KF~$l$k$N7k9=Fq$7$$$H;W$&$s$G$9$1$I$M!#(B

$B!=(B Reply to this email directly or view it on GitHubhttps://github.com/mmd-for-unity-proj/mmd-for-unity/pull/10#issuecomment-24311695 .

GRGSIBERIA commented 11 years ago

試しにメールで返信したらこんなことになるんですねw 原因としては恐らくボーン名等をツールで流し込むと起こりそうですね. 流し込み用のテキストがCRLFとかで保存されて, そのまま流し込まれるんじゃないかと. ここらへんの知見が共有できると,今後MMDツールを作りたい人に貢献できそうですね.