リクエスト内容は下記のように設定します。上で設定した外部公開サーバーのURLを指定してください。テスト時にレスポンスが返ってこないので、適当に何か入れておきます。レスポンスを確認できます。横のクリップボードを押すと、変数の参照をコピーできます。変数として格納したい時に使います。リクエストを送ってみます。連携と関係なくなってくるので、割愛します。簡単に会話を作れるので、好きに作りこんでみてください。いちおう、こんな感じのが作れます。変数の分岐をする場合は右辺のタイプをExpressionにします。PC上でテストできます。押すとチャットで会話がはじまります。Alexaデバイスとリンクしてビルドすれば、ちゃんと会話してくれます。Twitterにおいてこの方@yukihiko_aのツイートを拝見し、自分のPCでやってみた際の導入方法について説明します。3次元姿勢推定の進捗。Barracudaで実装しています。こちらのコードをGithubにアップしました。16GBにおいて実際において三次元姿勢推定を行いました。英語での導入方法に関しては以下のgithubのREADME.mdにおいて詳しく説明していただいています。今回は日本語での説明及び、自分の環境においてつまずいた点を記載したいと思います。3次元姿勢推定の続き。最新のコードを会社のリポジトリに公開しました。2020パフォーマンスのレポートとして以下のようになっています。FPS(GithubにおけるプロジェクトのREADME.mdに記載されていました。)必要なプロジェクト及びファイルのダウンロードgithubから自身のPCにプロジェクトのダウンロードももしくはクローンを行います。Githubのリンク次にonnxを以下のURLをクリックすることによってダウンロードを行います。Editorを用いてUnityのプロジェクトを開きます。ファイルを置きます(画像の位置)。Typeへの変換も自動的に行なわれます。Sceneフォルダの中にあるSampleSceneを開きます。save"を選択してください。モデルの設定を行います。(Unity側での作業1における画像の右側)4.デバックを行うことによって実際に三次元姿勢推定を行うことが出来ます。Clipに置くことによって推定を行う動画の変更も行うことが出来ます。Cam"にチェックを入れることによってWebカメラを用いたリアルタイムでの推定を行うことが出来ます。自分がつまづいた点について今回自分の環境において導入する際に少しつまづいた点として挙げられるのが、Unityのバージョンについてです。自分の使っていたバージョンでは、動作することが出来ませんした。2019.2.12f1を用いることによって導入することが出来るようになりました。まとめWebカメラや動画を用いた三次元姿勢推定をPC及びUnityで行うことが出来るようになりました。自身でも動画を撮ってみて推定を行いましたが、とても制度が高かったです。シンプルに使うやりかたは、前の記事に書いたとおりです。ファイルの中身があっさり書き換えることができるのは、ちょっと......って思うなら暗号化がベスト。ライブラリーをコンパイルする道を選択したのと同じことだと思います。なんかがライブラリーの中に入ってくると邪魔になります。関数を呼び出してるだけです。ファイルを作る必要があると思います。4パターン)このあたりを記事にまとめたので、ショートカットをメモ。コンパイル)ビギナーなので、間違いがあったらすいません。時点では、数が少ないので、もうすこしネタが増えると嬉しく思います。省メモリ高速バグが起きにくいため(特に海外に多い)損害賠償等に強いデフォルトがReadOnly省メモリメモリや容量はゲーム開発をする上で一番大切な概念です。以前の記事を参照してください。ゲーム開発における言語はC,C++,C#,Python,Luaが殆ど全てといっていいほどです。Pythonは遅いですが、オブジェクト指向で書けるスクリプト言語且つ演算子オーバーロードが利用でき且つ省資源であることを考えると良い選択肢であるということを示しています。それ以上に遅い言語はPHP,ShellScript,PowerShell等の特定の物に特化した有名言語,scratch等の子ども用の言語くらいだと言われています。高速Rustの速度はCと同じかそれよりやや遅い、C++(の多くのコンパイラ)より速いのでとても高速に動作します。MLのようなマクロや束縛等で最適化しやすいためという理由もあります(高速なライブラリの、readonlyを利用したインラインconst化)。C++のような"std","演算子オーバーロード",C#のような"const","for","use","ジェネリクス","型推論"等のゲームエンジニアがよく利用するであろう機能が存在します。stringについては組み込み型(str)とstd::string::Stringが存在します。C#もGCを省いた速度(GCが無ければ起動3秒後以降、C++の1.1倍くらいしか速度が変わらない)では問題がないですが、いつ起こるかわからないのでそこら辺の管理が大変です。C#やJava並みに可読性が高い且つ、C++やC#の慣れている人だと学習コストが低いのでメリットが多いです。バグが起こりにくいこれは意外に重要です。ゲームで実行時バグだったりクソゲーだったりも多いですが、その原因の多くはバグを生みやすい自由度にあります。多くは、マクロやtemplateや多重継承やgotoやdelateし忘れ等がいい例です。ゲームエンジンを使わない多くの場合組み込みエンジニアのようにアセンブラ他でハードウェア毎の実装をしなくてはなりません。ハードウェア->抽象化->プログラム->具体化->ゲーム->抽象化->プログラム->具体化->ハードウェアこれは多くの場合ゲームを作ることが目的になり、(ほんの少数の天才以外は)感性で面白いと感じるゲームを作ることが後回しになることが多かったのでゲームエンジンが生まれました。一つの文やオブジェクトで具体→抽象→具体と三段階踏まないとならないのはとても頭を使います。プログラム->具体化->ゲーム->抽象化->プログラムこうなると理性に使っていたリソースを感性に使うことができるので、作っている途中にクソゲーだと気が付きわかりやすいので、客からの信用を落とさずに済みます。バグの多くもエンジン側によって最適化処理されているためマシです。これにも問題があります。マクロの使用や無駄なtemplateの使用や多重継承やgotoの使用やdelateし忘れが発生している可能性が秘めているという点です。これを解決するであろうRustは非常に純粋で美しくC++erに優しい仕様となっています。これら問題は全てRustが解決し、ifは式、安全で高速、変数は束縛(下で詳しく話します。)というゲーム利用に最適化された機能がある点にも注目できます。Unityがゲームエンジンではないと声高に叫んでいるバカがいたのですがUnityはゲームエンジンです。UnityでもC#でのGC特有の問題も存在します。デフォルトがReadOnlyグーグルのC++ガイドラインで理にかなっているのならば、常にconstを使ってください。C++11では、いくつかのconstは、constexprを使うほうがよりよい選択です。autoだらけになることも多いのではないでしょうか?const_castを使うことも多いので、束縛は重要です。ReadOnlyの方が大胆な最適化が可能です。従って今後はゲームにRustを使うことになるのではないかと思っています。Rustの束縛はreadonlyを利用したインラインconst化で高速です。『Player』に対するオントリガーエンターなどは反応しない。子オブジェクトのコライダー3つに対してタグ付けしたほうが良い。自分が所属している同人サークル「RomanesqueFreaks」のブログで書いてたんですけど、Unityの導入部分くらいはこっちにも書いちゃおうと思ったので、書きます。Hubをダウンロード」を選択してダウンロードしてください。exe/dmgを実行するとHubがインストールされます。テキストエディタのインストールUnityでの開発は主に、Unityのエディタを開きながらオブジェクトを配置したりして、それに対してC#を別のテキストエディタで書いていく、という流れになります。Studioがとても強いのでインストールしてみましょう。今回は個別にインストールしますが、もともと入っている場合はそれを使うことができるので、この手順はスキップしてください。Environment)と呼ばれる高機能なエディタです。そのためPCのスペックが高くない時には、処理が重く大変になるかもしれません。Studioの低機能軽量版での開発をお勧めします。自分も一時期この環境で開発してました。エディタのインストールの手順に入ります。Hubを実行し、「インストール」をクリック。インストール済みUnityのメニュー(グレーの3つの点)を選択。Mac」を選択し、「次へ」を押す。すると規約が表示されるので、了承できる場合は「実行」を押すとインストールが開始されます。自分が所属している同人サークル「RomanesqueFreaks」のブログで書いてたんですけど、Unityの導入部分くらいはこっちにも書いちゃおうと思ったので、書きます。Hubをダウンロード」を選択してダウンロードしてください。exe/dmgを実行するとHubがインストールされます。テキストエディタのインストールUnityでの開発は主に、Unityのエディタを開きながらオブジェクトを配置したりして、それに対してC#を別のテキストエディタで書いていく、という流れになります。Studioがとても強いのでインストールしてみましょう。今回は個別にインストールしますが、もともと入っている場合はそれを使うことができるので、この手順はスキップしてください。Environment)と呼ばれる高機能なエディタです。そのためPCのスペックが高くない時には、処理が重く大変になるかもしれません。Studioの低機能軽量版での開発をお勧めします。自分も一時期この環境で開発してました。エディタのインストールの手順に入ります。Hubを実行し、「インストール」をクリック。インストール済みUnityのメニュー(グレーの3つの点)を選択。Mac」を選択し、「次へ」を押す。すると規約が表示されるので、了承できる場合は「実行」を押すとインストールが開始されます。続く(2月下旬執筆予定)TweetQiitaで続きを読む投稿日:2020-02-14T12:21:13+09:00【Unity】Sceneを切り替えるコードこれでスタート画面やエンド画面を作ることができる!!例では、SPACEキー押下で、SceneStartというSceneファイルへ遷移するようにしている。背景がループするようにした。普通の敵の動作を作成し、その敵が3秒ごとに生成される。瞬間移動する敵の動作を作成し、5秒ごとに生成する。プレイヤーが画面の範囲外に行かないようにした。敵とプレイヤーが衝突したらプレイヤーが消滅する。分散攻撃の敵を実装する。タイトルシーンとエンディングシーンを追加する。プレイヤーがダメージ受けると点滅して数秒だけ無敵状態になる今後やることボスキャラの動作を実装する。エフェクトとBGMを追加する。プレイヤーが横に移動すると機体が傾くアニメーションをつけるこの記事では赤い部分を作成した。Clipの中で設置するひし形のものをキーという。Clipを編集するが、傾きをrotateで表せばいいと思っていた。0.10,0.20,0.30の位置にY軸にそれぞれ30,40,50で回転させたキーを置いた。実行してみるとボタンを押したときに回転するが、なぜか少ししたらプレイヤーの機体が消えてしまう。原因を調べてみたらどうやらZ座標がマイナス方向に増えていってしまい、カメラよりも後ろにプレイヤーの機体が行ってしまっていることが分かった。30や40に傾けた上でtranslateで移動しているのでz軸方向にも移動してしまったと思われる。Editorを用いることで余計な部分から切り抜いた。Clipに以下のようにそれぞれ配置する。Controllerで遷移させる。Controller上にドラック&ドロップする。このとき遷移させる条件を指定しないといけないので左上のParametersから[+のマーク]→[Bool]を選択する。falseにすることで遷移させることができる。Durationを0にするConditionsの+マークをおして遷移条件を作成する。true)でParameter"left_long"をtrueにするので左に傾くアニメーションを流す。タッチされているかチェックする。Input.GetTouch(0)は長押しなどのタッチされた時の状態を取得している。TouchPhase.Endedは「指を話したとき」の判定をしている。これでできたのが以下になる。これ簡単にみえるけどつまづいたところを調べたりしてかなり時間かかってしまった。これであとはボスを作るだけになった。背景がループするようにした。普通の敵の動作を作成し、その敵が3秒ごとに生成される。瞬間移動する敵の動作を作成し、5秒ごとに生成する。プレイヤーが画面の範囲外に行かないようにした。敵とプレイヤーが衝突したらプレイヤーが消滅する。分散攻撃の敵を実装する。タイトルシーンとエンディングシーンを追加する。プレイヤーがダメージ受けると点滅して数秒だけ無敵状態になる今後やることボスキャラの動作を実装する。エフェクトとBGMを追加する。プレイヤーが横に移動すると機体が傾くアニメーションをつけるこの記事では赤い部分を作成した。Clipの中で設置するひし形のものをキーという。Clipを編集するが、傾きをrotateで表せばいいと思っていた。0.10,0.20,0.30の位置にY軸にそれぞれ30,40,50で回転させたキーを置いた。実行してみるとボタンを押したときに回転するが、なぜか少ししたらプレイヤーの機体が消えてしまう。原因を調べてみたらどうやらZ座標がマイナス方向に増えていってしまい、カメラよりも後ろにプレイヤーの機体が行ってしまっていることが分かった。30や40に傾けた上でtranslateで移動しているのでz軸方向にも移動してしまったと思われる。Editorを用いることで余計な部分から切り抜いた。Clipに以下のようにそれぞれ配置する。Controllerで遷移させる。Controller上にドラック&ドロップする。このとき遷移させる条件を指定しないといけないので左上のParametersから[+のマーク]→[Bool]を選択する。falseにすることで遷移させることができる。Durationを0にするConditionsの+マークをおして遷移条件を作成する。true)でParameter"left_long"をtrueにするので左に傾くアニメーションを流す。タッチされているかチェックする。Input.GetTouch(0)は長押しなどのタッチされた時の状態を取得している。TouchPhase.Endedは「指を話したとき」の判定をしている。これでできたのが以下になる。これ簡単にみえるけどつまづいたところを調べたりしてかなり時間かかってしまった。これであとはボスを作るだけになった。