読みにくいメモ

全然わからない。俺は雰囲気でプログラムをやっている。

unity ひらがなに濁点、半濁点をつけたりとったり、小書きにしたり

ひらがなに濁点、半濁点つけれないとダメでしょw

 

そう簡単に言わないでクレメンス。

 

ってことで、ひらがなに濁点とか半濁点をつけれるか判定して変換するようにスクリプトを実装するハメになったので記載。

 

 

どうやってやるンゴ・・・

わからなかったので調べて考えて実装。

 

ちなみに今回いっぱい使う単語の「小書き」ってのはひらがなカタカナの小さい文字(ぁ、っ、ぇ等)を指し、「並字」ってのはその対義語(普通のひらがなの事)を言うらしい。

 

 

・濁点(半濁点)をつけるスクリプト

using UnityEngine;
using System.Collections;
using System;
using System.Text;

 

public void Conversion(){

 

  string input = "は" ;

 

//UTF-8 NFDで他の文字と結合すると濁点になるもの
  char dakuten = '\x3099';

//UTF-8 NFDで他の文字と結合すると半濁点になるもの

  char dakuten = '\x309A';

 

//くっつけてNFCにNormalize

  string add = (input + dakuten).Normalize (NormalizationForm.FormC);

 

//NFCに文字がない場合、文字化けするので文字数が増える

//NFCに文字がある場合、文字数は増えないので

  if (lastMoji.Length == add.Length) {

      Debug.Log("add");  // "ば"になる

    } else {

      Debug.Log ("無理");
  }
}

 

 

濁点くっつけられる文字だけ調べて配列入れて、くぁwせdrftgyふじこlp・・・

とかしなきゃいけないンゴ?

 

と、いろいろ調べていたら、macwindowsUTF-8の違いに気づく。

URF-8にはNFCとNFDってのがあるみたいで、大雑把に言うと濁点入り1文字になるか文字と濁点の2文字で表示されるかの違いがあるらしい(詳しい仕組みはわからない)

たとえばこんな感じ

NFC ー がぎぐげご
・NFD ー か゛き

 

で、Normalizeってのをしてやると、それぞれに変化できるみたい。

この時にNFDで濁点がつけられない文字(たとえば「め」)をNormalizeすると文字化けが起こる。

すると文字数が増えるので、これを判定に使用すればおk。

 

邪道かもしれないけど、スクリプトもすっきりでいいかんじカモ。

 

 

 

・小書き⇔並字にするスクリプト

//小書き文字をあらかじめ用意

public string kogakiMoji;

 

//小書き文字にできる並字をあらかじめ用意

public string namiji;

 

public void Conversion(){

  string input = "あ";

 

//inputが小書き文字かどうか

  for (int i = 0; i < kogakiMoji.Length; i++) {
    if (kogakiMoji [i] == input ) //一致したら

    { 
      input = namiji [i];
      return;
    }
  }

 

//inputが小書き文字にできる並字かどうか

  for (int i = 0; i < namiji.Length; i++) {

    if (kogakiMoji [i] == input ) //一致したら

    { 
      input = namiji [i];
      return;
    }
  }
}

 

こっちは先ほどの、くぁwせdrftgyふじこlp、の部分で言いたかった実装。

あらかじめ、配列に小書き文字(「っ」とか「ぁ」など)と小書きにできる並字(「つ」とか「あ」など)を格納しといて、入力された文字をそれぞれの配列と比較して一致したら変換。みたいな。

配列用意するのがめんどいけど、こっちのほうが王道かな?

 

 

これでいいかんじに実装できるはず。

 

 

以上。

 

 

 

 

 

 

HoloLens開発つまずいてる

はい。

 

ただいま、絶賛HoloLensのアプリ開発中なのですが、どうもうまくいかなくて悶々としてる。

 

やろうとしてることは

THETAなどのLive映像をwifi経由でHoloLens内に投影

です。

 

通信部分さえ自作してしまえばいけそうだけど

勉強不足なので、他力本願でやってみることにしたが

github.com

 

noshipu.hateblo.jp

 

このへんの記事を参考にさせてもらったが、うまくビルドできなかったり、通信できなかったりしてうまくいかない。

 

f:id:HarakeN:20170124143159p:plain

 

一応、伊藤周さんのプログラムはunityEditor上では動いた。

よっしゃ、これでビルドしちゃえばいけるんじゃね!?

 

 

 

f:id:HarakeN:20170124143836p:plain

 

ちーん。

 

f:id:HarakeN:20170124143432p:plain

うーん、スクリプトがdllを参照してるからってのもあるけど、、、

 

 

ちなみにexeだとうまくいく。 

 

どうしたものか。

 

 

 

 

どうでもいい話 (キンコン西野炎上について個人的意見)

はい。

またまた、どうでもいい話書きます。

 

 

最近、キン〇コン〇西野が絶賛炎上中ですが、見てて腹が立つ。

なんでだろうか。

 

実際手段としてはいいんだけど、アピールがいけないよね。いいことしてても「その辺のアホとは違って俺めっちゃいいことしてるぜ!」なんて自分ででかい声で言ってたらアホ丸出し。

江頭の爪の赤を飲ませてやりたい。

 

しかもダセェ足跡も残ってる。

f:id:HarakeN:20170123164627p:plain

 

それに百歩譲ったとしても彼の「仕事を頑張ってる人々をダセェと言ってさげすむ行為」は許せない。仮にも彼は「エンターテイナー(芸能人)」でしょ。

 

要約するとこうだ。

 

どんなやり方であれ、お前のやり方は間違ってない。

だが、自分も金をもらっているのに、他人を「金を貪る奴隷どもは糞ダサい」と宣ったことは断じて許されない。

 

 

今回の件は、

例えば、野球でセンター守備の人が「作家」でキャッチャーが「芸能人」だとする。

センターの作家が守備を頑張っているのに、バッターが打った球をキャッチャーの芸能人がわざわざ取りに行くという大チャレンジをして、見事フライをキャッチする。

 

ありえないシチュエーションだと思うけど、ここまではいい。

 

で、実はセンターとキャッチャーは口裏を合わせてやった仕事だけど、

いきなりキャッチャーが「俺すげぇだろ!ほかの選手みたいなクズとは違うんだぜ!」

なんてでかい声でいうもんだから

「お前一人の力じゃねーだろ」

「センターいらねぇじゃん」

「取れなかったらどーすんだよ」

といった感じにチーム内のムードは険悪になるし、センターはクビになる。

さらには別チームの選手も同じようなことを強要されて体を壊す。

 

チャレンジをするのはいいんだけど、そういうことも考えて行動しろよってなるし、第一に人を楽しませる奴が、ある界隈を険悪ムードにしてどーすんのって話。

 

楽しい物を作る人が、こういう炎上商法みたいなの使って人気になるの減ってほしい。

人を苛立たせて得るお金って嬉しいかな?

 

 

最後に、作品に罪はないけれど、キン〇コン〇西野のせいで

「えんとつ町のプぺル」という作品は「糞ダセェ」「金の奴隷」という印象がついてしまって、ぬぐいきれないことが残念である。

 

 

以上。

 

 

追記