@ECHO OFF
SET LIST=LIST.TXT
SET LIST="%~1\%LIST%"
SET ADR=ttp://www.teatime.ne.jp/GameCGI/Lovers/LoversServer.cgi^?OID^=
SET ADR=h%ADR%
SET NUM=0
SET A=%~a1
IF Not %A:~0,1%==d exit
type nul > %LIST%
SET IN_FILE="%~1\*.*"
for %%A in (%IN_FILE%) do call :PATH "%%A"
echo %NUM%キャラ分のリストを%LIST%に出力しました
pause >nul
exit
:PATH
IF /I NOT %~x1==^.png exit /b
SET /A NUM=%NUM%+1
rem 上からキャラ(alp)、制服セット、私服セット、キャラステータス
ECHO %ADR%%~n1^&command^=GetHeroineALP>> %LIST%
ECHO %ADR%%~n1^&command^=GetHeroineWear_Uniform>> %LIST%
ECHO %ADR%%~n1^&command^=GetHeroineWear_Private>> %LIST%
rem ECHO %STA%%~n1^&command^=GetHeroineData>> %LIST%
exit /b
@echo off
SET COUNT=0
SET IN_FILE="%~1\*.dat"
for %%A in (%IN_FILE%) do call :PATH "%%A"
if %COUNT%==0 exit
echo %COUNT%キャラ分のファイル名を変換しました
pause >nul
exit
:PATH
for /f "usebackq tokens=*" %%i IN (`call cscript //nologo %~dp0namesub.vbs %1`) DO @set replace=%%i
if not exist "%~dp1%replace%*.*" goto PATHB
SET NUM=0
:PATHA
SET /A NUM=%NUM%+1
if exist "%~dp1%replace%(%NUM%)*.*" goto PATHA
set replace=%replace%(%NUM%)
:PATHB
SET HIT=0
call :PATHC "%~dpn1.alp" "%replace%.alp"
call :PATHC "%~dp1Private_%~n1.wbs" "%replace%_Private.wbs"
call :PATHC "%~dp1Uniform_%~n1.wbs" "%replace%_Uniform.wbs"
set /A COUNT=%COUNT%+%HIT%
if %HIT%==1 echo %replace%
rem call :PATHC "%~dpn1.dat" "%replace%.dat"
rem call :PATHC "%~dpn1.png" "%replace%.png"
exit /b
:PATHC
if exist %1 (
ren %1 %2
SET HIT=1 )
exit /b
ついでに起動時に黒画面が出るのがいやな人は29行目のあたりに
'ここから
If Ucase(Right(WScript.FullName,11)) <> "CSCRIPT.EXE" then
For i=0 to Wscript.Arguments.Count-1
srsc=WScript.Arguments(i)
If InStr(srsc," ")>0 then srsc=""""&srsc&""""
strbuf=strbuf&" "&srsc
Next
strbuf="cmd.exe /c cscript.exe //nologo """&WScript.ScriptFullName&""""&strbuf
Set wshfso=CreateObject("WScript.Shell")
Call wshfso.Run(strbuf,0)
WScript.Quit
End If
'ここまで挿入
上のスクリプトを入れれば最初からCSCRIPT.EXEで動くので黒画面が出なくなります
すみませんバグが見つかりました…
ジオラマ編集で最後の項目を削除後、動作を連続入替にセットして直前の項目から入替えると
最後の数値でスクリプトが無限ループにはまってしまいます
修正はChgIndrm1.6.2.vbsの393行目から397行目までの
Sub rad1 '登録項目番号の自動加算 slcont=slcont+1
Do
If drmsl=12 and slcont=dbn Then slcont=1 Else slcont=-(slcont+1)*(slcont<dbn)-(slcont=dbn)*dbn
Loop Until dblt(slcont)>0
End Sub
上の部分を削除して
'ここの下からコピー
Sub rad1
Do
If dblt(slcont)>0 Then k=slcont
slcont=slcont-(slcont<dbn)
Loop Until dblt(slcont)>0 or slcont=dbn
If dblt(slcont)>0 Then Exit Sub
If drmsl=12 Then slcont=1 Else slcont=k
End Sub
'ここの上までコピー
上の部分を挿入して差し替えてください
あとIEのフォントのデフォルトがメイリオなどで文字の大きさのせいでずれる場合は59行目の
html0="<head><title>ChgIndrm_ver.1.6.2</title></head>" _
の1行を
html0="<head><style type=text/css> BODY,INPUT{font-family:""MS Pゴシック"";} </style></head>" _
に差し替えるか
html0="<!DOCTYPE html PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN""><head><style type=text/css> BODY,INPUT{font-family:""MS Pゴシック"";} </style></head>" _
に差し替えてみてください(どちらか1行のみです)
mqoインポートしてできたMDLにBinormalの計算値が無い件でいろいろ調べていたら
TangentとNormalがあれば簡単に算出できるのがわかりました
Binormal = cross(Normal, Tangent); //全ての要素はfloat3
Binormal = normalize(Binormal);
実際にこれが正しいかは下のvbsを実行してらぶデスファイナルに入っているmdlのNormalとTangentを入力すると
Binormalが出てくるので書かれている数値と合わせてみるとわかります
'binormal_test.vbs Normalizeは入っていません
dim nor(3),tan(3)
Do
strbuf=Inputbox("Normal=","Input Normal","")
if strbuf="" then Wscript.Quit
Tmpary=split(strbuf)
For i=0 to 2
If UBound(Tmpary)<i Then Exit For
If IsNumeric(Tmpary(i))=0 Then Exit For
nor(i)=CSng(Tmpary(i))
Next
Loop while i<3
Do
strbuf=Inputbox("Normal=("&nor(0)&","&nor(1)&","&nor(2)&")"&vbCrLf&"Tangent=","Input Tangent","")
if strbuf="" then Wscript.Quit
Tmpary=split(strbuf)
For i=0 to 2
If UBound(Tmpary)<i Then Exit For
If IsNumeric(Tmpary(i))=0 Then Exit For
tan(i)=CSng(Tmpary(i))
Next
Loop while i<3
x=nor(1)*tan(2)-tan(1)*nor(2):y=nor(2)*tan(0)-tan(2)*nor(0):z=nor(0)*tan(1)-tan(0)*nor(1)
x1=FormatNumber(x,6):y1=FormatNumber(y,6):z1=FormatNumber(z,6)
wscript.echo "Normal=("&nor(0)&","&nor(1)&","&nor(2)&") ベクトルの長さ="&sqr(nor(0)^2+nor(1)^2+nor(2)^2)&vbCrLf _
&"Tangent=("&tan(0)&","&tan(1)&","&tan(2)&") ベクトルの長さ="&sqr(tan(0)^2+tan(1)^2+tan(2)^2)&vbCrLf _
&"Binormal=("& x1 &","& y1 &","& z1 &") ベクトルの長さ="&sqr(x*x+y*y+z*z)
'ここまで
ただBinormalはMayaやUnityだとNormalとTangentからその都度計算されるようなので
らぶデスファイナルでもMDLに書かれていなくても関係ないのかもしれません。
Mayaの件とtangentの算出方法が↓
ttp://docs.autodesk.com/mayalt2014/ja_jp/index.html?url=files/Appendix_A_Tangent_and_binormal_vectors.htm,topicNumber=d30e114825