しがないエンジニアのブログ

技術的な内容をメモ代わりにつらつら

はてなブログで数式を表示させる

色々調べても全然わからんかったのでここにメモ
自分の場合は「プレビューしたときに一瞬だけ表示されて消える」という現象だった。
おそらくフォーマットは合っているのだが、 「消える」という部分に対する解決方法の記事がなかった。

解決策としては、「設定 > デザイン > カスタマイズ > ヘッダ」に、以下を加える

<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

これで問題なく表示されるようになった。

あとは参考サイト様のように書けば表示された。

$$
e^{j\pi} + 1 = 0 
$$

$$ e^{j\pi} + 1 = 0 $$

参考URL

[Unite2018] Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~

公式サイト

http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session84

講演者

Florian Andreas Gantzert (KLab株式会社)

SlideShare

https://www.slideshare.net/UnityTechnologiesJapan002/unite-2018-tokyounity-ui

概要

  • UI
  • 結合
  • UIアゲイン
  • おさらい

内容

  • UI
    • ビジュアルでUIを作れる(uGUI)
    • にも関わらずプログラマがUIを作るケースが多い
    • よくするための鍵は? → 結合
      f:id:turgure:20180702091757j:plain
      f:id:turgure:20180702091806j:plain


  • 結合
    • 定義
      • 一方の偏光によって他方の変更が必要になる
      • Aを変更したらBも変更しなくてはいけない
    • 密結合
      • 結合している状態
    • 疎結合
      • 結合していない状態
    • 結合レベル
      • 結合はコードの話だけではない
      • コードの結合が、データとワークフローの結合につながる
        f:id:turgure:20180704085842j:plain
    • 結合と抽象化
      • 疎結合抽象化で実現させる
      • 抽象化
        • × 汎用化、一般化
        • 縛りのないシンプルな抽象化が望ましい
    • 結合バランス
      • 疎結合にバランスがある
      • 結合のバランスがプロジェクト規模に依存する
      • 問題点
        • 孤立しているタスクのはずが
          • 巨大化
          • 副作用が発生
          • 対応が複雑化
      • バランスがずれてもまだ手遅れじゃない
      • バランスの鍵は分野相互間コミュニケーション


  • UIアゲイン
    • ワークフロー
      • 同時作業によるコンフリクトはありえる
      • ワークフロー上でそのコンフリクトを阻止できない
        • 違うレベルで阻止する必要
      • データを分割してコンフリクトを阻止
      • コード上でその分割に対応
    • データ分割
      • UI専用のシーンを用意
      • UIシーンは他のゲームと連携
      • Unityのシリアライズ機能が使えない
      • UIシーンと他のシーンはどうやって連携させる?
        • MVC・MVVM
        • UnityEngine.ExposedReference<T>?
          • Timelineで利用される
          • ランタイム時にIDで参照を解決
          • ExposedReference<T>本体側でもルックアップテーブルIDを管理する必要
        • メッセージ・バス
          • 必要な情報だけメッセージとして抽象化、バスに飛ばす
          • バスの接続先でメッセージを処理
          • 発信元、接続先は互いの情報を知らなくていい
          • どのような情報を扱うか、どういうルールにするか
          • 発信源、接続先の差し替えでデザイナ向けのデバッグ機能の追加が容易


  • おさらい
    • 結合はコードの話だけではない
      • データとワークフローでも発生する
    • 規模とともに疎結合が必要になる
    • コードの結合はデータとワークフローの結合につながる
    • 疎結合の道は抽象化で開く
    • コードとデータの疎結合はよりよいワークフローにつながる
    • シーンを分けることでUnityにおける同時作業がやりやすくなる
    • メッセージ・バスで複数のシーンやロジックなどを疎結合的につなげる


  • おまけ
    • roll a ballの改造 中上級者向け
      • テストしたい
      • ML(Machine Learning)で動かしたい
        • →入力の抽象化
        • 入力情報を管理するinterfaceを作る
    • c#における抽象化
      • インターフェース化 ←ゲームはこっちのほうがいい?
        • 処理側がタイミングを決める
      • イベント化
        • 情報元がタイミングを決める
    • c#におけるイベント化
      • 言語レベルで対応している
        • delegate, event
      • Unity APIでも使われている
        • hierarchyChangedなど

[Unite2018] Unity 2D機能のアップデートとその周辺

公式サイト

http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session79

講演者

山村 達彦 (ユニティ・テクノロジーズ・ジャパン合同会社)
京野 光平 a.k.a. ntny (ユニティ・テクノロジーズ・ジャパン合同会社)

SlideShare

https://www.slideshare.net/UnityTechnologiesJapan/unite-2018-tokyounity-2d

概要

  • ステージを作りやすく
  • もっと高度なキャラクター表現
  • その周辺
    • UI
    • パフォーマンス
    • アセット

内容

  • ステージを作りやすく
    • TileMap
      • Unity 2017.2から
        • タイルベースでステージを作る仕組み
        • タイルを塗るようにステージを作成
        • RPGツクールみたいな
      • Unity2018.2から
        • 六角形タイルもサポート
      • Tile     タイルのアセット
      • Palette    タイルを塗る際に使用するパレット
      • Brush    タイルをタイルマップに塗る
      • Tilemap   タイルをセットするグリッド
        f:id:turgure:20180702090943j:plain
      • 実装例
        • 隠し通路
        • 家の裏に行くと影
        • 当たり判定処理
    • 2D Sprite Shape
      • Unity 2018 Package Managerで提供
      • 伸縮するスプライトでステージを作る
      • フレキシブルなマップ
      • Spriteの面に応じて表示するものを設定できる
      • MeshCollider2DEdgeCollider2Dの当たり判定とも連携
        f:id:turgure:20180702091102j:plain
    • Cinemachine
      • カメラ移動制御
      • 必要なのはColliderのポリゴン情報
        • Colliderだが当たり判定は必要ない
        • Rigidbody2DのSimulatedをOffにする
          f:id:turgure:20180702091140j:plain


  • 高度なキャラクター表現
    • ボーンベースのアニメーション
      • スケルタルアニメーション
      • スプライトの回転や移動でアニメーションを実現
    • 2D Animation
      • 2D IK       IK実現
      • 2D Animation   Spriteの変形に対応
        f:id:turgure:20180702091250j:plain
        f:id:turgure:20180702091257j:plain
    • Simple Animation
      • アニメーションクリップを登録してPlay()するだけ
      • ステートマシンは不要
      • ピクセルパーフェクトなアニメ(開発中)
    • Timeline
      • Timelineは「タイミングを制御する」機能
      • 時間指定で処理を実行
      • ゲームを再生せずプレビュー
      • 4つのポイント
        • 動かすキャラとターゲット指定はTimeline再生前にバインド
        • 演出で使用する内容はPrefabにまとめておく
        • 移動はAnimation ClipではなくTween
        • 対象独自の動作はイベントを活用
          • 敵側、ダメージエフェクト
          • Timelineはタイミングだけ管理
      • Timelineは重い?
        • 意外と軽い
        • 重い場合はPlayable Assetを分ける
        • エディタとビルドで負荷がぜんぜん違う
          • ビルド前はとても遅い
          • Timelineウィンドウがとても遅い
          • ビルド前はロードも遅い


  • 周辺
    • パフォーマンス
      • Rigidbody 2Dのマルチスレッド化
      • テンプレートの設定が少し変化
      • Dynamic Batchingがデフォルトでoff
        • Instancingを使う
      • Scriptable Render Pipeline
        • いくつかの機能が使えなくなる
    • UI
      • 新しい機能はない
      • GUI LayerはCameraに標準で組み込まれなくなった
      • UIはPackage Managerに移行するかも
    • アセット
      • 新しい縮小アルゴリズム
        • Mitchell
      • テクスチャ
        • ETC2 8bit / ASTC 4x4
      • SVGサポート
        • ズームしてもくっきり