サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
am1tanaka.hatenablog.com
2023/8/18 あれこれ調べてprivate変数の前に_を付ける記法はまだ採用が少なかったので元に戻しました。 2023/8/17 情報が古くなったので一部改訂しました。 プライベート変数はキャメルケース → _からはじまるキャメルケース 2023/8/18に取り消し パブリック変数は原則としてプロパティーにすることを追記 変数は名詞、インターフェースは形容詞、関数は動詞からはじめる、boolは疑問形にする イベントの命名ルールを追記 この記事は、Unity #2のカレンダー | Advent Calendar 2019 - Qiitaの7日目の記事です。 qiita.com 前日の記事は、@ma_shさんのGraphView完全理解した(2019年末版) - Qiitaでした。 qiita.com 色々な言語を渡り歩いていたことで、変数名やら関数名の書き方になんとなくルールはあるけど
Unityで機械学習(Machine Learning)が使えるML-Agentsについて、1年前に導入の記事を書きました。あれから大幅に変更されて、動作環境やセットアップ手順が変わったので、2018年11版としてまとめ直します。 トレーニング時に、待ちすぎると待機が終わる注意を追記(2018/11/9) TFSharpのインポート時に、必要がなければAndroidとiOSのチェックを外すとよいというコメントを追記(2018/11/8) 目次 目次 Unity ML-Agents Toolkit (Beta)について 機能 インストール手順 インストール手順概要 Unity2017.4以降のインストール ML-Agentsツールキットリポジトリーのダウンロード UnitySDKフォルダー ml-agentsフォルダー gym-unityフォルダー Pythonとmlagentsパッケージの
2019/7/28現在、この記事の内容が古くなっていたので以下にPhoton Bolt 1.2.9対応に書き直しました。以下のリンク先の記事をご覧ください。 am1tanaka.hatenablog.com アドベントカレンダー1日目(12/1)の記事です。 ゲーム画面 明日はRaspberlyさんの3Dモデルの影を別の影に差し替える - Raspberlyのブログです! (2018/12/12 Network Rateの設定で動きを滑らかにすることと、Boltアイコンの消し方について追記しました) (2018/12/7 PUNのvelocityの同期について追記しました) 目次 2019/7/28現在、この記事の内容が古くなっていたので以下にPhoton Bolt 1.2.9対応に書き直しました。以下のリンク先の記事をご覧ください。 目次 Photon Boltとは 注意点! 目的 前提
共同作業にはGitHubが便利ですが、複数人数でプライベートリポジトリーを使おうとすると少々のコストが発生します(学生であれば無料でプライベートリポジトリーやチームが使える学生アカウントを使える可能性があるので、学校に問い合わせてみてください!) ちょっと練習したい、とか、完全な非営利のプロジェクトだし、とか、不幸にもGitHubの学生アカウントの登録に協力してもらえない学校の学生だったとかの場合、代替手段としてBitBucket (ビットバケット)やGitLab (ギットラボ)を使うことで同様のことが可能になります。 BitBucketの登録から、プライベートリポジトリーを作って、SourceTreeにクローンするまでの手順をまとめます。 目次 目次 前提 BitBucketとは BitBucketのアカウントを作成する プライベートリポジトリーを作成する SourceTreeをインスト
プログラムコードに行番号を表示したかったので、はてなブログのカスタマイズの勉強がてら作成してみました。 出来上がりは以下のような感じ。 let hello = "Hello!"; console.log(hello+"行番号!"); ブログデザインのカスタマイズで、フッターにJavaScriptを追加と、奇数行の背景色が変わるようにCSSを設定しました。 (2017/4/15 フリープランのスマホレイアウトだとフッターにJavaScriptが設定できず、行数指定がおかしくなるので// 数字:の書式を追加) 以下、手順です。 手順 はてなにログインしたら、(1)アカウントをクリック > (2)ブログを選択 > (3)デザインをクリックします。 デザイン設定画面に切り替わるので、(1)設定アイコン > (2)フッタ > (3)その下のコードをクリックします。 「HTML を記述できます」の欄に
ようやくUnity2018.1に手をつけたところ、PostProcessing Stack v2でつまづいたのでメモです。 ※PPS用のレイヤー追加を手順に加えました(2020/8/2) 目次 目次 PostProcessing Stack v2の初期設定 PostProcessing Stack v2をプロジェクトに追加 Cameraにレイヤーを設定 Trigger Layer Anti-aliasing Stop NaN Propagation Post-process Volumeを設定 Post Processを設定する Bloomが使えない ? オブジェクトを輝かせる まとめ 参考URL PostProcessing Stack v2の初期設定 Asset Storeにある古いやつと比べると少し手順が増えているので、公式ドキュメントに沿った手順です。 PostProcessing
github.dev7.jp 上記のだいし様の記事に、操作に慣れていない人向けの補足を加えた記事です。BlenderやUnityが使える場合は元の記事で十分だと思います。 (2018/3/28 Blenderで、Subdivideする前に頂点をマージすると、形が崩れることがあったので、手順を逆にしました) (2018/3/28 MagicaVoxelでOBJファイルをエクスポートする前に、Saveする手順を追加しました。これをやらないとエクスポートできないことがあったための対応) (2018/3/27 BlenderでEdit Modeにしてモデルを選択する前に、Outlinerで一度キャラクターを選んでおかないとアーマチュアが選択されてしまうので、手順を追加) 目次 目次 前提 MagicaVoxelへの素体の読み込み方法 必要なファイルのダウンロード MagicaVoxelに素体をイン
この記事はすでに古くなっています。以下の2018/11版の方をご覧ください。 am1tanaka.hatenablog.com Unityで機械学習を利用できるようにするUnity公式のml-agentsをWindows7で動かすまでのメモです。 (2017/11/11 トレーニングの自動終了について追記) ざっくりと概要 ml-agentsはUnity Machine Learning Agentsを略した名前です。「Unityの機械学習エージェント」ということですね。 機械学習には様々なものがありますが、このプロジェクトでは機械学習の代表格であるTensorFlow(テンソル・フロー)というオープンソースを利用します。ゲーム専用ではなく、デファクトスタンダードなAIシステムを採用しているのは大きな利点だと思います。TensorFlowは手書き文字や写真に写っているものを推定するなど様々
japan.unity3d.com 日本最初のUnity認定試験。無事、合格できました!ざっくりどのような感じだったかをまとめておきます。 試験時間 90分で100問って、1問1分無いので大変そう。と思ったのですが、杞憂でした。40分ぐらいで解答を終えられました。ちゃんと勉強しておけば、じっくり取り組んでも60分はかからないと思います。 Unityのバージョンは? 不安な点の一つでしたが、試験対策講座で基準のバージョンを教えていただけました。自分はUnity5.3.8をインストールして対策勉強をしました。とはいえ、Unityコラボなどは5.5からのものですので、必ずしもその時代のものだけでもありません。バージョンによって変わるような細かいところは試験に出ない、という理解で大丈夫と思います。 試験の難易度 広く浅く知識を問われる、Unity版のITパスポートといった感じです。出題形式は以下の
Errors & Logging - Laravel - The PHP Framework For Web Artisans Laravelの公式ドキュメントを元に、エラーとログの動作を確認します。 目次 目次 Laravelのエラーとログ処理 前提 プロジェクトを準備 エラー表示とログを確認する 例外を発生させてみる abort()メソッドで、自分で例外を発生させる Logを出力する エラーの設定 設定の場所 ログファイルの種類 連想配列をログに出力 独自のHTTPエラーページ その他 例外ハンドラー report メソッド render メソッド Monologのカスタム設定 Monologインスタンスへのアクセス Laravelのエラーとログ処理 Laravelには、あらかじめエラーや例外を処理するための設定がなされています。 App\Exceptions\Handler クラスに
自分向けのメモです。 LaravelにはPHPUnitによるテストの設定が組み込まれています。公式マニュアルで概要を確認して、データベースのチェックや、URLごとのテストについて調べました。 5.2から5.3になる段階で、データベースとモックに関する記述が増えていました。 目次 目次 実行時の注意点 公式マニュアル概要 Introduction テスト環境 新しいテストの定義と実行 アプリケーションのテスト アプリケーションとの連携 リンクをクリックする フォームの操作 JSONテスト SessionとAuthentication ミドルウェアの無効化 カスタムHTTPリクエスト PHPUnitアサーション Databaseのテスト テスト後のデータベースのリセット Migrationを使う トランザクションを使う モデルファクトリー ファクトリーの States Factoryの利用 モ
次へ 完成プロジェクト→ GitHub - am1tanaka/lara5.3-sentinel at ver1.1.1 目次 目次 はじめに 前提環境 実装の方針 Laravelのバージョン確認とインストール データベースを作成する Laravelの環境設定 起動テスト Sentinelをインストール 認証用のビューを作る Codeception を組み込む Codeception用の設定 テストを準備 はじめに PHPのフレームワークLaravelには簡単な認証や認可ができるauthパッケージが組み込まれていますが、ユーザー登録時にメールの確認などなしにいきなり登録できてしまいます。 Sentinelは上記のような機能を持つPHPフレームワークで、Laravel5に組み込むための機能を提供してくれています。Sentinelが提供するのはロジックだけで、ビューやユーザー確認用のメールなど
ユーザー管理の実装からの続きです。 ロール管理機能を追加していきます。 目次 目次 ロール管理画面の概要 機能 アクセス権限 ロール管理用のコントローラーの作成 ロール用のコントローラーを作成 パーミッション用のコントローラーを作成 ルートを設定 ロール管理画面の開発 ビューを表示するためのコードを作成 パーミッション一覧を取得するためのコードを追加 ビューの作成 エラー表示ブロックの共有化 *** 使用例 モーダルウィンドウの作成 ロール管理ビューの作成 パーミッションの新規登録処理 パーミッションの削除 ロールの追加 ロールの変更 ロールの削除 パーミッションの確認 最後に ロール管理画面の概要 機能 ロール管理画面も、基本的にはユーザー管理と同じように作成します。必要な機能は以下の通りです。 新しいロールの作成 ロール名 slug 追加ボタン 新しい権限の追加 権限の文字列のみ 追加
Laravelの認証や認可にSentinelを組み込んだのであれば、ユーザーの役割(ロール)や権限(パーミッション)機能を使えるようにしたいところです。 そこで、管理者によるユーザー管理、ロールとパーミッションによる権限の管理をするコントローラーやビューを作成します。 目次 目次 前提 管理者のメールアドレスを設定 ログイン時にロールを割り当て ロール関連の設定を作成 管理者メールの時の処理 ログインユーザーのロールの確認 ログインユーザーのパーミッションの確認 ロールのセットアップと管理者の割り当て処理 メニューの追加 ユーザー管理を作成 コントローラーの作成 Usersビューの作成 方針など 入力欄をパーツ化 ユーザー新規登録のパネルを作成 テスト用のルート ロールの選択ビュー ユーザー一覧ビュー 拡張Userモデルの作成 UserExモデルの作成 モデルの変更 管理者によるユーザー登
Unity5.2にNetworkDiscoveryというコンポーネントが追加されました。これまでは、マッチングサーバーを使わずにLANのサーバーやホストに接続する場合は、NetworkManagerにIPを指定していましたが、NetworkDiscoveryを利用すると自動的にクライアントがサーバーを見つけて接続できるようになります。 NetworkDiscoveryを使って、クライアントとサーバーが接続する簡単な例を紹介します。開発したのはVer5.2.1です。 実行ファイル 基礎知識 NetworkDiscoveryのリファレンスマニュアル NetworkDiscoveryのリファレンスの冒頭のざっくり和訳 サンプルの概要 サンプルの実装 テスト用のプレイヤーを作成する プレイヤーをネットワーク対応させる NetworkDiscoverを追加したNetworkManagerのゲームオブ
はじめに GitHubでチーム開発をする場合、通常は以下の流れになると思います。 オリジナルのGitHubリポジトリから、自分のGitHubにフォーク(fork) フォークしたリポジトリをローカルPCにクローン 変更を加える 変更点をオリジナルに取り込んでもらいたいときは、プルリクエスト(Pull Request)をオリジナルに発行 オリジナルのコミッターがプルリクエストを結合 この手順は複雑なため、学校などで学び始めたばかりの人たちには敷居が高いかも知れません。そこで、ここではもう少し簡易にチーム開発を行う手順を紹介します。 プルリクエストによるチーム開発に進む準備体操として活用してみてください。なお、先に進みたい方は以下の書籍に丁寧に手順が記載されています。 GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) 作者: 大塚弘記出版社
MySQLでmysqldumpなどを使うときに以下のようなエラーが発生。 mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': Table 'performance_schema.session_variables' doesn't exist (1146) 原因は、データベースの構造が更新されていないことでした。 mysqlを起動 以下でデータベースをアップグレード sudo mysql_upgrade -u root -p mysqlを再起動 以上で治りました。 以下、参考にしたURLです。 参考 MySQLをアップデートしたらエラーになったのでmysql_upgradeで直した | 本日も乙 MySQL :: MySQL 5.7 Reference Manual :: 4.4.7 mysql_upgrade —
Laravel5.3に対応させた記事を公開しました。 → Laravel5.3でSentinelを利用する(1)LaravelとSentinel、Codeceptionのインストール - tanaka's Programming Memo (一通りチェックしました。ユーザー登録、アクティベーション、パスワードの再設定、ログインをSentinelに置き換える手順です。 2016/7/28) (「認証用のビューを作る」は、ローカルで動くようにする手順の前に必要だったので、位置を入れ替えました。2016/8/22) (「コントローラーの作成」のregister()メソッドの引数が間違えていたので修正しました。2016/9/2) (ログイン画面のinfoを変数に統一 2016/9/5) はじめに PHPのフレームワークLaravelには簡単な認証や認可ができるauthパッケージが組み込まれてはいま
前へ | 次へ 17章 WebSocket WebSocket概要 WebSocketとは p393 1本のHTTP接続上で双方向のメッセージやりとりができる HXMLHttpRequestとServer-SentEventsを利用したやりとりよりも効率がよく、設計や実装もシンプル 補足:2015/2/12現在、Operamini以外の主要やブラウザに実装 既存の通信技術 XMLHttpRequest(XHR) クライアントからサーバ方向への非同期通信手段の一つ クロスオリジン通信ができない。これを解決するのがLevel2 p394 1バイトの送信でも、リクエストヘッダが付与されるので数Kバイトの通信になる Server-Sent Events サーバからのプッシュ通信のための仕様 仕様に従ったフォーマットでサーバサイドから通常のHTTPレスポンスを返すことでプッシュ通知が可能 補足:20
認証に関する様々な機能を提供してくれるPHPのライブラリ、CARTALYSTの「SENTINEL」をmacのローカル環境で使ってみます。 公式サイト Sentinel Manual :: Cartalyst 概要 以下、公式サイトのINTRODUCTIONの意訳。 モダンでフレームワークを選ばないAuthorization(認可)やAuthentication(認証)のパッケージです。権限設定、独自のハッシュアルゴリズム、そして追加のセキュリティ機能を持ちます。 パッケージは、FIG(Framework Interop Group)によるPSR-4(PHP Standard Recommendations - Autoloading Standard)に対応しており、PHPコード間で柔軟な制御ができます。 動作環境はPHP 5.4以上が必要で、オプションとしてフレームワーク統合を単純化する
watchifyでビルドの高速化を図ろうとしたところ、ビルドするたびに遅くなってしまいました。 原因は、Browserifyのオプションを指定していないことでした。以下、オプションとWatchifyとBrowserifyの部分の抜粋です。propsが必要でした。 var jsSrcPath = "./ビルドターゲットのパス/"; var jsSrcFile = "app.jsx"; var jsDestPath = "./出力先のパス/"; var bundler; var props = { entries: jsSrcPath + jsSrcFile, debug: true, cache: {}, packageCache: {}, fullPaths: true }; bundler = watchify( browserify( props ) ); function rebun
Adobeの無料で使えるHTMLやJavaScriptをはじめとする各種スクリプト用のエディタ。ライブモニタができたり、HTML5で開発されていて柔軟な拡張性がある。 Gitプラグインをインストールしたので、簡単な使い方をまとめておく。 クローン Githubのリポジトリをクローンしてみる。 BracketsのGitプラグインをインストールしておく クローン先のフォルダーを作成して、Bracketsの作業用フォルダーとして開いておく 画面右のをクリックして、Gitのコントロールパネルを開く [Clone]をクリック Githubから、クローンしたいリポジトリのURLをコピーして、URLに貼り付ける 以上でクローン完了。 リポジトリへのファイルの追加 ワーキングディレクトリ下に管理外のファイルが出来上がると、Gitウィンドウに列挙される。 リポジトリに追加したい場合は、チェックを入れる 管理
コピーやFTPのアップロード時に複数ファイルを選択する方法を調べていました。gulpのsrcはglob形式で指定できます。 Globの書式 globの公式の情報は以下。 isaacs/node-glob · GitHub 上記を斜め訳。 Globの概要 Globは ls *.js をコマンドラインで指定したり、 .gitignore ファイル内でbuild/* を指定するようにファイルをフィルタリングできます。 パスのパターンを解釈する前に、{}で囲まれたBraced Sectionをパターン内に展開します。コンマ区切りで複数のキーワードを指定します。{}内にスラッシュ(/)を含めることもでき、a{/b/c,bcd}と指定すると、a/b/cとabcdに展開します。 以下の文字は特殊な機能を持ちます。 * 1つのパスの0以上の文字列に一致 ? 1文字分の任意の文字に一致 [...] 文字の範
picasaなどで非公開データにアクセスするには認証する必要がある。即席にデモを行うには、予め写っている人の顔を編集したり、不要な写真を外す時間がないため、公開アルバムを使うのは相応しくない。非公開アルバムにアクセスするために認証方法をまとめる。 概要 Google APIは認証にOAuth 2.0 プロトコルの利用を推奨している。 OAuth2.0を利用する流れは以下の通り。 開発するアプリケーションをGoogleに登録する。 アプリケーションからGoogleの認証サーバーにアクセス用のトークンを要求 サーバでのユーザー認証に成功すると、アクセストークンを含んだレスポンスをアプリケーションにリダイレクトして返す。 アクセスしたいGoogle APIにアクセストークンを渡して、データにアクセスする。 OAuth2.0で認証するための詳細はUsing OAuth 2.0 for Login(
簡単なデータなら、System.IOのFile.WriteAllBytes()で保存、File.ReadAllBytes()で読み込めた。 スクリプトファイルの冒頭に以下を追加して入出力関係のクラスを使用可能にする。 using System.IO; "testdata.bin"というデータをバイナリですべて読み込むときは以下のようにする。 byte [] data = File.ReadAllBytes(Application.persistentDataPath + "/testdata.bin"); byte配列dataを"testdata.bin"というファイル名で保存する際は以下のようにする。 File.WriteAllBytes(Application.persistentDataPath+"/testdata.bin",data); Editorで動作時はUnityのプロジェ
Unityでは、初期設定として1を1mとして扱うことになっている。その設定のまま、5cmのオブジェクトを登場させるとサイズは0.05となる。ところがUnityのRigidbodyでは、一定以上小さい速度は省略されるようで、5cm程度のものを動かしていると、衝突しても跳ね返らないことがある。 Rigidbodyで動かすものがcm単位の場合は、値を100倍して、1=1cmとする必要がある。単位を変えた場合は、[Edit]→[Project Settings]→[Physics]を呼び出して、[Gravity]も同じ単位に合わせるのを忘れないこと。
Input.touchCountで、現在、同時にタッチされている数を返す。SH-12Cでは5箇所まで同時に検出可能。 Input.GetTouch(index)で、0〜Input.touchCount-1までの押された場所のデータを、Touchクラスのインスタンスで返す。 // 0番目のタッチのデータをtchに取得する Touch tch = Input.GetTouch(0); 押された座標は、tch.positionで参照できる。 GUITextureのHitTest(座標)に座標を渡すと、特定のGUITextureをタッチしているかがわかる。 tch.fingerIdには、押され続けている間は同じIdが入る。これを使って、複数の場所で移動が発生した時のそれぞれの移動を判別可能。 tch.deltaPositionで、前回からの移動量が取れる。 tch.deltaTimeで前回変更され
(2017/7/19 SH-08Eの設定を追加) 事前設定 Android Studioをインストールして、起動して、Android SDKの設定を済ませる Android Studioの[Configure]>[Settings]を開く Google USB Driverをインストール タブレット側の設定 初期設定を終わらせる。 タブレットが起動後、画面左上に表示される[設定]をクリック。 [セキュリティ]で[提供元が不明のアプリ]にチェックを入れる。 [開発者向けオプション]で[USBデバッグ]にチェックを入れる。 PC側のセットアップ タブレットをPCから外す。 Android SDKをインストールしたフォルダーを開いて(C:\Android\Sdk、あるいは、C:\Program Files (x86)\Android\android-sdkなど)、「extras\google\u
多摩大学の学祭で学生さんたちによるSculptrisの使い方教室がありました。お邪魔してコネコネとキャラクタを作成。せっかく作ったのだから動かしてみたいと、Unityへのインポートをしてみました。以下、手順です。 データのエクスポート モデリングを完了させる。 オブジェクトデータを保存する。 メニューから「EXPORT OBJ」メニューを選択。 「ファイルの種類」を「Wavefront OBJ files」にして、任意のファイル名を付けて「保存」する。 テクスチャを保存する。 以下に丸で囲んだ「Show advanced tools」にチェックを入れる。 「SAVE TEXMAP」を選択。 「ファイルの種類」を「PNG image」にして、任意のファイル名を付けて保存する。 以上で必要なobjファイルとテクスチャファイル(pngファイル)が保存できる。次にUnityに読み込む作業を行う。
次のページ
このページを最初にブックマークしてみませんか?
『tanaka's Programming Memo』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く