splitとjoinとsliceで。

文字列から任意の部分を取り出す際に、その文字列に規則性がある場合は、JavaScriptのスプリットとジョインとスライスでほとんどのことが可能です。

 

例えば、

 

XY08_055_T1

 

から、T=本撮を表す文字を取り出す場合は、

 

"XY08_055_T1".split("_")[2].slice(0,1);

 

‥‥で可能です。

 

xy_08_055_t1

 

から「t」を取り出すなら、

 

"xy_08_055_t1".split("_")[3].slice(0,1);

 

です。

 

charAt()を使うのも良いですが、sliceだけでも可能です。

 

テイクの後の数字を取り出す場合は、それぞれ、

 

"XY08_055_T1".split("_")[2].slice(1);

"xy_08_055_t1".split("_")[3].slice(1);

 

です。sliceは範囲指定も「以降全部」も可能なので、色々と使えるのです。

 

ちなみに、文字を1文字ずつバラバラにしたい場合は、

 

"XY08_055_T1".slice("");

 

‥‥で可能です。私はこのあたりの知識はAppleScriptから流用しました。「AppleScript's text item delimiters」というヤツです。1つの言語をつっこんで習得すると、別の言語でも応用が可能になりますヨ。

 

 

 

アンダースコアを日本語の接続詞「の」に変えたい場合は、それぞれ、

 

"XY08_055_T1".split("_").join("の");

"xy_08_055_t1".split("_").join("の");

 

これは、「変換」しているのではなく、一旦アンダースコアで分解したのちに、「の」という文字で連結しているのです。

 

XY08の055のT1

xyの08の055のt1

 

この方法を転用すれば、変換にも使えます。‥‥AppleScriptでは常套手段ですが、JavaScriptでも可能です。

 

"今日の三鷹は雨です。".split("三鷹").join("高円寺");

結果:"今日の高円寺は雨です。"

 

普通はreplaceを使うでしょうが、こういう方法もあります。

 

なので、ファイル名から拡張子だけを除外したい時にも使えます。

 

XY01.03.128.T1.MOV

 

なんていう名前(まあ、こういう名前はないですけどネ)は、普通にドットで区切ると、拡張子の.MOV以外も全てバラバラに分解されちゃいますが、

 

XY01, 03, 128, T1, MOV

 

「.MOV」で区切れば、ファイル名のカット名部分だけを取り出せます。

 

"XY01.03.128.T1.MOV".split(".MOV")[0];

結果:"XY01.03.128.T1"

 

"XY08_055_T1.mov".split(".mov")[0];

結果:"XY08_055_T1"

 

 

 

大文字小文字が混在していて、いちいち分割する文字列の条件を変えなければならない場合は、いっそのこと、全て大文字か小文字に変換したあとで処理するのも手です。

 

"XY08_055_T1.mov".toUpperCase().split(".MOV")[0];

結果:"XY08_055_T1"

 

 

 

いずれの場合にせよ、事前の「名前の規則」が整然と規定されていることが必須です。

 

そして、人間の目視による運用と、プログラムにおける処理の利便性の、両方をいい感じで兼ね備えた名前を規定できれば、ベストですネ。

 

私の思想だけで言えば、作品、話数(パート)、カット番号、種別、バージョン番号は、全て同じ文字列で分割していたほうが、人の目にもコンピュータの処理にも、両方に優しいと思います。

 

xy_01_001_vfx_t2

zz_a_032_gen_t1

→ 頭から順に読んでいけば、命名規則を詳しく知らなくても、内容が伝わります。

 

でもまあ、まずは整然とした名前の規定をおこなうことが先決です。

 

しかし、今のアニメ制作現場は、名前の規定すら曖昧で、各セクションが別々の規定で運用するほど、連携が希薄です。

 

中々、未来のオンライン運用への道は険しい‥‥ですネ。

 

 

 



calendar

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 
<< July 2020 >>

selected entries

categories

archives

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM