読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

アセット名にアンダーバーや数字を付けた時の奇妙な挙動

仕様・不具合 エディタ アセット

妹「うーん、うーん。やっぱり何回やって同じになるぞ。なんだろこの不思議現象」

f:id:una_unagi:20160229003403p:plain
f:id:una_unagi:20160229003424p:plain

妹「編集中のレベルの名前を変えてたんだけど、最後にアンダーバーと数字が付けると、なぜか表示されてない場所があるんだよ。アンダーバーがなければ最後は数字でいい。あとこれが_aとか、_1aとか、_a1とか、数字じゃないのも混ざってる場合もそのまま出る。でもアンダーバーの後が数字だけだと何桁増やしても駄目。_1_2って二段重ねにしてやると、先にある_1の方だけ残る」

「それは初耳。普通に表示するだけの仕組みならこんな事起きないはずだから、なんか特殊な処理が入ってるのかな」

妹「今のところ特に実害はないんだけど、なんか気になる。他のアセットでもこうなるのか試してみる」

f:id:una_unagi:20160229004059p:plain

妹「ラベルのところは元の名前のままみたいだけど」

「そこはたまたま最初に作った時の名前のままになってるだけで、後からでも変えられるし、ブループリントの名前とも連動はしてないよ。ブループリントの名前変えても変わらないとこだから、それで正常。名前を変えた後の、"えび天_3"を画面に配置すればその名前で配置されると思うけど」

妹「なるほどなるほど……あれ? やっぱりおかしくない?」

f:id:una_unagi:20160229004815p:plain

妹「一個目が"えび天_3"なのはいいとして、その次がなぜ"えび天_4"に?」

「同じ名前のがあったから、自動で数字を付け足したんだと思う。数字を考慮しない場合だと、"えび天_32"みたいになるから、それで数字のを計算にいれてるのかも。レベル名の挙動よりは納得できる。こっちの処理はアンバーバーに関係なく、末尾が数字になってると起きるみたい」

妹「でもでも、例えばアセット1と、アセット2と、アセット3というアクターがあったとしてさ、先にアセット1を2つ置いて、その後アセット2を置くと……」

「アセット2というアクターが、アセット3っていうラベルで配置されるだろうね」

妹「それ絶対混乱するよ」

「そう考えると末尾に数字を使うアセット名はあんまり良くないのかも」

妹「でも1面のボス2面のボスって作ってたら、Boss_1とBoss_2とかになるんじゃないの?」

「そういうのは1つのレベルに1個しか置かないだろうから。複数作らなければ問題は起きない。あとレベル名の時も思ったんけど、最後の数字の前のアンダーバーは要らないんじゃない? Boss1とBoss2とかで」

妹「それだと区切りがわかりにくいかなと思ったんだけど」

「数字とアルファベットで分かれてるから大丈夫じゃないかな。みんなそこは区切ってない気がする。l(エル)とかo(オー)とか紛らわしい文字はあるけど、それは使ってる単語でわかるだろうし」

妹「そういうものなのか。英語はむつかしいのぅ……」