妹でもわかるUnrealEngine4

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

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

関数名やマクロ名を全角から半角に変えても反映されない場合がある

f:id:una_unagi:20160329214854p:plain

妹「半角文字と全角文字っていうのかな、同じ数字でも違う大きさの字ってあるよね?」

「ある」

妹「最初にマクロに名前を付けてて、数字のとこが全角だったからちょっと気持ち悪いなと思って、あとから半角で入れ直したんだけど、マクロの名前が変わらないんだよ。最初に全角だったら全角、半角だったら半角のままになる。別の数字にすると変わるんだけど」

「たしかにそうなるね。エディタを開き直しても元の名前のままになってる。変更前と変更後が同じ名前だと判断して、それで変更処理をやらなくなっちゃうのかも」

妹「でも違う字なんだよね? 通販サイトで全角駄目とか書いてることあるし」

「データ的には違う。ただ文字の意味としては全く同じだから、別々の文字だとか区別せずに一致判定をしたい時に、この文字とこの文字は同じとして扱う、みたいな処理する場合がある。Unicode正規化と言うんだけど、いくつかのルールがある。UE4で使ってるルールでは、数字とアルファベット、記号なんかは同じになってるのが確認できた。「バ」と「バ」や「ハ゛」みたいなのは別扱いだった」

妹「そういうの出来るんだったら通販サイトでもそうしたらいいのでは?」

「そうしてる場合もあるよ。半角か全角かどっちかに強制的に統一しちゃう方法。ただ入力した文字が全角は半角か調べるだけのより、ちょっと作るのに手間かかるかも」

妹「UE4もそれで全部そうなってるならわかるんだけど、これマクロ名でしかならないんだよ。マクロライブラリでも、アクターにくっつけてるのでもこうなる。変数名とかはならない。あと変数のカテゴリ名もちょっとおかしかった」

「関数名でも同じことが起きるね。どうしてそうなってるのかの原因はわからない。それを英語でバグ報告するのも兄の英語力では無理……とりあえず別の数字を入れるとかして、いったん違う名前にしてから入れ直せば対処できそう」

妹「そもそも全角文字ってのが要らない気がするんだけど。漢字は要るけど、数字は要らないような」

「プログラム的には要らないんだけどね。そういう面倒なのがいやで半角専用にしちゃうプログラミング言語は多い。全角半角っていう言い方も今となっては正しくないというか、フォントの設定次第で変わる。見た目全角じゃなくて70%角ぐらいだったりもするし、全角と半角と見た目で全く区別できないのもある。そのせいか、若い世代では全角文字っていう言い方自体が通じなくなってきてるらしい」

妹「あっ……あー、ゼンカクモジとかよくわかんないなあ。よくわかんないけど、じゃあ何て言えばいいの?」

「なんて言うのかがわからないのが問題なんだよね。今のところ言葉の意味はともかくとして、全角文字と半角文字っていうしかなさそうな状況」