はらけんログ

unity触ったりバイクに乗ったり

【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だとうまくいく。 

 

どうしたものか。

 

 

 

 

【Unity】OculusでVRコスプレしたくない?

 

f:id:HarakeN:20170112174329p:plain

最近、アバター使ってなんかできねぇかなと模索中。。。

FaceRigもいいんだけど、やっぱり自由度あった方がいいなと思って、Oculusで自作してみた。

 

まだテスト段階なので完全ではないけど、それっぽくなってきたと思うので、いったんまとめる。

作成にあったって、話題のVRコスプレイヤー、青木そらすさんのご協力をいただきました

・青木そらす さん https://twitter.com/open_sorasu

 

 

んで、今のところこんな感じ

 

 微調整したい部分はたくさんあるけど、何となくコスプレしてる感はあっていい感じ。

 

そこそこできたら作り方も改めて書くよ。

 

以上。

【Arduino】Arduinoのセットアップ

はい。

先日、余ってたArduinoをある人にプレゼントしたんだけど

いきなり「はいどーぞ」って渡して、すぐ使える代物ではないので、簡単なセットアップ方法を書いておこうと思う。

 

Arduinoの開発ツール「Arduino IDE」は下記の公式サイトからダウンロードできる。

Arduino - Software

 

 

1, Arduino IDEをダウンロード

f:id:HarakeN:20170111114427p:plain

アクセスすると上の画像のような画面が表示される。画面の右側に表示されている「Windows」「Mac OS X」「Linux」のいずれかから、自分の使用する端末に対応したものをクリックしよう。

 

 

f:id:HarakeN:20170111115547p:plain

すると次のようなページが表示される。寄付をしない人は赤丸の「JUST DOWNLOAD」をクリックすればダウンロードが始まる。

 

 

 

2, インストールとIDEの起動

f:id:HarakeN:20170111120443p:plain

ダウンロードが完了したらファイルを解凍しよう。解凍したらArduino IDEをアプリケーションの中へ移動させておこう。 こうして、わかりやすい位置に置いておけば毎回起動時にIDEを探さずに済む。

 

 

 

f:id:HarakeN:20170111121049p:plain

移動が完了したら、早速起動してみよう。画像のようなスケッチが現れたら成功だ。

 

 

3, Arduinoと接続

f:id:HarakeN:20170111122025p:plain

ツール>シリアルポートと進むと接続可能なポートの一覧が表示される。上の画像は何も接続されていない状態(各々のPCによって表示が違う可能性がある)

ArduinoIDEを一旦終了して、ArduinoをUSBで接続してから、もう一度IDEを起動してシリアルポートを見てみよう。

 

 

f:id:HarakeN:20170111122046p:plain

すると新たに二つのポートが出現する。いずれかを選択すればArduinoとPCが接続される。

 

 

 

f:id:HarakeN:20170111122830p:plain

次に、使用するArduinoの種類を設定しよう。Arduinoには様々な種類があって、IDEからArduinoへ書き込む際に、間違った種類のArduinoを設定してあるとエラーを吐かれるので、あらかじめ設定しておこう。

ツール>マイコンボードで使用したいArduinoを選択しよう。(僕があげたのはUnoなので一番上かな)

 

 

これで準備完了だ。

回路を間違えると簡単にArduinoが壊れてしまうので、回路と接続するときは間違えないように気をつけよう。

 

まずは簡単なLEDチカチカ回路からチャレンジしてみるといいかも。

11 ブレッドボードに載せたLEDを点滅させる

 

 

 

以上。

OculusTouchが届いたよ

はい。

なんとかお仕事が落ち着いたので(再度これから年末にかけてバカ忙しくなる)久しぶりに更新しますよーっと。

 

ってことで

会社に届いたOculusTouchのレビューでも書いときます。

 

f:id:HarakeN:20161219135722j:plain

 

 

 

 

見た目はこんなかんじ。

べたべた触って汚くなってるのは勘弁してね。

f:id:HarakeN:20161219135852j:plain

 

 

viveと違ってかなり手にフィットする。操作に慣れないうちは違和感があるけど、慣れると自分の手と間違えるくらい持っているということを忘れる。(少し大げさだけど)

f:id:HarakeN:20161219140312j:plain

 

 

で、早速体験したかったので、無料のOculusアプリをインストール。

いくつかある中で面白かったのは、エピックゲームスの「Bullet Train」

f:id:HarakeN:20161219140839p:plain

 

テレポートのやり方と銃の射ち方だけレクチャーしてもらって、あとは好き勝手に射ちまくるゲーム。

敵が撃った弾はつかんで投げ返せるので、VRマトリックスってな感じ。

 

 

 

Touchつかって面白いことしたい!!

って思ったけどHoloLensもすすめたいんだよなぁ・・・

自分がもう一人ほしい。