日曜日, 7月 20, 2025
No menu items!
ホーム ブログ ページ 6718

ビジュアルノベルは少しです



前に視覚小説について書いたことがありますが、その最後の投稿以来、このジャンルはルネッサンスにありました。 Doki Doki文学クラブのようなゲームは、造形で遊んでいます…



Source link

Views: 0

「最高級のドルビーアトモス環境でも満足できる音を」。Netflixアニメ「Tokyo Override」制作セミナーが開催



「最高級のドルビーアトモス環境でも満足できる音を」。Netflixアニメ「Tokyo Override」制作セミナーが開催

ドルビーアトモスによる音楽制作の第一人者である古賀健一さんと、レコーディングエンジニア・長谷川巧さんによる、Netflixアニメ「Tokyo Override」のサウンド制作の裏側を語るセミナーが、4月8日に開催された。



Source link

Views: 0

クリアソン新宿、子ども食支援プロジェクト「夢パス カフェテリア」を新宿区でスタート!全国初の試みに注目



クリアソン新宿、子ども食支援プロジェクト「夢パス カフェテリア」を新宿区でスタート!全国初の試みに注目

 

 Gigiはクリアソン新宿と協力し、5月1日より新宿区に住む小学生を対象にした食支援プロジェクト「夢パス カフェテリア」を開始する。

 クリアソン新宿は、地域の子どもたちや飲食店の橋渡し役を担い、新宿区に住む小学生に食事支援を提供する。この取り組みにより、子どもたちは「こどもごちめし」によって発行された食事券を使用して、登録飲食店で無料の食事を受け取ることができるようになる。対象店舗は新宿区内の計18店舗で、毎月1回、食事代金(1,000円以内)の補助が受けられる。

 対象飲食店には「1016 TOiRO COFFEE」や「ABCcanteen ルミネエスト新宿店」、「吉野家」など多くの店舗が名を連ねている。保護者は専用サイトで登録を行い、本人確認を経て、対象店舗で「こどもごちめし」マイページを通じてチケットを提示することで、支払いが完了する。

 このプロジェクトの背景には、地元の子ども食堂が抱える運営面や心理面の課題がある。ボランティアの確保が難しいことや、貧困というレッテルへの抵抗感から、従来の子ども食堂の利用をためらう子どもたちが多いという。クリアソン新宿は、これらの課題を解決し、より継続的で気軽に支援が受けられる環境を提供することを目指している。

 今後の展望として、このプロジェクトにさらに多くの店舗が参加することを視野に入れ、全国の他地域のスポーツクラブや企業との連携を模索する方針である。これにより、全国的な子ども支援ネットワークの拡大を図ることを目指す。

■関連サイト



Source link

Views: 0

Cloudflare のデモアプリを組み合わせ、サーバレスなライブ配信 ‐ Realtime SFU と仲間たち


はじめに

Cloudflare の提供するデモアプリを組み合わせ、サーバレスなライブ配信を味見します。
目指すのは下記です。

  • 1秒までの時間差
  • チャット機能
  • ログイン認証・認可

素材

デモアプリ

Cloudflare が公開しているデモアプリを使います。

送受信のツール

  • ライブ配信は OBS Studio かブラウザー
  • 視聴はブラウザー

Cloudflare のプロダクト

利用する Cloudflare のプロダクトを列記します。
いずれも Free Plan で利用可能なものです。

Free Plan 枠の情報(利用上限などご確認ください)

Realtime SFU There is a free tier of 1,000 GB before any charges start.
Workers
Durable Objects If you exceed any one of the free tier limits, further operations of that type will fail with an error.
Pages
Access
WAF Custom Rules
Bulk Redirects
DNS Available on all plans plans and features
SSL/TLS Available on all plans plans and features

最低限必要なもの(ローカル環境)

デモアプリが最低限必要とするものです。
アプリを実行すると裏で自動配備されるものも含みます。

インターネット公開で使うもの

デモアプリをインターネットに公開する際は、認証・認可などセキュリティプロダクトをつけます。
アプリ自体を動かすのに必須ではありません。プライベートな配信環境を想定し、組み込みます。

また、プロキシーの基盤となる DNSSSL/TLS が必要です。
これらは Workers で Custom Domains を作成するなどにあわせ、基本的に自動配備され、簡単です。

手順

まずローカルでつなげ、その後公開します。

ローカル環境

簡単です。
ローカル稼働にはほとんどダッシュボードを触る必要はないです。

WHIP-WHEP Server

サーバーのセットアップ

WHIP-WHEP Server を立てます。

  1. Realtime SFU の作成


    App IDAPI Token を得ます

  2. サーバーのセットアップ

    whip-whep-server

    npm create cloudflare@latest -- --template https://github.com/cloudflare/calls-examples/tree/main/whip-whep-server
    
  3. App IDAPI Token の登録
    wrangler.toml に書くようなサンプルになってますが、TBD と書いてある部分は .dev.vars書きます

    wrangler.toml

    [vars]
    CALLS_API = "https://rtc.live.cloudflare.com"
    
    
    
    

    CALLS_APP_IDApp IDCALLS_APP_SECRETAPI Token を入れます。

    .dev.vars

    CALLS_APP_ID="..."
    CALLS_APP_SECRET="..."
    
  4. 起動(ローカルサーバー)

    http://localhost:8787 で立ち上がりました。
    WHIP サーバーWHEP サーバーの両方をサービス提供する状態です。

    log

    npx wrangler dev

    :
    Your worker has access to the following bindings:
    - Durable Objects: 
     - LIVE_STORE: LiveStore
    - Vars:
      - CALLS_API: "https://rtc.live.cloudflare.com"
      - CALLS_APP_ID: "(hidden)"
      - CALLS_APP_SECRET: "(hidden)"
    ⎔ Starting local server...
    [wrangler:inf] Ready on http://localhost:8787
    
WHIP 接続(OBS ➜ ローカルサーバー)

OBS から WHIP で接続します。

  1. OBS Settings > Stream の設定
    Server は WHIP サーバー Ingest /ingest/ に合わせます。
    例: http://localhost:8787/ingest/my-live
  2. 接続
    ソースを指定して Start Streaming
  3. ログ
    WHIP-WHEP Server のコンソールに WHIP サーバーへの接続が現れます。
    [wrangler:inf] POST /ingest/my-live 201 Created (2090ms)
    
WHEP 接続(ブラウザー ➜ ローカルサーバー)

WHIP-WHEP Server に WHEP player が同梱されているので、それを使います。
Pages を使っています。

  1. ディレクトリを移動

    mv whip-whep-server/wish-whep-00-player ./
    cd wish-whep-00-player
    
  2. wrangler.toml 編集
    wrangler.tomlcompability-date を追加

    wrangler.toml

    name = "whep-00-player"
    pages_build_output_dir = "./static"
    compatibility_date = "2025-04-01"
    
  3. 起動(ローカルサーバー)
    Pages です。

    http://localhost:8788 で立ち上がりました。

    log

    npx wrangler pages dev

    :
    No Functions. Shimming...
    No bindings found.
    ⎔ Starting local server...
    ⎔ Reloading local server...
    [wrangler:inf] Ready on http://localhost:8788
    
  4. 接続

    • ブラウザーで WHEP player の URL(この場合 http://localhost:8788)に接続
    • WHEP サーバー play URL( http://localhost:8787/play/my-live)を入力、 Load

      動画と音声が配信されました。1秒くらいの時間差が見られました。
  5. ログ
    WHIP-WHEP Server のコンソールに WHEP サーバーへの接続が現れます。

    [wrangler:inf] POST /play/my-live 201 Created (1533ms)
    [wrangler:inf] OPTIONS /play/my-live/cf5753324a74f8ad9c6df7ad7b3dd077 204 No Content (5ms)
    [wrangler:inf] PATCH /play/my-live/cf5753324a74f8ad9c6df7ad7b3dd077 200 OK (726ms)
    
結果

この時点で下記を確認できました。

  • 1秒までの時間差 ✅️
  • チャット機能 ✘
  • ログイン認証 ✘

Edge Chat Demo

サーバーのセットアップ

Edge Chat Demo を立てます

  1. サーバーのセットアップ

    workers-chat-demo

    npm create cloudflare@latest -- --template https://github.com/cloudflare/workers-chat-demo
    
  2. 起動(ローカルサーバー)
    http://localhost:62257 で立ち上がりました。

    log

    npx wrangler dev

    :
    Your worker has access to the following bindings:
    - Durable Objects:
      - rooms: ChatRoom
      - limiters: RateLimiter
    ⎔ Starting local server...
    [wrangler:inf] Ready on http://localhost:62257
    
接続
  1. 接続(ローカルサーバー)
    your name 任意の名前を入力
    room name 任意の部屋の名前を指定 my-live

    部屋の名前をアンカーでつけると、当該の Chat に参加できます。
    http://localhost:62257/#my-live
    [wrangler:inf] GET /api/room/my-live/websocket 101 Switching Protocols (17ms)
    
    Create a Private Room の方

    Create a Private Room はローカルサーバーを HTTPS で起動する必要があるようでした。
    一意の部屋 ID が発行されるだけなので、今回の場合は任意に指定したものを利用することにします。
    もしローカルサーバーを HTTPS で起動する場合は
    wrangler dev --local-protocol https
    オプションで俺俺が立ちます。

  2. WHEP player からの呼び出し
    生成された URL を WHEP player の index.html から iframe で呼んでみると追加されました。
    src のリッスンポートはローカルサーバー起動時の状況によりけりです。Safari と Firefox から呼んでみます。
    お互いにチャットが出来ています。
結果

この時点で下記を確認できました。

  • 1秒までの時間差 ✅️
  • チャット機能 ✅️
  • ログイン認証 ✘

インターネット公開

ここからちょっと手間かかります。

セキュリティ適用の方針

あらかじめ打てる手は打ち、最低限の安心を確保したうえで公開を進めます。

  1. デモアプリの公開点(=攻撃点)を減らす
    • 自前ドメインでのみ公開
      Workers・Pages の公開で自動付与されるドメイン名は利用しない
      Workers/Pages Custom Domains
      Bulk Redirects
    • 公開する URL 以外は受け付けない
      WAF Custom Rules
  2. デモアプリの公開点は全て認証・認可する(利便性は損なわず)
    • WHEP player・WHEP サーバー・Chat へのログインとシングルサインオン
      Access
    • WHIP サーバーの保護(OBS からの接続)
      Access または WAF Custom Rules

公開の方針

セキュリティ関連項目を適用してから公開デプロイするか、その逆か、を考えます。
前者が望ましいですが、動作確認を考えると、後者がやりやすいです。

今回は下記の手順にします。
➜ 誰が参加しても問題のないダミーを公開し、動作確認
➜ セキュリティ適用を確認
➜ セキュリティ土台の上で、本番配信の公開

ドメイン

自前ドメインで提供します。
自動付与されるドメイン名は利用せず、管理すべき点を減らします。

単一ホストも考えましたが、デモアプリを書き直すところがありそうなため、アプリごとの独立にしました。
プロトコルは HTTPHTTPS で。

サーバー ローカル デプロイ カスタム
WHEP localhost:8787 whip-whep-server..workers.dev
DISABLE
wh.live.oymk.work
WHIP localhost:8787 whip-whep-server..workers.dev
DISABLE
wh.live.oymk.work
Player localhost:8788 .pages.dev
REDIRECT
live.oymk.work
Chat localhost:62257 chat-demo..workers.dev
DISABLE
chat.live.oymk.work

デモアプリの公開

WHIP-WHEP Server
  1. Route 追加 wrangler.toml
    workers.dev での公開を止め、自分ドメインのみにします。

    wrangler.toml

    name = "whip-whep-server"
    main = "src/index.ts"
    compatibility_date = "2024-04-03"
    
    workers_dev = false
    routes = [
      { pattern = "wh.live.oymk.work", custom_domain = true }
    ]
    
    code: 10097 エラーが出たら(free plan)

    free plan は SQLite storage backend のみ利用可能なので、

    In order to use Durable Objects with a free plan, you must create a namespace using a `new_sqlite_classes` migration. [code: 10097]
    

    のエラーが出たら wrangler.toml を編集し、デプロイし直します。

    [[migrations]]
    tag = "v1"
    new_sqlite_classes = [ "LiveStore" ]
    #new_classes = [ "LiveStore" ]
    
  2. App IDAPI Tokensecret で配備

    whip-whep-server

    npx wrangler secret put CALLS_APP_ID
    Enter a secret value:
    npx wrangler secret put CALLS_APP_SECRET
    Enter a secret value:
    
  3. CORES 関連の調整 index.ts

    変更箇所

    optionsResponse()access-control-allow-origin 指定

    function optionsResponse(): Response {
    	return new Response(null, {
    		status: 204,
    		headers: {
        		"accept-post": "application/sdp",
    			"access-control-allow-credentials": "true",
    			"access-control-allow-headers": "content-type,authorization,if-match",
    			"access-control-allow-methods": "PATCH,POST,PUT,DELETE,OPTIONS",
    			
    			"access-control-allow-origin": "https://live.oymk.work",
    			"access-control-expose-headers": "x-thunderclap,location,link,accept-post,accept-patch,etag",
        		"link": "; rel="ice-server""
    		}
    	})
    }
    

    coresHeaders を変更

    async function whepHandler(request: Request, env: Env, ctx: ExecutionContext, parsedURL: URL): PromiseResponse> 
    {
    	
    	const corsHeaders = {
    		"access-control-allow-origin": "https://live.oymk.work",
    		"access-control-allow-methods": "POST,PATCH,OPTIONS,DELETE",
    		"access-Control-allow-Credentials": "true",
    	}
    

    再デプロイ

Edge Chat Demo
  1. Route 追加 wrangler.toml
    workers.dev での公開を止め、自分ドメインのみにします。

    wrangler.toml

    name = "chat-demo"
    compatibility_date = "2024-01-01"
    main = "src/chat.mjs"
    
    workers_dev = false
    routes = [
      { pattern = "chat.live.oymk.work", custom_domain = true }
    ]
    

    code: 10097 エラーが出た場合は WHIP-WHEP Server 同様に wrangler.toml を編集し、再デプロイします。

    code: 10097 エラーが出たら(free plan)
    [[migrations]]
    tag = "v1"
    new_sqlite_classes = [ "ChatRoom", "RateLimiter" ]
    #new_classes = [ "ChatRoom", "RateLimiter" ]
    
WHEP player
  1. Chat リソースの更新 index.html
    src="http://localhost:62257/#my-live" を公開 URL に置換します。
  2. デプロイ
    npx wrangler pages deploy
    
    log
    :
    ✔ The project you specified does not exist: "whep-00-player". Would you like to create it? › Create a new project
    ✔ Enter the production branch name: … production
    ✨ Successfully created the 'whep-00-player' project.
    ✨ Success! Uploaded 1 files (1.57 sec)
    
    🌎 Deploying...
    ✨ Deployment complete! Take a peek over at https://642b14b1.whep-00-player-3a2.pages.dev
    
  3. Pages Custom Domains の追加
    ダッシュボードで実施します。
    Workers & Pages > whep-00-player > カスタムドメイン
    DNS レコードの自動作成の手順も出てきます。
  4. CORES 関連の調整 index.html
    変更箇所

    資格情報連携のため
    credentials: ‘include’ 追加

            const offer = await fetch(resource, {method: "POST", credentials: 'include'})
    
            await fetch(sessionUrl.href, {method: "PATCH", credentials: 'include', body: answer.sdp})
    

    再デプロイ

セキュリティの適用

WHEP player・WHEP サーバー・Chat の認証認可とシングルサイオン 👉️Access

  1. アカウントホーム > Zero Trust > Access > ポリシー > 再利用可能なポリシー
    認可ポリシーを作ります。
    例: @cloudflare.com のメールアドレスを Allow
  2. Access > アプリケーション
    アプリケーションを作ります。

    セルフホストを選択します。

    • パブリックホスト名(基本情報
      3 つのページ起点で同一の認証トークンによるアクセス制限をかけます。
      live.oymk.work/ wh.live.oymk.work/play/ chat.live.oymk.work/
      WHIP-WHEP server は WHEP サーバー(/play/)のみ対象にしています。
    WHIP サーバー(/ingest/)は WAF で保護

    WHIP サーバー(/ingest/)については、OBS を Access のポリシー(Service token含め)に対応させる方法がわからなかったため、WAF Custom Rules で保護することにします。
    ブラウザーでの配信なら Access で一括できそうです。

    • ポリシー
      1 で作成した認可ポリシーを適用します。
    • CORS(詳細設定 > クロスオリジン リソース共有 (CORS) 設定
      オリジンへのオプション リクエストをバイパスする を有効にします。
      CORES 関連はデモアプリ側で仕込んであるのでそちらにまかせます。
      プリフライトリクエストが通るようにするためです。
    • アプリケーションを保存
      一度作成したアプリケーションを編集した際には押し忘れないようにします。

WHEP player(pages.dev ドメインの回避) 👉️Bulk Redirects

Pages は Custom Domains を利用しても pages.dev を無効にすることができません
デプロイのたびにドメイン名が発行される特性もあるので、自分ドメインに一括リダイレクトします。

  1. Pages ドメインの確認
    デプロイしたときに表示されます。

    展開時の Pages ドメイン

    npx wrangler pages deploy
    
    ? Select an account › - Use arrow-keys. Return to submit.
    :
    :
    🌎 Deploying...
    ✨ Deployment complete! Take a peek over at https://7bc1e776.whep-00-player-3a2.pages.dev
    

    ビルドのたびに頭のラベルが変わります。

  2. 一括リダイレクト
    共通部分 whep-00-player-3a2.pages.dev/https://live.oymk.work/ にリダイレクトします。

    アカウントホーム > 一括リダイレクト

WHIP の認証 👉️WAF Custom Rules

手元の OBS からだけ接続できるようにします。

OBS では Bearer Token をつけれるようです。

設定すると HTTP ヘッダー Authorization: Barer hogehoge でつけてきます。
これは WAF Custom Rules で検証できるので、適用します。

  1. セキュリティ > WAF > Custom Rules
    WHEP サーバー /ingest/*authorization ヘッダー hogehoge を必須にします。

全体の保護 👉️WAF Custom Rules

最後に、デモアプリで全体を保護します。
利用しないパスへのアクセスを落とします。
(cdn-cgi は Cloudflare の RUM を有効にしているので入れました)

  1. セキュリティ > WAF > Custom Rules

結果

全体の保護含め、下記の目的を達成できました。

  • 1秒までの時間差 ✅️
  • チャット機能 ✅️
  • ログイン認証 ✅️

観測

それぞれにアナリティクスやメトリクスがあります。参考に一部抜粋します。
上位プランになるとログや API も拡充されてきます。

Realtime SFU Realtime > サーバーレス SFU > Analytics

WHIP-WHEP Server Workers & Pages > メトリクス

Edge Chat Demo Workers & Pages > メトリクス

Access Analytics > Access


WAF セキュリティ > Analytics

Durable Objects Workers & Pages > Durable Objects
chat-demo_ChatRoom

chat-demo_RateLimiter

whip-whep-server_LiveStore

おまけ

  1. 認証情報の再利用
    JWT で認証情報を連携できるので、WHEP player でログインしたメールアドレスを Chat のログインに使います。

    JWT decode by claude

    chat.html

    
    function getCookie(name) {
      return document.cookie
        .split('; ')
        .find(row => row.startsWith(name + '='))
        ?.split('=')[1];
    }
    
    function parseJwt(token) {
      try {
        const base64Url = token.split('.')[1];
        const base64 = base64Url.replace(/-/g, '+').replace(/_/g, "https://zenn.dev/");
        const jsonPayload = decodeURIComponent(
          atob(base64).split('').map(c =>
            '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
          ).join('')
        );
        return JSON.parse(jsonPayload);
      } catch (e) {
        console.error("Failed to decode JWT:", e);
        return null;
      }
    }
    
    const jwt = getCookie("CF_Authorization");
    const decoded = parseJwt(jwt);
    const emailFromJwt = decoded?.email;
    
    if (emailFromJwt && nameInput) {
      nameInput.placeholder = emailFromJwt;
    }
    
    
    function getAccountPart(email) {
      if (!email || typeof email !== 'string') {
        return null;
      }
      
      const atIndex = email.indexOf('@');
      if (atIndex === -1) {
        return null; 
      }
      
      return email.substring(0, atIndex);
    }
    
    
    const accountPart = getAccountPart(emailFromJwt)
    
    
    function startNameChooser() {
      nameForm.addEventListener("submit", event => {
        event.preventDefault();
        const inputVal = nameInput.value.trim();
        username = inputVal || accountPart;
        if (username?.length > 0) {
          startRoomChooser();
        }
      });
    
      nameInput.addEventListener("input", event => {
        if (event.currentTarget.value.length > 32) {
          event.currentTarget.value = event.currentTarget.value.slice(0, 32);
        }
      });
    
      nameInput.focus();
    }
    
    
    startNameChooser();
    
  2. 生成 AI の組み込み
    Workers AI も組み込んでみます。
    ライブ配信者として一言もらうようにしました。
    無理矢理でいいアイデアが浮かばず、、

  3. Chat も Realtime で
    今回、既存のデモアプリを使いましたが、DataChannles の利用も素直そうです。

    DataChannles でのデータ転送デモを追加すると、動画・音声ブロードキャストの脇で双方向のデータのやり取りが行われました。

    ライブ用の 1 チャンネルに加え、双方向 2 つのチャンネルが開設されていました。

まとめ

やりたいことは一通りできました。

WebRTC WHIP・WHEP のリアルタイム通信を中心に Cloudflare のその他の機能をレイテンシーなく簡単に追加できることも確認しました。

と思っていたら Developer Week 2025 中に RealtimeKit の発表が出ていましたね。

なんか凄そうです。
こちらも期待です。



Source link

Views: 0

「Shadowverse: Worlds Beyond」,テーマソングがキタニタツヤさん書き下ろしの新曲「あなたのことをおしえて」に決定



 Cygamesは本日(2025年4月14日),同社が6月17日に世界同時リリースを予定している「Shadowverse: Worlds Beyond」iOS / Android / PC)のテーマソングに,シンガーソングライターのキタニタツヤさんが書き下ろした新曲「あなたのことをおしえて」を起用したことを発表した。

画像ギャラリー No.002のサムネイル画像 / 「Shadowverse: Worlds Beyond」,テーマソングがキタニタツヤさん書き下ろしの新曲「あなたのことをおしえて」に決定

 また,同曲を使用した新CM映像がゲーム公式YouTubeチャンネルで公開されたほか,キタニさんからのコメントも届いているので掲載しよう。


「Shadowverse: Worlds Beyond」公式サイト

「Shadowverse: Worlds Beyond」予約注文ページ

「Shadowverse: Worlds Beyond」事前登録ページ

<以下,メーカー発表文の内容をそのまま掲載しています>


次世代スマホカードゲーム『Shadowverse: Worlds Beyond』テーマソングが
キタニタツヤ書き下ろしの新曲「あなたのことをおしえて」に決定!
楽曲を使用した新CM映像を解禁!

画像ギャラリー No.001のサムネイル画像 / 「Shadowverse: Worlds Beyond」,テーマソングがキタニタツヤさん書き下ろしの新曲「あなたのことをおしえて」に決定

ゲームの企画・開発・運営事業を展開する株式会社 Cygames(本社:東京都渋谷区、代表取締役社長:渡邊耕一)は、6月17日(火)に世界同時リリースを予定している新作タイトル『Shadowverse: Worlds Beyond(以下、シャドウバース ワールズビヨンド)』のテーマソングに、人気アーティスト・キタニタツヤ氏が書き下ろした新曲「あなたのことをおしえて」の起用が決定したことをお知らせします。また、この度楽曲を使用した15秒の新CM映像を『シャドウバースワールズビヨンド』公式YouTubeチャンネルで公開しました。
キタニタツヤ氏から、楽曲に込められた思いなどのコメントも頂いています。
▼【Shadowverse: Worlds Beyond】テーマソングCM
https://youtu.be/E0X95VNTXvE
■テーマソングに、キタニタツヤ書き下ろしの新曲「あなたのことをおしえて」決定!

画像ギャラリー No.002のサムネイル画像 / 「Shadowverse: Worlds Beyond」,テーマソングがキタニタツヤさん書き下ろしの新曲「あなたのことをおしえて」に決定

次世代スマホカードゲーム『シャドウバース ワールズビヨンド』のテーマソングに、キタニタツヤ氏が書き下ろした新曲「あなたのことをおしえて」の起用が決定しました。
本作は、対戦型デジタルTCG『シャドウバース』の新作タイトルとして2025年6月17日(火)にリリース開始予定です。テーマソングとなる「あなたのことをおしえて」は、ゲーム内でプレイヤーを迎える重要な楽曲として位置づけられており、キタニタツヤ氏特有の疾走感溢れるサウンドが、一新される“シャドウバース”の世界を彩ります。
本作では「超進化」や「エクストラPP」といった新要素や、作成したアバターを動かしてオンライン空間上で他ユーザーとカードバトルを楽しめる「シャドバパーク」など、進化したゲームプレイが楽しめます。
キタニタツヤ氏による楽曲と共に、ぜひ新たな『シャドウバース』の世界をお楽しみください。
■キタニタツヤ氏から、楽曲に込めた思いなどコメント到着!
大きな力に翻弄されながらも少しずつそれに抗い、悲しかったこと、苦しかったことを糧に、胸の奥に抱えた理想で現実をささやかにでも上書きしていく。
そんな小さな革命が私たちの日常の中にはたくさんあって、ドライツェーンの姿はその象徴のように映りました。「あなたのことをおしえて」はその革命を鼓舞するものであるようにと作った歌です。
『Shadowverse』という歴史あるゲームのテーマソングを担当させていただけて光栄です。
ぜひゲームとともに、この楽曲も長く聞いていただけると幸いです。

画像ギャラリー No.003のサムネイル画像 / 「Shadowverse: Worlds Beyond」,テーマソングがキタニタツヤさん書き下ろしの新曲「あなたのことをおしえて」に決定

「Shadowverse: Worlds Beyond」公式サイト

「Shadowverse: Worlds Beyond」予約注文ページ

「Shadowverse: Worlds Beyond」事前登録ページ



Source link

Views: 0

SIXPAD、新商品で「事前準備不要」新構造–手軽さ追求、4/16発売 – CNET Japan


 「SIXPAD(シックスパッド)」ブランドを展開するMTGは4月、個人向けの新商品「SIXPAD Core Belt 2(シックスパッド コアベルト2)」「SIXPAD Abs 2(シックスパッド アブズ2)」「SIXPAD Medical Core(シックスパッド メディカルコア)」「SIXPAD Leg Belt 2(シックスパッド レッグベルト2)」を発表した。

 お腹まわりに巻いて腹筋、脇腹、背筋(下部)を同時に鍛えるCore Belt 2と、腹筋を集中的に鍛えるAbs 2、腰専用のMedical Coreは、4月16日に発売。太もも向けのLeg Belt 2は6月24日に発売する。

  1. 使用したいときに”巻くだけ”–新構造「アルトダイン」
  2. 太もも向け「Leg Belt 2」は6月発売

使用したいときに”巻くだけ”–新構造「アルトダイン」

 腹直筋、腹斜筋、背筋下部にアプローチするCore Belt 2は、価格(以降、全て税込)が4万4990円で、筋肉を効率的に鍛える23分の20Hzモードと、トレーニング前後のケアに適した30分の4Hzモードの2つを備える。レベルは0~20の21段階。

 腹直筋にアプローチするAbs 2は2万9920円で、23分の20Hzモードのみを搭載。レベルは1~20の20段階となる。

 Core Belt 2、Abs 2ともに、男女兼用のS、M、L、LLの4サイズを用意する。2022年4月発売の前モデル「SIXPAD Powersuit Core Belt(シックスパッド パワースーツ コアベルト)」と比較してEMSの出力を向上させつつ、電極を密着させられるウエスト調整コードを採用。パワフルな体感を叶え、更なるトレーニング効果が期待できるとしている。

 腰専用のMedical Coreは5万3800円。20Hzと100Hzの周波数が交互に刺激する23分のトレーニングプログラムでは、腹直筋、腹斜筋、広背筋(下部)、脊柱起立筋(下部)のアウターマッスルと、腹横筋、腸腰筋、多裂筋(下部)のインナーマッスルを効率的にトレーニングできる。また、2~50Hzの周波数を組み合わせた12分のコンディショニング・プログラムも用意する。レベルは0~20の21段階で、腹部と背部で刺激レベルを変えることが可能だ。

 ウエストが63~71cmのS、72~82cmのM、83~103cmのLの3サイズを用意し、内蔵プレートとサポートバンドの2つのサポート機能で、腰をしっかり支えながらトレーニングできるとしている。

 4月16日に発売するCore Belt 2、Abs 2、Medical Coreでは、新開発したサウナスーツ構造の電極構造「アルトダイン」を採用。保温性と気密性の高い生地で身体から出る熱を閉じ込めて発生する水分(汗)によって通電するため、使用したいときに”巻くだけ”という、手軽さを追求したモデルだ。

 MTG SIXPAD開発部 開発1課 課長 澤野正成氏は、アルトダインの開発までの経緯を振り返る。ブランド誕生当初は8~9割が水分となるジェルシートの電極を採用していたが、ジェルシートの交換の手間、月々のランニングコストといった課題があったという。

 その後の2021年、水を吹きかけて通電する布製電極「エレダイン」を搭載し、ジェルシートの課題に対応した。しかし、さらなる課題があったと話す。

 「(エレダインにより)消耗品が必要なくなり、多くの喜びの声をいただいた。しかし、特に冬場はお湯を用意しても、吹きかける頃には非常に冷たくなってしまう。アルトダインではユーザー自身の肌から出る水分を活用するため、電極や肌を濡らす必要がない。冷たさを感じずに商品を身体に装着し、すぐにトレーニングを始められる」(澤野氏)

太もも向け「Leg Belt 2」は6月発売

 太もも向けで6月24日に発売するLeg Belt 2は、4万9940円。周波数は20Hzで両脚用に1セット(本体2枚、コントローラー2台)を同梱し、1日1回15分の独自トレーニング・プログラムを搭載する。

 電極が当たる肌の部位をウェットティッシュなどで湿らせ、太ももを一周するように本体を装着すれば、ワンタッチの操作でトレーニングを開始可能。大腿四頭筋、ハムストリング、内転筋を効率的かつ両脚同時に鍛えられる。トレーニング後は本体を洗濯機で洗うことができ、清潔な状態を保てるとしている。

 サイズはS-M、M-Lの2種類。カラーはグレーのみとなる。


Leg Belt 2
Leg Belt 2

※クリックすると拡大画像が見られます

MTG News(Core Belt 2、SIXPAD Abs 2)
MTG News(Medical Core)
MTG News(Leg Belt 2)

Amazonで現在開催中のセールを見る





Source link

Views: 0

OWCの「Thunderbolt 5 Hub」が店頭入荷、Thunderbolt 5×3とUSB Type-Aを増設



 Thunderbolt 5対応ハブがOWCから登場、「OWC Thunderbolt 5 Hub(OWCTB5HUB5P)」が、秋葉館に入荷。



Source link

Views: 0

この価格で全部入り!? 超薄型なロボット掃除機DEEBOTコスパモデルで快適さ実感 – 家電 Watch[Sponsored]


エコバックス「DEEBOT T50 OMNI」をレビュー

「ロボット掃除機が欲しいと思いながら、結局買わずじまいになっている」――最近そんな悩みをよく聞くようになりました。理由は様々ですが、やはりネックになっているのは値段です。

近年はロボット掃除機の進化が目覚ましく、吸引掃除と同時に水拭きもできる2in1タイプの中には、ゴミの回収からモップの洗浄乾燥まで自動で行なってくれる“全部入り”の高機能モデルが増えていますが、ハイエンドクラスともなると20万円近いものもあるのです。

そうなると逆に「いいものを買おうと思ったら、やはりそれぐらい出さないとダメなのか」と躊躇してしまうのかもしれませんが、そんな人におすすめしたいロボット掃除機を見つけました! エコバックスの「DEEBOT T50 OMNI」です。

“全部入り”なのに値段は129,800円、さらに当面はセール価格で10万円を切る99,800円で購入できるというだけでもお得感があります。

そして大事なのは、もちろん価格だけでなく、これを実際に使ってみると生活がどれだけ快適になりそうかということ。悩んでいる方は、なぜこのモデルがおすすめなのか、この製品がどんな困りごとを解決してくれるのか、この記事を参考にしてみてください。

圧迫感なく置けるコンパクトな充電ステーション

前述のようにエコバックス「DEEBOT T50 OMNI」は、ゴミを吸引しながら水拭きもできる2in1タイプのロボット掃除機です。「OMNIステーション」と呼ばれる充電ステーションには、ロボット掃除機のゴミを収集し、水拭きモップを洗浄して乾燥まで行なってくれるという高機能機レベルの特徴を備えています。

さっそくセットして気づいたのが、充電ステーションが結構コンパクトなこと。最近は高機能化に伴って充電ステーションが大きいものが増えてきましたが、これならスッキリ置けるので、部屋の中であまり圧迫感はなさそうです。

今までいくつかのロボット掃除機をこの場所に置いてきましたが、ひとまわりコンパクトでスッキリ見えます

さらにロボット掃除機本体も薄型です。直径は約35.2cm前後と一般的ですが、高さが約8.1cmと薄いため、低い家具の下にもすんなり入り込めそう。効率的な掃除のためにマッピング(部屋の間取りから地図を作成)できるロボット掃除機の中には、本体の天面に「LiDAR」と呼ばれるセンサーを載せているものも多く、そのぶん高さが出てしまうのですが、DEEBOT T50 OMNIはLiDARを本体に内蔵することで、薄型化を実現したそうで、見た目もスッキリしたフラットな形です。

高さは約8.1cmと薄型なので家具の下にも入りやすいのが魅力

本体裏を見てみると、2つのモップと1つのサイドブラシ、そして吸い込み口には「V字型スパイラルブラシ」が搭載されています。これは「ZeroTangle 2.0テクノロジー」と呼ばれる技術で、毛の絡まりを最小限に抑えてくれるとのこと。実際にどれだけ毛が絡まないのか気になりますね。後ほど実力をチェックしていきます。

向かって左上のサイドブラシが隅のゴミを集め、中央の吸い込み口から吸い込み、2つの回転モップで床を拭き上げます

きめ細かい設定もアプリで簡単

さっそく使ってみましょう。DEEBOT T50 OMNIは高いマッピング技術「True Mapping 2.0」を搭載しており、そのマップを確認したり、掃除の強度や掃除順序など細かい設定をするためには、アプリ連携が必須です。

まず専用アプリ「ECOVACS HOME」をスマホにダウンロードし、本体とWi-Fi接続したら、間取りを覚えさせるために一度走らせます。するとわずか5分で、自宅1階の全フロアをチェックしてマップを作成。位置が正確なだけでなく、部屋割りもきっちり合っているのには感心してしまいます。

あっという間に間取りを読み取り、数回使うとカーペットの位置や段差(わが家の場合は玄関)を認識し、マップに書き込んでくれます。部屋の名前や家具の配置は自分で設定しました

水拭き掃除は、モップを本体タンクの水で濡らして床を強力にモップがけします。充電ステーションに帰ってきたときにはモップを洗い、汚れた水はもう1つの汚水タンクに回収。ここまで自動でお任せできる仕組みです。

充電ステーションには清水タンク(右)と汚水タンク(左)がそのまま乗せてあります。カバーを外したりフタを開ける手間もありません。容量は各4L。この清水タンクにあらかじめ水を入れておきます

ちなみにその下には、収集したゴミをためておく紙パックが設置されていました。人によるゴミ捨て(紙パックの交換)は、約2カ月も不要とのことです

アプリを操作し、「吸引とモップがけ」「吸引力標準」「水量中」「清掃速度標準」「回数1回」と設定して、全体掃除をスタート。これらの設定は1つずつ変更できるので、しっかり掃除したいときは、より丁寧な掃除方法を選択できます。

モップを濡らした掃除機は、周囲は見向きもせずに、まっすぐランドリールームへ。ゴミを吸引するとともに、2つのモップを床に押し付けながら毎分180回転させて掃除していきます。

掃除は部屋ごとに行なってくれます。今回はランドリールームからでしたが、順番を変えることも可能

続いて廊下の掃除が始まりました。壁際を掃除する際は、壁側のモップがニュッと飛び出て、壁際にアプローチしようとしているのがなんとも賢く、生き物のようでかわいらしい。

そもそもモップは本体の下にあるため、一般的には壁際掃除だと本体が先に壁へ当たり、モップが届きにくいという弱点があります。それを解消すべく、モップを伸ばして隅まで掃除する「TruEdge 2.0 アダプティブエッジクリーニング」技術を搭載しているのです。

伸びるモップだから、部屋の壁際まで水拭きしてくれました

さすがにすべての壁際や隅へ届くわけではありませんが、かなりギリギリまで攻めてくれるので満足感は高いですね。さらに掃除機本体が低いため、自分では掃除しにくい棚の下もしっかり掃除してくれました。

自分ではあまり掃除しない家具の隙間は、完全にお任せです

フローリングの砂もカーペットの犬の毛もぐんぐん吸い取る

もう一つ気になるのはロボット掃除機の基本性能ともいえる吸引力。本機はなんと15,000Paの強力な吸引力を備えています。この数字だけ見てもすごさはわかりにくいかもしれませんが、最近までハイエンドモデルが10,000Paもあってすごい、といわれていた印象なのに、このクラスですでに15,000Paを達成しているとは、吸引力はどこまで上がるんだ……。

試しに床にカラーサンド(砂)を撒いて、「吸引&水拭き」モードで掃除してみました。すると、ちょうどテレビ台のそばだったこともあり、モップを伸ばしつつ、少しでも隅を掃除しようと体をふりながら掃除するけなげな姿が! もちろん砂もしっかり取り除いてくれています。最初は一部、モップとモップの間に残ってしまったのが気になりましたが、戻ってきたときに取り除いて、すっかりきれいになりました。

細かな砂も吸引&水拭きでスッキリ取り除いてくれました

この吸引力はカーペットでも発揮してくれました。筆者宅ではリビングの一部にカーペットを敷いていて、愛犬がよく寝そべっているので、犬の毛もしっかり取れる吸引力は求めたいところ。そこでトリミングした犬の毛をカーペットにこすりつけて掃除させてみたところ、少し残ってしまったものの9割以上取り除いてくれて大満足です。

ちなみに「吸引&水拭き」モードで掃除していても、掃除機がカーペットを検知したら水拭きをやめて、カーペットを濡らさないようモップを9mm持ち上げてくれます。カーペットの毛足が長い場合は気を付けた方が良いですが、わが家のカーペットは、問題なく、カーペットを濡らさずに掃除できました。

毛がからまず、掃除後の手間もロボットにおまかせ! ニオイもせず安心

掃除が終わると掃除機は充電ステーションに戻って、自動ゴミ収集やモップ洗浄を行ないます。部屋の間取りや掃除する時間帯によっては、使っていくたびに、我が家に合わせた設定に調整したくなるものですが、充電ステーションで行なう作業も、実はアプリで細かく設定できます。たとえば、ゴミ収集を静かに行なってほしい場合は「静音」に、モップパッドを温水で長めに洗浄してほしいときは「ディープ」に。

モップ自動洗浄をする頻度も、部屋別もしくは時間別に設定することができます。確かに、部屋の汚れ具合によっては、汚れたモップで家中を掃除すると、かえって汚れを広げてしまう可能性もあるので、掃除中に何度か洗浄に戻ってくれるのは安心ですね。

アプリでは掃除の強度の設定(左)のほか、ステーションの設定も細かく行なえます

充電ステーションに帰還したら、まずはゴミを自動で収集。さらにモップを70℃のお湯で除菌しながら洗浄し、45℃の温風で乾燥してくれます。この温水洗浄&温風乾燥がとてもよく、ほったらかしでも雑菌臭がしなかったので、衛生面でも安心ですね。

そんなわけで掃除終了後も、自分で行なうことは基本ゼロ! アプリを操作したり、数日に1回、汚水を捨てて清水を補充する以外やることがありません。

やることといえば、ブラシに絡まった毛を取り除くことかと思っていましたが、5回ほど使用した後に見てみたところ、本当に毛が絡まっていない! わが家はたいてい、掃除機をかけると犬の毛と筆者の長い毛がブラシに絡まっているのですが……。

なぜ毛が絡まらないのか。それはV字スパイラルブラシの形状によるもので、ブラシに巻き付いた毛は徐々に中央に集められます。さらにV字型のコームが髪の毛の絡まりをほぐし、掃除機内に吸い込まれていくという仕組みだそうです。

普通のロボット掃除機だと、気づけば毛がびっちりと絡まり、カッターで切らないと取れなくなることもあるブラシなのに、見ての通り絡まりナシ! 最初から絡まりにくいのはありがたいですね

さらにもう1つ、メンテナンスフリーの快適さを実感する部分がありました。それは充電ステーション奥にあるモップ洗浄部分が、汚れていないということです。

筆者もこれまで、モップ洗浄機能付きの充電ステーションを複数使ってきましたが、使い続けるうちに、ここにゴミや汚れがたまることが多く、定期的にお手入れする必要がありました。でも本製品は、モップ洗浄部分の自動洗浄機能まで搭載されているので、まったくゴミがたまっていませんでした。

モップは洗浄してくれるけど、洗浄した場所が汚れてしまう、という悩みも解決してくれました!

この価格でここまでできるとは! 満足度の高いコスパモデルです

以上のように、とことん便利な機能を搭載したDEEBOT T50 OMNI。筆者自身、ハイエンドからエントリーモデルまで幅広く使ってきましたが、これはもはやハイエンド寄りなのでは、と思えるほど高性能。独自の音声アシスタント「YIKO」対応で、声だけでの操作も可能です。

もちろんハイエンドに及ばないと感じた点もあります。たとえば、吸引力はハイエンドのほうがパワフルに感じましたし、障害物の認識能力も高いです。ほかにもハイエンドにしか搭載されていない優れた機能もあるので、最高レベルが欲しい人は、予算に応じてハイエンドなモデルを選ぶのもいいでしょう。しかし、それらがないからといって掃除能力や、掃除後の達成感が劣るとは限りません。

おそらくロボット掃除機をはじめて使った人、数年ぶりに買い替える人がこの「DEEBOT T50 OMNI」を見ると、ロボット掃除機の進化に驚くとともに、ストレスなく毎日使えて価格以上の価値を実感できるモデルといって間違いないでしょう。

ペットの毛や床の汚れに困っているペットオーナーにもおすすめしたい1台です

AmazonスマイルSALE ゴールデンウィークでお得に!

セール期間:4月18日(金)9時~4月21日(月)23時59分
通常販売価格:129,800円
セール価格:99,800円
家電 Watch 5% OFFクーポンコード: KADENT50
割引後の購入価格:94,810円

(提供:エコバックス)





Source link

Views: 1

米、医薬品・半導体関税で4月1日に調査開始 – The Wall Street Journal発



米、医薬品・半導体関税で4月1日に調査開始 - The Wall Street Journal発

米、医薬品・半導体関税で4月1日に調査開始 – The Wall Street Journal発



Source link

Views: 0

2500万の中古戸建を“住める状態”に大胆リフォーム ビフォーアフターと“内訳”に「とっても素敵!」「どこでやったか教えてほしい」



2500万の中古戸建を“住める状態”に大胆リフォーム ビフォーアフターと“内訳”に「とっても素敵!」「どこでやったか教えてほしい」

全貌をご覧ください。



Source link

Views: 0