【Unity】Shuriken Particle 作成時の便利機能まとめ
Unity パーティクル作成で個人的に便利だと思った機能をまとめてみました。
Show/Hide Module
Inspector上の「+」ボタンから 「Show All Modules」のチェックを外すと有効になっているパラメータのみ表示できます。不要なパラメータが消えるので見やすくなります。
Editor Window
「Open Editor」ボタンを押すと Editor Window を表示する事ができます。各種カーブの調整、パーティクルの再生/停止、バウンディングボックスの表示ON/OFFなど操作に必要な機能がまとまっているのが良いです。
子パーティクルの追加もここで行えます。ただ、削除が無いのが少し残念。。
【Unity】Shuriken Particle Part3 モジュール後編
量が多くて前回でモジュールの説明を終わらせる事ができなかったので続きです。
Sub Emitters
パーティクルが特定の条件を満たした際に別のパーティクルを発生させる事ができます。設定できる条件は以下になります。
条件 | 説明 |
---|---|
Birth | 発生時 |
Collision | Collisionオブジェクトに衝突時 |
Death | パーティクルの寿命が尽きた時 |
下図の花火のような演出は、上昇する火玉のパーティクルを用意し Sub Emitter にチェックを入れ、Deathを選択、火花が広がるパーティクルを設定、火玉と火花を同じ色にするためにInheritにColorを選択しています。
Texture Sheet Animation
テクスチャによるパラパラアニメーションを設定します。アニメーションの再生モードは Grid または Sprite になります。
Grid
XY各方向のタイル数(分割数)を設定してアニメーションさせるモードです。
パラメータ
|
説明 |
---|---|
Tiles | XY方向のタイル数(テクスチャ内のXY方向に対する分割数)を設定します。 |
Animation | Whole Sheetはテクスチャ内のすべてのタイルを参照して再生します。Single Rowは各列単位でタイルを参照します。一つのテクスチャに複数のアニメーションを設定する場合はSingle Rowを使う事になりそうです。 |
Random Row | 列単位でランダムにタイルを参照します。Single Rowが選択時のみ設定できます。 |
Row | 参照する列を指定します。Single Rowを選択してRandom Rowが無効時のみ設定できます。 |
Frame over Time | 何フレーム目でどのタイルに切り替えるか設定します。縦軸がタイル数、横軸がパーティクルの生存時間を0.0〜1.0の割合になります。 |
Start Frame | 何フレーム目からパーティクルのアニメーションを開始するか指定します。 |
Cycles | パーティクルの生存時間中に何周アニメーションさせるかを設定します。 |
Flip U | 発生中のパーティクルのテクスチャを左右反転します。全パーティクルを反転させたいなら1.0、半分なら0.5と0.0〜1.0の割合で設定します。 |
Flip V | 発生中のパーティクルのテクスチャを上下反転します。全パーティクルを反転させたいなら1.0、半分なら0.5と0.0〜1.0の割合で設定します。 |
Enabled UV Channels | テクスチャアニメーションの影響を受けるUVを設定します。UV0は適用するがUV1には適用しないといった感じです。 |
Sprite
同一 Atlas内の複数Spriteを連番設定してアニメーションさせるモードです。素材の設定によってはGridモードと比べてオーバードローの負荷が軽減されやすいです(Spriteは透明抜きの設定ができるため)
パラメータ
|
説明 |
---|---|
Mode | 再生させたいSpriteを設定します。ただし、使用できるのは同一のAtlasに格納されているSpriteのみになります。 |
※それ以外のパラメータはGridと同じなので割愛
Lights
パーティクルにリアルタイムライティングの影響を受けるかどうかの設定になります。
パラメータ
|
説明 |
---|---|
Light | 影響を受けるLightプレハブを設定します。設定できるライトはTypeがPointとSpotのみになります。 |
Ratio | ライトの影響を受けるパーティクルを設定します。全パーティクルが影響を受けるなら1.0,半分なら0.5と0.0〜1.0の割合で設定します。 |
Random Distribution | チェックを入れるとライトの影響を受けるパーティクルを完全ランダムで割り当てます。チェックを外した場合は新しく作成されたパーティクルがライトの影響を受けるかの設定になります。(例:N番目のパーティクルがライトの影響を受ける) |
Use Particle Color | チェックを入れるとライトのカラーがパーティクルのカラーになります。チェックを外した場合はライトに設定されているカラーが適用されます。 |
Size Affects Range | チェックを入れるとライトの影響範囲にパーティクルのサイズが乗算されます。 |
Alpha Affects Intensity | チェックを入れるとライト輝度にパーティクルのアルファ値が乗算されます。 |
Range Multiplier | パーティクルが発生してから消滅するまでのライトの影響範囲に係数を乗算します。Curveを使って開始フレームは0.0,終了フレームは1.0にすれば消滅に近づくに連れて発光範囲が広くなるといった表現ができます。 |
Intensity Multiplier | パーティクルが発生してから消滅するまでのライト輝度に係数を乗算します。 |
Maximum Lights | ライトを設定できる最大数です。1にした場合はパーティクルが複数発生していても1つだけしかライトの影響を受けません。 |
ライトの処理は負荷が非常に高いです。特にForwardレンダリングの場合、ライト数が多いと負荷が上がります。Deferredレンダリングにする事で少し負荷を下げることが出来ます。 DeferredとForwardの切り替えは Rendering Path で設定します。
tsubakit1.hateblo.jp
Trails
パーティクルにトレイル(軌跡)が設定できます。移動する車のバックライトの表現などに使えそうです。この機能を有効にするには後述のRendererパラメータのTrail Material を設定する必要があります。(設定しないと紫色のトレイルが描画されます)
パラメータ
|
説明 |
---|---|
Mode | トレイルの生成モードを設定します。Particleはパーティクル単位のトレイルを、Ribbonはパーティクル同士を結ぶトレイルを生成します。 |
Ratio | トレイルが付くパーティクルの割合を設定します。全パーティクルに設定するなら1.0,半分なら0.5と0.0〜1.0の割合で設定します。 |
Lifetime | トレイルの生存時間(秒)を設定します。 |
Minimum Vertex Distance | トレイルの頂点情報を新しく設定する最小距離を設定します。値が小さければより滑らかなトレイルが描画されますが頂点数が増えるため負荷も高くなるので注意が必要です。 |
World Space | チェックを入れると親オブジェクトを動かした際にトレイルが引っ付いてこなくなります。前述の Simulation Space パラメータを Local に設定してたとしてもです。 |
Die with Particles | パーティクル消滅時にトレイルも消滅するかを設定します。 |
Ribbon Count | 描画するリボンの数を設定します。例えば1を設定するとパーティクル単位を結びますが、2を設定すると1番目,3番目,5番目に発生したパーティクルを結ぶリボンと2番目,4番目,6番目に発生したパーティクルを結ぶリボンを生成します。 |
Split Sub Emitter Ribbons | チェックを入れると Sub Emitters パラメータで設定したパーティクルとリボンのトレイルを共有します。 |
Texture Mode | Stretchedはテクスチャが引き伸ばされて描画されます。Tileはテクスチャが繰り返しで描画されます。繰り返しの間隔はトレイルに設定されているマテリアルのTilingパラメータによって決まります。下図は左から Stretched, Tile, DistributePerSegment, RepeatPerSegment になります。 |
Size affects Width | チェックを入れるとトレイルの幅にパーティクルのサイズを乗算します。 |
Size affects Lifetime | チェックを入れるとトレイルの生存期間にパーティクルサイズが乗算されます。たとえば Lifetimeを1かつパーティクルサイズ(Start Size)が2の場合、トレイルの生存期間は 1 x 2 = 2秒間になります。 |
Inherit Particle Color | チェックを入れるとトレイルがパーティクルのカラーを使用します。 |
Color over Lifetime | トレイルのカラーとアルファ値を発生から消滅までの間で制御します。 |
Width over Trail | トレイルの幅を設定します。 |
Color over Trail | トレイルの色を設定します。 |
Generate Lighting Data | チェックを入れるとNormalとTangentを含む頂点情報を生成します。シーンライティングやカスタムシェーダーを使用する場合などに有効にします。 |
Custom Data
パーティクルのシェーダーに独自データを転送することができます。この辺は少し複雑な内容になるので別途記事にまとめます・・・
追記:まとめました
【Unity】Shuriken Particle「Custom Vertex Streams」 - ゴイサギ日記
Renderer
パーティクルのマテリアル設定やパーティクルの粒子の形状など描画に関する設定をします。
パラメータ | 説明 |
---|---|
Render Mode | 描画するオブジェクトを設定します。 |
Normal Direction | 法線のバイアスを設定します。0.0は画面の中心で、1.0だとカメラに法線が向きます。法線マップを使わないのであれば無視して大丈夫です。 |
Material | パーティクルのマテリアルを設定します。 |
Trail Material | トレイルのマテリアルを設定します。トレイルを使用しなければ設定は不要です。 |
Sort Mode | パーティクルの描画順を設定します。By Distanceはカメラの距離が遠いものから先に、Oldest in Front は先に発生したパーティクルが手前に、Youngest in Front は後から発生したパーティクルが手前に描画されます。 |
Sorting Fudge | 他エミッターから発生するパーティクルとの描画順を設定します。値が低いほど先に描画される可能性が上がります。 |
Min Particle Size | パーティクルの最小サイズを設定します。ビューポートサイズの割合として表示されます。Rendering Mode を Billboard 時のみ有効です。 |
Max Particle Size | |パーティクルの最大サイズを設定します。ビューポートサイズの割合として表示されます。Rendering Mode を Billboard 時のみ有効です。 |
Billboard Alignment | パーティクルの面が向く方向を設定します。Viewはカメラ面方向に整列、Worldはワールド軸方向に整列、Localはパーティクルが設定されているGameObjectの向きに、Facingはカメラがある位置に向けます。 |
Pivot | パーティクルを回転させる際の基準点を設定します。 |
Visualize Pivot | チェックを入れるとSceneビューにPivotのマーカーを表示します。 |
Masking | チェックを入れるとパーティクルの表示領域を任意のマスク画像で切り取ることができます。 |
Custom Vertex Streams | 自前シェーダーの頂点ストリームに任意の成分を流し込みたい場合はチェックを入れます。例えば、シェーダーが法線を使わない場合は頂点ストリームからNORMALを外すことが出来ます。詳細はこちらにまとめました。 |
Cast Shadows | ライトによる影の設定をします。Onは影を有効に、Offは影を無効に、Two Sidedはメッシュの裏表どちらからも影を投影、Shadows Only は影を有効にするがセルフシャドウ(自身の影が自身に落ちは無効になります。 |
Receive Shadows | チェックを入れるとパーティクルに影が投影されます。不透明なマテリアルのみ影を受けます。 |
Sorting Layer | 対象パーティクルのSortingLayer名を設定します。 |
Order in Layer | Sorting Layer内での描画順を設定します。同一SortingLayer名のパーティクルが重なった場合はこの値が大きい方が手前に描画されます。 |
Light Probes | ライトプローブの補間モードを設定します。Offは補間なしです。サイズの大きいパーティクルにライトプローブを正確に影響させたい場合は Use Proxy Volume を選択して Proxy Volume Override にLight Probe Proxy Volumes (LPPV) が接続されたオブジェクトを設定します。何のことかさっぱりだと思うのでこちらも別途まとめます。。 |
Reflection Probes | チェックを入れるとパーティクルがリフレクションプローブの影響を受けます。 |
Anchor Override | ライトプローブ、リフレクションプローブを使用する際に補間位置を決めるTransformを設定します。 |
【Unity】Shuriken Particle Part2 モジュール前編
前回に引き続き「Shuriken」パーティクルの機能をまとめてみました。
確認バージョンは 2017.3.0f3
モジュール
前回に説明したメインモジュール以外のモジュール群をまとめてみました。
Emission
パーティクルの発生数を設定します。Rate over time は1秒間の発生数を設定します。Rate over distance はエミッターの位置を1ユニット移動させた場合の発生数を設定します。また、Bursts は任意のタイミングで大量のパーティクルを発生させる処理(以下:バースト)を設定します。Timeで開始時間(秒)、Countでパーティクルの発生数、Cyclesはバーストを何回行うか設定します。Interval は Time で設定した時間から次のバーストまでの間隔(秒)を設定します。
Shape
パーティクルをどのような形状から放出するか設定します。Meshは設定したポリゴンの表面からパーティクルを放出します(下図のMeshは板ポリゴンを設定しています)
2018/12/16 追記
Unity2018以降で追加された Mesh Renderer, Rectangle についてはこちら
Velocity over Lifetime
パーティクルが生存中の速度変化を設定します。
Limit Velocity over Lifetime
パーティクルが生存中の速度制限を設定します。
Inherit Velocity
親オブジェクトが移動した際にパーティクルの速度がどのように反応するかを設定します。有効にするには Simulation Space を World に設定する必要があります。
Force over Lifetime
パーティクルが生存中に受ける外力を設定します。例としては風とかです。
Color over Lifetime
生存中のパーティクルの色とα値を設定します。寿命が近づくにつれてαフェードさせるなどの表現が設定できます。
Color by Speed
パーティクルの速度に応じた色とα値を設定します。Speed Range はこの設定が適用される速度の範囲を設定します。
Size over Lifetime
生存中のパーティクルのサイズを設定します。寿命が近づくにつれてサイズを小さくするなどの表現が設定できます。
Size by Speed
パーティクルの速度に応じたサイズを設定します。
Rotation over Lifetime
生存中のパーティクルが1秒間に何度回転するかを設定します。前述の Start Rotation は発生時の角度ですがこちらは秒間の回転角度を指します。
Rotation by Speed
パーティクルが速度に応じて1秒間に何度回転するかを設定します。坂を転がり落ちる岩の表現に使えます。Speed Range を設定すれば下図のように特定の速度を境に回転しだす表現もできます。
External Forces
*1 Wind Zone と呼ばれる気流を設定できるオブジェクトの影響値を設定をします。設定値は乗数なので影響をより受けたい場合は 1よりも大きい値を設定します。
Noise
パーティクルの粒子一つ一つに細かいランダムな動きを設定してより自然な動きに見せることができます。Separate Axes を有効にすればXYZの任意方向に対してのみ設定をすることもできます。
Collision
ゲーム内のオブジェクトとパーティクルが衝突判定をする際の設定です。パーティクルが跳ね返ったりオブジェクトに沿って移動する等の表現が可能ですが衝突判定の計算負荷は高いので使用する場合は注意が必要です。TypeからPlaneとWorldどちらかを選択します。
Plane
無限平面とパーティクルの衝突判定を設定します。
パラメータ
|
説明 |
---|---|
Planes | 平面コリジョンを設定するTransformを設定します。 |
Visualization | Sceneビューに表示される平面コリジョンの見え方を設定します。Scale Plane でサイズを変更できますがPlaneは無限平面との衝突判定なので表示されている平面の外側でも衝突判定が発生することに注意してください。 |
Dampen | 衝突後のパーティクルの減速率を設定します。減速させない場合は1.0、停止させる場合は0.0と 0.0〜1.0の割合で設定します。 |
Bounce | 衝突後のパーティクルの反発係数を設定します。衝突前と同じ速度で跳ね返すなら1.0、跳ね返さないなら0.0と 0.0〜1.0の割合で設定します。 |
Lifetime Loss | 衝突時にパーティクルの生存期間を減らす割合を0.0~1.0で設定します。下図、右のパーティクルは割合が設定されているのでワンバウンドすると消えています。 |
Min Kill Speed | 衝突後、この設定値より速度の遅いパーティクルは削除されます。下図、右のパーティクルはMin Kill Speedが設定されているためツーバウンド時に消えています。 |
Max Kill Speed | 衝突後、この設定値より速度の速いパーティクルは削除されます。 |
Radius Scale | 衝突半径のスケールを設定します。平面ギリギリに衝突してパーティクルの見た目がめり込むのを防ぐ際に使用します。 |
Send Collision Messages | チェックを入れると衝突時にOnParticleCollisionを呼び出します。 |
Visualize Bounds | チェックを入れるとSceneビューのパーティクルに衝突判定用の球コリジョンがワイヤーフレームで表示されます。 |
World
シーン内にある Collider とも衝突するように設定します。
※前述のPlaneと同じパラメータは省略しています。
パラメータ
|
説明 |
---|---|
Collision Mode | 衝突判定コリジョンを3Dか2Dの設定をします。 |
Collision Quality | 衝突判定の精度を設定します。Highは最も精度が高いですが高負荷です。MediumとLowは*2ボクセルによる近似判定を行います。Mediumの方が各フレームで物理計算システムに問い合わせる回数が多いのでLowより負荷が高くなります。ボクセルによる判定はstaticなオブジェクトに対してのみ有効になります。 |
Voxel Size | Collision QualityをMediumかLowを選択した場合に使用されるボクセルのサイズを設定します。 |
Collides With | ここで選択したLayerが設定されたオブジェクトと衝突判定を行います。 |
Max Collision Shapes | このパーティクルとの衝突判定を許可する衝突形状を設定します。例えば、Terrain以外の形状を無視して地面とのみ判定するなどの設定が出来ます。 |
Enable Dynamic Colliders | チェックを入れると動的なコリジョンも判定対象にします。 |
Collider Force | 衝突時にパーティクルが対象のコリジョンに力を加えます。パーティクルがコリジョンを押し出す設定がしたい場合に使用します。後述の Multiply by Collision Angle/Particle Speed/Particle Size と合わせて使用します。また、物理挙動になるため対象コリジョンにはRigidbody(Collision Modeが2D時はRigidbody2D)が設定されている必要があります。 |
Multiply by Collision Angle | チェックを入れると、パーティクルとコリジョンの衝突角度が大きいほど衝突時の押し出す力が弱くなります。 |
Multiply by Particle Speed | チェックを入れると、衝突時のパーティクルの速度に応じて押し出す力が変動します。 |
Multiply by Particle Size | チェックを入れると、衝突時のパーティクルのサイズに応じて押し出す力が変動します。 |
Triggers
パーティクルとコライダーの位置関係に応じた挙動を設定できます。コライダーとの内外判定は衝突判定と同様に負荷が高いので注意してください。
パラメータ
|
説明 |
---|---|
Inside | パーティクルがコライダーの内側にいる |
Outside | パーティクルがコライダーの外側にいる |
Enter | パーティクルがコライダー内に入った時 |
Exit | パーティクルがコライダー外に出た時 |
設定できる挙動は以下になります。
パラメータ
|
説明 |
---|---|
Ignore | 何もしません。 |
Kill | パーティクルを削除します。 |
Callback | OnParticleTriggerを呼び出します。 |
*1:Wind Zone は 上部メニューの GameObject > 3D Object > Wind Zone で生成できます。
*2:https://www.jstage.jst.go.jp/article/journalam1998/6/0/6_0_131/_pdf
【Unity】Shuriken Particle Part1 概要とメインモジュール
Unity の「Shuriken」パーティクルについてまとめてみました。
確認バージョンは 2017.3.0f3
- パーティクルとは?
- とにかく使ってみる
- メインモジュール
- Duration
- Looping
- Rewarm
- Start Delay
- Start Lifetime
- Start Speed
- 3D Start Size
- Start Size
- 3D Start Rotation
- Start Rotation
- Randomize Rotation
- Start Color
- Gravity Modifier
- Simulation Space
- Simulation Speed
- Delta Time
- Scaling Mode
- Play On Awake
- Emitter Velocity
- Max Particles
- Auto Random Speed
- Stop Action
パーティクルとは?
大量の粒子(Particle)に様々な動きを設定することによって雨や雪等の自然現象、魔法のエフェクトや爆発演出などを表現します。また、粒子の発生源とパラメータを設定する対象を「エミッター(Emitter:放出器)」と呼びます。
とにかく使ってみる
実際にパーティクルを出してみましょう!Unityを起動して上部メニューの GameObject > Effects > Particle System を選択すると Hierarchyビュー に「Particle System」のオブジェクトが生成されます。
メインモジュール
ここからはエミッターに設定する各モジュールを説明します。 Inspectorビューから設定します。数が多いので覚えるのが大変そうですが全て設定する必要はなく、目的に応じたモジュールだけ設定すれば良いです。 まずは基本設定となるメインモジュールの説明をします。
Duration
パーティクルを発生させる時間(秒)を設定します。
Looping
Durationで設定した時間経過後にパーティクルの発生を停止するか継続するかを設定します。
Rewarm
チェックを入れると1ループが完了したような状態から開始します。 有効にするにはLoopingにチェックを入れる必要があります。
Start Delay
パーティクルの発生開始の待ち時間(秒)を設定します。
Start Lifetime
パーティクルの生存時間(秒)を設定します。
Start Speed
パーティクルの初速を設定します。
3D Start Size
XYZ軸ごとにスケール値を設定したい場合にチェックを入れます。
Start Size
発生時のサイズを設定します。3D Start Size にチェックを入れた場合はXYZ軸ごとにサイズを設定出来ます。
3D Start Rotation
XYZ軸ごとに回転を設定したい場合にチェックを入れます。
Start Rotation
発生時の回転角度を設定します。3D Start Rotation にチェックを入れた場合はXYZ軸ごとに回転角を設定出来ます。
Randomize Rotation
Start Rotationで設定した角度と反対方向にパーティクルを回転させます。例えばStart Rotation を45°とした場合、-45°から開始になります。影響を受けるパーティクルの範囲は0.0〜1.0で設定出来ます。
Start Color
発生時のパーティクルの色を設定します。
Gravity Modifier
重力による影響を設定します。プラスだと下方向、マイナスだと上方向に重力が働きます。0だと無重力になります。
Simulation Space
パーティクルの実行空間を設定します。
パラメータ
|
説明 |
---|---|
Local | パーティクルは親オブジェクトと一緒に動きます。 |
World | パーティクルはワールド空間を基準に動きます。親オブジェクトの動きに影響されません。 |
Custom | 実行空間となるオブジェクトを指定することができます。あまり使わないと思います。。 |
下図はキューブを親オブジェクトとして左右に動かしたものになります。
Simulation Speed
パーティクルの実行速度を設定します。変更がなければ基本は1です。2倍速にしたい場合は2、半分の速度にしたい場合は0.5を設定します。
Delta Time
Time.timeScale による影響を受けるかどうかの設定をします。基本的には変更する必要はなく、ポーズメニュー中もパーティクルを動かしたい場合はUnscaledを設定します。
Scaling Mode
パーティクルのスケールの影響を設定します。
パラメータ
|
説明 |
---|---|
Hierarchy | 親オブジェクトのスケール値の影響を受けてパーティクルサイズと発生範囲が変わります。 |
Local | 親オブジェクトのスケール値の影響は受けずこのパーティクルが設定されているオブジェクトのスケール値のみ影響します。 |
Shape | パーティクル自体のスケールは変わらず、後述するShapeのスケールのみを変更させるパーティクルの発生範囲が変化します。 |
Play On Awake
チェックを入れるとパーティクルのオブジェクトが生成されると即パーティクルを放出します。スクリプト側で放出させるタイミングを制御したい場合はチェックを外します。
Emitter Velocity
後述の Inherit Velocity と Emission で使用するベクトル計算方法を選択します。RigidbodyかTransformの動きを元に速度を計算します。
Max Particles
画面内に一度に発生できるパーティクル数を設定します。この値を超えた場合、古いパーティクルから表示されなくなります。この値は大きな値を設定すると負荷が掛かるのでデザイナーさんはエンジニアと相談してここの上限値をしっかり決めておいた方が良いです(初期値も1000と大きいので・・)
Auto Random Speed
このチェックを入れると、再生するたびにパーティクルの動きが違う結果になります。チェックを外すと何度再生してもパーティクルの動きが同じ結果になります。
Stop Action
エミッターから放出されたパーティクルが全て消えた際にどういった処理をするかを設定します。また、この処理を有効にするには Looping のチェックを外す必要があります。
パラメータ
|
説明 |
---|---|
None | 何もしないです。 |
Disable | パーティクルが設定されているGameObjectを非アクティブにします。画面に表示されませんがシーン内に存在しています。 |
Destroy | パーティクルが設定されているGameObjectを削除します。Hierarchyビューにも残らないです。 |
Callback | OnParticleSystemStoppedを呼び出します。 |
さくらVPSにGitLabをインストール
環境
さくらVPS:メモリ1GB, HDD100GB OS:CentOS release 6.9 (Final) GitLab:Community Edition 9.1.0
1. パッケージインストール
$ sudo yum install curl openssh-server openssh-clients postfix cronie
2. postfix起動
$ sudo service postfix start
エラーが出たので sudo postfix check で原因を調べる
$ sudo postfix check $ postfix: fatal: parameter inet_interfaces: no local interface found for ::1
どこかで ipv6 の設定がされているのだろうと予想
/etc/hosts に ipv6の設定が残っていたのでコメントアウト
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 # ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # lokkitはiptablesを書き換えるので注意 # sudo lokkit -s http -s ssh
3. GitLabダウンロード
$ sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
4. GitLabインストール
$ sudo yum install gitlab-ce # /etc/gitlab/gitlab.rb の external_url 設定 $ external_url 'http://example.com:8787'
初期ポートが 8787 なので iptables 更新も忘れないように
$ sudo vim /etc/sysconfig/iptables
$ sudo /etc/init.d/iptables restart
設定を適用
$ gitlab-ctl reconfigure # GitLab再起動 $ gitlab-ctl restart
指定したURLでブラウザからログイン
初期設定は以下になっているのでログインしてパスワードを変更する事
Username : root
Password : 5iveL!fe
5. その他
gitlab-ctlコマンド一覧
# サービス停止 $ gitlab-ctl stop # 再起動 $ gitlab-ctl restart # ヘルプ $ gitlab-ctl help
さくらVPSにssh接続 Mac版
タイトルの通りです。
VPSの初期設定は以下を参考にしました。 tadasy.hateblo.jp
- 1. [vps]ssh用ディレクトリ作成
- 2. [mac]公開鍵を作成
- 3. [mac]公開鍵をvpsに転送
- 4. [vps]公開鍵を設定
- 5. [mac]ssh接続を設定
- 6. [vps]sshdの設定をする
- 最後に
1. [vps]ssh用ディレクトリ作成
$ mkdir /home/hoge/.ssh $ chmod 700 /home/hoge/.ssh $ ls -al /home/hoge
2. [mac]公開鍵を作成
最初に鍵の置き場所を聞かれるので以下のように任意のパスを指定 /Users/hoge/.ssh/id_rsa_sakura
$ ssh-keygen -C 'for_sakura' Generating public/private rsa key pair. Enter file in which to save the key (/Users/hoge/.ssh/id_rsa): /Users/hoge/.ssh/id_rsa_sakura Created directory '/Users/hoge/.ssh'. Enter passphrase (empty for no passphrase):(パスワード入力) Enter same passphrase again:(パスワード再入力) ----省略----
3. [mac]公開鍵をvpsに転送
# wwwXXXX.sakura.ne.jpにhogeユーザーで公開鍵を転送 $scp ~/.ssh/id_rsa_sakura.pub hoge@wwwXXXX.sakura.ne.jp:/home/hoge/.ssh
4. [vps]公開鍵を設定
$cd /home/hoge/.ssh $cat id_rsa_sakura.pub >> authorized_keys $chmod 600 authorized_keys $ls -al 合計 16 drwx------ 2 hoge hoge 4096 4月 23 17:33 2017 . drwx------ 3 hoge hoge 4096 4月 23 17:33 2017 .. -rw------- 1 hoge hoge 392 4月 23 16:42 2017 authorized_keys -rw-r--r-- 1 hoge hoge 392 4月 23 16:41 2017 id_rsa_sakura.pub
5. [mac]ssh接続を設定
ターミナルから ssh sakura で接続できるようにします。
$cd /Users/hoge/.ssh $vi config ----ここから---- # sakura VPS Host sakura HostName wwwXXXX.sakura.ne.jp IdentityFile ~/.ssh/id_rsa_sakura User hoge ----ここまで書く---- # 接続確認 $ssh sakura Last login: Sun Apr 23 18:00:41 2017 from fdafefafea.ap.so-net.ne.jp SAKURA Internet [Virtual Private Server SERVICE]
6. [vps]sshdの設定をする
#ssh接続でvpsに入る $ssh sakura # viでsshdの設定を以下のように変更 $sudo vi /etc/ssh/sshd_config # ポート変更 Port 10022 # rootで直接ssh接続できないようにする PermitRootLogin no # パスワードなしでログイン禁止 PermitEmptyPasswords no # 鍵認証許可 PubkeyAuthentication yes # 鍵置き場 AuthorizedKeysFile .ssh/authorized_keys # パスワード認証を無効化 PasswordAuthentication no # sshd再起動 $sudo /etc/init.d/sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ]
更にポート番号を変更したのでmacのssh設定を以下のように書き換えます。
$cd /Users/hoge/.ssh $vi config # sakura VPS Host sakura HostName wwwXXXX.sakura.ne.jp Port 10022 #ポート番号追加
※PermitRootLogin no
VPSコントロールパネルからは rootユーザーとパスワードで入れるが sshでは入れなくなる
※PasswordAuthentication no scpで転送したい時は yes に戻す必要があります。
※Port 10022
デフォルトポート番号 22 は攻撃され易いので セキュリティ面から 10021 〜 65535 で設定しておきます。
7. 最後に
これでさくらvpsにMacからssh接続できるようになりました。 複数クライアントで接続したい場合は authorized_keys に 追加したいクライアントの公開鍵を追記すればOKです。 注意:上書きではなく追記です
【Python】備忘録
自分用メモ
リスト内包表記
リスト内包表記が便利なのか面倒なのか良く分からないので取りあえずメモ
コード
# if list = [n for n in range( 10 ) if n % 2 == 0] print u'\nif' print list # if-else list = [i if (i % 2 == 0) else str(i) for i in range(10)] print u'\nif-else' print list # loop:zip print u'\nloop:zip' list1 = [1,2,3] list2 = [4,5,6] for (a, b) in zip( list1, list2 ): print a,b # loop:enumerate print u'\nloop:enumerate' list1 = ['a','b','c'] for (i, x) in enumerate( list1 ): print i,x
結果
if [0, 2, 4, 6, 8] if-else [0, '1', 2, '3', 4, '5', 6, '7', 8, '9'] loop:zip 1 4 2 5 3 6 loop:enumerate 0 a 1 b 2 c
その他
リスト内包表記によるリスト作成はappendメソッドを呼ばないので
append呼び出しによるリスト作成に比べて実行速度が速い
list = [ i for i tmpList if is_valid_file( i ) ]
クラス
# HogeObjectクラス. class HogeObject: def __init__(self): print('コンストラクタやで') self.num = 10 def __del__(self): print('デストラクタやで') def func() print('numは{}やで' . format(self.num)) obj = HogeObject() # インスタンス生成. obj.func() # 「numは10やで」表示. del obj # インスタンス破棄.
空のクラスを定義する場合は pass を使う
class EmptyClass: pass
多値返却
関数の戻り値を複数にすることができる
status, data = hoge_func() print status print data # False # 15 def hoge_func(): sum = 5 + 10 return (True, sum);
辞書で返す事もできる、値が多くなってきたら便利そう
result = hoge_dict() print result[ 'flag' ] print result[ 'sum' ] # True # 15 def hoge_dict(): sum = 5 + 10 return {'flag':True, 'sum':sum }
*args,**kwargs について
関数の引数に指定したリストや辞書を分解して渡すことができる
def hoge_func( a = 0, b = 0, c = 1 ) return a + b + c args = [1, 2, 3] kwargs = {'a':5, 'b':6, 'c':7} print "none:", hoge_func() print "*args:", hoge_func(*args) print "**kwargs:", hoge_func(**kwargs) # none:1 # *args:6 # **kwargs:18
その他
・tim.clock() はプロセッサのクロックタイムを返す、ベンチマークとかに使う