コンテンツへ移動

pepperは「~」を使うと読みあげなくなる。

ちょっとハマったからメモ。

「~」
Unicode (UTF-8) – utf-8
判定詳細
キリル言語 (Windows) – windows-1251
→読み上げない

「〜」
Unicode (UTF-8) – utf-8
判定詳細
OEM キリル – IBM855
→「から」と読み上げる

後者でやる分には全く問題ないんだけど、前者は文字列に1文字でも入っていると、文章全体を読み上げないという事態になります。

pythonのreplaceで適当な文字列に変換してあげると良いです。

広告

Oculus RiftのOVRPlayerControllerをXBox360コントローラで動かした時、下ボタン押下時に震えるのを消す

OVRPlayerControllerをWindowsで360コントローラ使用時、下ボタンを押すと震えます。
これは、XBox360コントローラの下ボタンに、向きをリセットする機能が割り当てられているためです。

メニューを動かすためにこの360コントローラの十字ボタンを使っていたんだけど、動かすたびに震えるので抜くことにしました。

対処する場所は、
OVR > Scripts > OVRMainMenu.cs
の1042行目をコメントアウトするとこの機能を消すことが出来る。

↓ここ
スクリーンショット 2014-01-17 17.34.16

正直ココを消すことで何か問題になるかどうかまだちゃんと調べきれていないけど、今のところ何ら問題なく動いてます。

何か問題が出た場合は修正します。
もしくは問題があるよとご存じの方はコメントくれたりすると嬉しいです。

ともかく今のところこれで対処しておる。

Unity3Dで、カメラを複数使ってレイヤー表示みたいにする方法

こちらのページを参考にしました。
http://naichilab.blogspot.jp/2013/07/unity.html

カメラを複数配置して、上に重ねたいサブカメラのdepthを、メインカメラより大きくする。
(メインカメラが0なら、重ねるカメラは1以上にする)

そしたら、サブカメラのClearFlagsをDepthOnlyに変更することで可能になる。

GUIを最前面に常においておきたいときなどにとっても便利。

ちなみにOculusRiftを利用時、OVRCameraControllerを使ってでも利用可能。
SkyboxMesh.csを利用している場合は、OVRCameraControllerのカメラがMainCameraタグになっているとバグるので、別のタグにしてやる必要がある。

Couchbase Meet Upで話してきました。

具体的に追加されてたものだけの紹介です。
他にももちろんいろんな機能があります。

詳しくは公式で。

今はローカルのDBってそこまで活用されてはいないかもしれませんが、ずいぶん手軽に使えるので、これがきっかけに使い始められるといいなあ。

Unityで、当たり判定を保ったままオブジェクトを浮かせて移動させる方法

どうも、unity初心者です。

さっき書いた方法だと、移動させることはできるけど、当たり判定とかMassとかを無視して動かしちゃうから、色々と都合がわるいことが起きた。

調べてたらJointって機能を使ってみればいけるんじゃ?と考え試してみたらビンゴだった。
これで、スカイリムとかオブリビオンとか、FallOutみたいな物の移動ができる!やったぞー!

以下ソース
※前提として、カメラにFixedJointを追加し、Is Kineticをtrueにしています。

これで、Massも、当たり判定もすべて考慮されてものを動かすことが出来る。

ブルブルするけどねw

Unity3Dでオブジェクトを持ち上げ、投げる方法

オブリビオンみたいに、物を持ち上げられないかなーと研究中。
オブリビオンみたいにはできてないけど、暫定で出来たものが以下。

これだと、対象のものを持ち上げて移動し、落とすことは出来るんだけど、持ち上げている時にメインカメラの子にしているから(?)持ち上げ時にものを通り抜けてしまう。

やりたいのは、持ち上げた時にものが通らなかったら通らなくしたい。スターウォーズのフォースみたいに遠隔で持ち上げて操作するっていうのがしたいんだけどどうしたらいいんだろ…。うーん…。

 

Couchbase LiteのCBLUITableSourceを動かしてみた

新たに追加されたクラス、CBLUITableSourceを動かしてみた。
どういうものかというと、UITableViewのDataSourceとCouchbaseLiteのLiveQueryを組み合わせたもの。
CouchbaseLiteにドキュメントを追加すれば、すぐにそれをTableViewが検知して、UITableViewにそのデータが反映される。

Couchbaseが配布している、ToDoLiteにも使われているやつです。

XIBでの利用を前提に作っているらしいのでそれにしたがって設定してみた。
各種環境はできている前提です。

動かしてみよう

まずはプロパティ宣言。
IBOutletを忘れずに。

@property (nonatomic) IBOutlet CBLUITableSource* dataSource;

そしてXIBを開き、ViewにUITableViewを配置。
そしてObjectsにNSObjectを配置し、ClassをCBLUITableSourceに変更します。

そして、さっき配置したUITableViewを以下のように接続

★TableView:
dataSource:さっき配置したCBLUITableSource
delegate:FilesOwner
tableView:CBLUITableSource内にあるtableView

★FilesOwner

dataSource:さっき配置したCBLUITableSource

そして最後に、ViewDidLoadなどで

    self.dataSource.labelProperty = @"text";    // Cellに表示したいドキュメントのプロパティ名
    
    AppDelegate *ap = ApplicationDelegate;
    
    if (_dataSource){
        _dataSource.query = [[ap.database queryAllDocuments] asLiveQuery]; //ここがライブクエリ設定部分
        _dataSource.query.descending = NO;
    }

としてあげれば準備完了です。
あとはドキュメントを追加したりすれば勝手にUITableViewの更新などをやってくれます。お手軽!

UITableViewの見た目や設定を変更したければ、Delegateメソッド用意しているからオーバーライドしていじってみてね、と公式にはあります。

手軽なだけ?

で、手軽にここまで出来るのはいいんですが、実際カスタムするとなると今まで慣れ親しんできたやり方でやりたいなーと思った。
この実装がこの手法でしかできないかって言うとそういうわけでもないですし。

普通に、UITableView配置して、LiveQuery作成して、その通知拾って、更新かける、というのを自分で書いちゃえばいいし、そっちのが今ロールしやすくない?って思っちゃう。

もしかするとそのデリゲートメソッドになにか便利なものがあるかもしれないからなんとも言えないですけどね。
ともかく今回は触ってみたってことで。