「スマートシティフェスタ 2023」体験レポート

2023/10/13(金)-10/15(日) 東京の西新宿にて
「スマートシティフェスタ 2023」というテクノロジーを体験できるイベントありました!

難聴うさぎさんも出展スタッフとして頑張ってるので
会いに行ってほかのの出展も体験してきました

■ 会場「水の広場」

※以下 [ 数字 ] 部分は出展番号です

[22] 公園遊びをARで体験!「未来PARK」

インストールなしで AR を使って公園の遊びを体験できます
試したのは「壁当て」と「落書き」でした

騒音問題で「壁当て」禁止の公園が増えてきて
音が発生しない AR で再現したものです
※これすら許せなくなる世の中になって正直に悲しい気持ちになります

[番号なし] 都のDX事業「国際規格のWi-Fi接続基盤オープンローミング

いわゆる「公衆Wi-Fiサービス」です
都が安全な公衆無線Wi-Fi を提供してとても有難いサービスです
Googleなどで一回登録すれば「無料・無制限」のWi-Fi が使えます

現在、
西新宿周辺には東京都で設置を進めている「スマートポール」が合計29基があるため
ほぼ西新宿をカバーされます
これからも有難く使わせていただきます!

[12] リアルタイム字幕メガネ「MOVERIO」

映画館には専用デバイスの貸出もできるが、
XREALなど対応した ARグラスも対応しています
自分のスマホから音声認識して字幕を同期してくれます
※個人的はスクリーンに字幕表示してもいい派です!字幕付き上映が増えるといいなぁ(´・ω・)

[9] 骨伝導式聴覚サポート「Vibone nezu HYPER」

難聴うさぎさんがスタッフしてる出展です
動画を観て体験してみたかった
※実は骨伝導初体験でもある

振動が凄いので例え全く聞こえない方でも、音に反応して振動が伝わるので
「何か音してるなぁ」という感覚が得られます
※ 来年にバージョンアップするらしい [公式:solidsonic (@solidsonic1) / X]

詳しくは難聴うさぎさんの動画でどうぞ!
www.youtube.com

■ 会場「都民広場」

[11] モビリティロボット「RODEM」RODEM | テムザック – tmsuk

試乗体験ができます!
最初は慣れてなくて操縦が怖かったが、段々慣れてきます
速度はそれほど早くないため運転免許は必要ありません
www.youtube.com

[番号なし] 缶バッジ無料制作体験コーナー

上記の[11]の展示の近くに、
自分がお描きして缶バッジを作れるコーナーがありました
絵心が全くないのでとても個性ある缶バッジを作りました!

何を書こうとしてるでしょうか?

答えは:お花と雲と自分のサインです
ヤバすぎるw
お描き好きな方はぜひ行ってみてください!

余談です

今日、都民広場の近くには
新宿ごはんプラス (@gohanplus) / X の 暮らしの相談会があります
食料品の提供もあり、並んでる方が多くてビックリしました
最近戦争のニュースもあるし、とても切ない気分だった

■ 会場「新宿住友ビル

[14] 難聴を取り巻く風景を体験する「Deaf VR

事前に調べて気になった出展です。
難聴うさぎさんも体験しておすすめしていただいたので
体験しに行きました

VRバイスを使って難聴を体験することができます

6つのコンテンツから体験したいものを選べます
体験には同じ動画で「2種類の難聴レベル」と「健聴者」の3回繰り返します

私は「道路編」を選べました
最初、車が横から通ってて危ないなぁと思ってました
そのあと「健聴者」バージョンが再生されたら
車はクラクションを鳴らしてたのが衝撃を受けた!
「聞こえる」「聞こえない」ってこんな差あるのね。。

そのあと、並んでる人がいなかったので
難聴うさぎさんの本や動画で授業の話を聞いててとても知りたかったので
スタッフさんに「教室編~授業時間~」お願いして体験してもらいました

先と同じ動画は3回繰り返します
先生が何を話してるか全くわかりません!
先生やクラスメートの視線や表情を見ても
全く何が面白くて笑っているか理解できなかったです

ただの何分間だけでもとても耐えられません
取り残されてとても寂しい気持ちになりました

[1] 透明スクリーンによる窓口対話支援システム体験

リアルタイム音声認識して文字表示や翻訳してくれるデバイス
会話の中に重要な単語をデコレーションしてくれて
より感情的な表現をしてくれます

昔、気になった落合先生が関わってるものと同じデバイスかなぁ?
digitalnature.slis.tsukuba.ac.jp
www.youtube.com
※間違ったらごめんなさい、コメントしていただければ修正いたします

[15] Dig Sportsと連携したサッカー体験

タイトルには「サッカー体験」になってるが
AIを使って運動能力を測定しおすすめのスポーツを教えてくれる展示です

立ち幅跳び」「垂直跳び」「反復横跳び ( 人生初 )」「50メートル走」「投球フォーム」をやりました

特に「50メートル走」がヤバい!
残り25メートルぐらいになったらスタッフ3人が大声で応援してくれるのです!
「いい記録残したなぁ」とほめてもらいましたw

結果はこちらです

おすすめのスポーツは「スキー(ジャンプ)」「スノーボード」「セパタクロー」らしい
全然やったことない!「セパタクロー」チームのスカウトが来てくれ!

■ 最後に

ほかの展示もスタッフさんと話したり質問したり
3時間ぐらい回ってとても楽しかったね

明日( 15日 )もまだ体験できるので、
ぜひ体験しに行ってください~

※お金もらってないのでステマではないですよ~
ではでは

手話学習メモ:1

※自分用学習メモなので正確性は保障しません
※素材「いらすとや」

手話で単語を表すときに空間のスケールを意識すると理解しやすい


赤い枠:表す空間

例1:地球


赤い枠:宇宙空間

例2:建物・家など


赤い枠:室外空間
※自分視点から見て自分より高いので下から上に表現する

例3:エレベーター


赤い枠:建物の中

例4:机


赤い枠:部屋の中
※自分視点から見て自分より低いので上から下に表現する

終り

新しい単語と出会うとき
このように空間のスケールを意識すると覚えやすく
単語と単語をカメラのズームイン・ズームアウトな感覚で繋がれば
会話全体の流れが把握しやすいかもしれません

手話の勉強を頑張ります!

【Unity】Addressable Assets のロケーション変更

アセットのダウンロード先を実行時に変更したい場合あるよね・・
例えば、
開発サーバとか、ステージングサーバとか、本番サーバとか
それぞれのURLを指定したいわけです。

UnityのAddressable Assetsでは AddressableAssetsSettings に設定できますが、
LoadPathはビルドに決められています。

そこで、

Addressables.InternalIdTransformFunc

がドキュメントに書かれていました

使ってみた。

1.AddressableAssetSettings からProfileを開く
f:id:kou_yeung:20200416121227p:plain
2.RemoteLoadPath の URLを "BASE_URL" に指定
f:id:kou_yeung:20200416121240p:plain
3.BASE_URLの部分を上書き
gist.github.com

必要であればログイン時にサーバから BASE_URL を返してもらえば環境によって切り替えできます。

【Javascript】Date.today()

Javascript では現在の日時を取得するメソッドがあります。

Date.now()

C#DateTime.Today(時刻部分は 00:00:00)が欲しいので
書いてみた。

Date.today = function(){
    const res = new Date();
    // memo
    // from javascript 1.4
    // dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
    // before javascript 1.3 : https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours
    res.setHours(0, 0, 0, 0);
    return res;
}

使い方

const today = Date.today();
console.log(today.toString()); // Wed Oct 30 2019 00:00:00 GMT+0900 (Japan Standard Time)

wandbox.org

ログインボーナスを実装するぞ!

【Cocos2d-JS】cc.loader の拡張

リソースデータAに自前のデータBを依存していて、
データAをプリロード時にデータBも一緒にプリロードしたいです。
データAをインスタンス化してからデータBをプリロードしてもいいですが、
処理が複雑になってしまうです。

あるいは、同時時複数リソースを使用するデータが、
毎回パスを構築してプリロードするのもコード量が増える。

どう対処するかと
cc.loaderのソースとにらめっこしたら
cc.loader.register(...) を発覚しました。

cc.loader.register

cc.loader.registerを使って特定の拡張子でカスタムローダーを登録できます

cc.loader.register(['ext'], {
  load: function (realUrl, url, resource, cb) {
    /*....*/
    cb(); // ロードが終わったらコールバックを実行します
  }
});

spine データには json / atlas / png 3つのファイルが必要です。
毎回この3つのファイルを配列して cc.loader.load してもいいですが、

.spine 拡張子を定義して一気にこの3つのファイルをロードする

cc.loader.register(['spine'], {
  load: function (realUrl, url, resource, cb) {
    let urls = [];
    urls.push(url.replace('.spine', '.atlas'));  // atlas
    urls.push(url.replace('.spine', '.png'));  // png
    urls.push(url.replace('.spine', '.json'));  // json
    cc.loader.load(urls , (error, datas)=>{
      // datas を使ってさらに依存しているデータを読み込む
      cb();
    });
  }
});

使い方

cc.loader.load("res/assets/model.spine");

このように *.spine 拡張子をロードする場合、
登録したカスタムローダーが実行され、
必要なデータがロードされます。