利用に関して

掲載記事は個人的な見解・理解を多く含み、確実に正規な情報ではないことがあります。
このサイト閲覧・利用に伴う損害等の免責は負いません。

2018年12月25日火曜日

Blogger の設定 コードブロック編

Bloggerアーカイブ書こうとしてソースコードのハイライトが欲しくなったので追加しました。


導入

Bloggerの管理画面 > テーマ > HTMLの編集

<head>の中に1行追加するだけです
[HTMLの編集]
<head>
      :
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst">
      :
</head>
行末のskinでスタイルを選べます。
一覧:スタイルリスト

設定

表示を調整する

さらに横に長くなった時にスクロールバーを出す機能と長すぎるコードは縦スクロールできるようにする機能を付けました
先ほど追加した部分に追記します
<script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=desert'/>
    <style type='text/css'>
    pre.prettyprint {
      font-size:12px;
      overflow: auto;
    }
    pre.prettyprint.high {
      overflow: auto;
      height: 23em;
    }
    </style>

行番号を表示する

デフォルトでは行番号が5行おきに表示されるので1行ずつ表示するようにします。

CSSに追記[テーマ>カスタマイズ>上級者向け>CSSを追加]

[CSS追記]

li.L0, li.L1, li.L2, li.L3,
li.L5, li.L6, li.L7, li.L8 {
  list-style-type: decimal !important;
}



使用方法

コードハイライトの使い方

[HTML編集モード]

&ltpre class="prettyprint [lang-XXX] [linenum] [high]"&gt

コードを記入

&lt/pre&gt


オプション引数

linenums

行番号を表示するときに指定します。
linenums:[開始数字]
開始数字を指定するとその番号からカウントされます。
/*Sample.cs*/

using System;

public class Sample{
   public int intvalue;
   private float floatvalue;
   private double doublevalue;
   public bool boolvalue;

   Sample(){
     /* */

     intvalue = 0;
     floatvalue = 1.3f;
     doublevalue = 2.291;
     

     boolvalue = true;

   }

   public float Func1(){
     float x = intvalue + floatvalue;
     return x;
   }
}


high

コードブロックの長さを固定して、はみ出した分のコードはスクロールで表示します。
* 設定で追加した項目です。
using System;

public class Sample{
   public int intvalue;
   private float floatvalue;
   private double doublevalue;
   public bool boolvalue;

   Sample(){
     /* */

     intvalue = 0;
     floatvalue = 1.3f;
     doublevalue = 2.291;
     

     boolvalue = true;

   }

   public float Func1(){
     float x = intvalue + floatvalue;
     return x;
   }
}


lang-[言語]

コードの言語を指定するときに使用します。これに応じてコードの解釈が変わります。
デフォルトの対応言語
"bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", "java",
"js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", "xhtml", "xml","xsl"



参考サイト



2018年12月21日金曜日

UnityでアレのAoEっぽいものを作る


あれのAoEっぽいシェーダー

シェーダーについて勉強していた時の話
円をシェーダーで描く項目をやって円を描いてみたのです


そして次に思ったのが
”メッシュに図形を書き加えられるなら[とあるゲーム]のAoEっぽいの作れるんじゃ?”
そんな出来心スタートです。

http://nn-hokuson.hatenablog.com/entry/2016/11/14/203745

こちらを参考にすると円を表示させてスクロールさせることまでできます。



AoEを実現するにはそこから
・円の原点を任意に変えられるようにする
・任意のメッシュ上にこのシェーダーを適用できるようにする

が出来たら実装できそう

任意のメッシュ上にシェーダーを適用させる

こちらはどうやって実装しようか悩んだところです。
いろいろ考えた結果、投影することにしました。
投影の計算式はまぁ複雑なのですがUnityでは投影をやってくれるコンポーネントがあるのでそれを使います。

Projectirコンポーネント
ここにセットされたマテリアルを投影してくれます。



位置を動的に変更する

円の原点を任意に変える

これは
「シェーダー」
void surf(Input IN, inout SurfaceOutputStandard o) {
 float dist = distance(float4(0,0,0,0), IN.worldPos);

の”float4(0,0,0,0)”を

「シェーダー」
void surf(Input IN, inout SurfaceOutputStandard o) {
    float dist = distance(_Center, IN.worldPos);

プロパティの変数”_Center”にして、スクリプトから設定してあげることで実現できます。

ProjectorがアタッチされているtransformのpositionをShaderに渡します
「スクリプト」
_AoEmaterial.SetVector(_AoES_CenterID, this.transform.position);

これでShaderの円の中心がオブジェクトの場所になります

円の範囲を制限する

このままでは無限に範囲が表示されるので描画範囲を制限します

「シェーダー」
if (dist < _Range) {
    o.Albedo = _AoEColor;
    =中略=
   }
   else {
    o.Albedo = fixed4(0,0,0,0);
    o.Alpha = 0;
   }
}


半径を設定してそれ以外は透明で描画するようにします

ぬぺっとした円が描画されます

AoEは加算合成っぽい見え方をしているので加算モードにします

「シェーダー」
Blend One One

光って見えるようにEmissionの値も設定します

いい感じに加算されました

AoEはヘリの部分が光っていてあとはうっすら光っている
これを表現します

Alphaの値を設定することで重ね具合は表せそうです
Emissionの値も一緒に調整します

ヘリに近いところはAlphaが大きくなるようにシグモイド関数を利用します


加工したシグモイド関数

式を加工して半径の部分が立ち上がるようにします

「シェーダー」
       float expo = 1 / (1 + pow(2.7, -(_Gain) * (dist - _Range * 0.95)));
       o.Emission = _AoEEmission * expo;
       o.Alpha = expo * 0.5 + 0.3;




いい感じに表現できました。

ちなみにすこし重い。
処理改善の余地がありますね。

2018年12月20日木曜日

Blogger 再開

ほったらかしになっていたこのサイトを個人的な技術情報のアーカイブ用途で動かすことにしました。

日記からメモ帳になりました。

2015年3月26日木曜日

TACT A-AF30 タイヤ交換

超初心者

今回は移動に毎回使っている原付「TACT A-AF30」のタイヤ交換。

タイヤを外すのに座席まで外さなければならないこの仕様。
さぁ、やっていきましょー

まずタイヤですが、「3.00-10 42J」(FRONT/REAR)
DL-TYREにて1700円/本x2を新品購入


「リアタイヤ」
①シート外し
 10mmx4 を外し
エンジンオイルキャップとその下についているカバーのゴムを外し
ツメを外し
上に引っ張ってガポッとはずれます。


②マフラー(チャンバー)外し
このTACT、縦エンジンなのでエキゾーストが前向いてるんです。

エキゾースト付近のカバーのようなものを取り外します

8mm x2(ワッシャ付き)











エンジンとの接続部分を取り外します

10mm x2

上側が短い、下側が長い


熱が入るから変質しちゃってるのかな








マフラーステー部分の取り外し

12mm x2



これでマフラー取れます









これでやっとタイヤにアクセスできます。














③タイヤ取り外し

タイヤ固定ボルト

22mm x2


非常に硬い、インパクトもだめだったので長いスピンナーにつけて友人に乗ってもらいブレーキマックスの状態で蹴っ飛ばしてようやく回りました







タイヤのビート落としはで、タイヤレバーを使ってタイヤチェンジャーの動きを再現するようにして落とします。つまり隙間を作ってちまちまずらしていく。

タイヤレバーはX字にクロスさせると落ちやすい

ものすごく手強い、硬い

1カ所落ちたら他は踏んでいけば落ちます







取れました















新しいタイヤ装着

黄色い印はバルブに合わせましょう


締結トルクは100N位 車と一緒










逆の手順でパーツを付けていって終了


「フロント」
簡単
①タイヤ取り外し
フロントタイヤはこの3つのパーツで留まってます

17mm 12mm の共締め


タイヤ交換はリアと同様。とても硬い
締結トルクは40N位




タイヤの組み付けってずっと早く終わるものって聞いたけどそんなことなかった、硬すぎ。
あと
間に追いコンが挟まっていたので、夕方開始の翌朝終了という悲惨なことに