Vtube studio pro android

VTube Studio v1.2.2 APK+Mod

  • Имя файла: com.denchi.vtubestudio
  • Версия для загрузки приложения: 1.2.2
  • Цена: 0
  • Размер apk: 70M
  • Скачать: 1000
  • Время последнего обновления: Jul 27, 2020
  • цель: 0
  • MD5:
  • Подпись:
  • SHA256: ROOT: —> 0 —> Предложения покупки в приложении: —> 0 —>

VTube Студия Ваш все-в-одном решение для становления Live2D Virtual YouTuber, как профи!

С VTube Studio, вы можете легко загрузить свои собственные модели Live2D прямо на Android телефон (должен поддерживать отслеживание лица ARCORE) и стать единым с ними с помощью слежения за лицом. Вы можете также использовать VTube Studio, для MacOS или Windows, чтобы поток данных отслеживания лица непосредственно к компьютеру и анимировать модель там и использовать его в своих собственных видео и прямые трансляции!

В отличие от версии iPhone, VTube студии для Android в настоящее время не поддерживает глаз (зрачок) отслеживание или мигания-трекинг.

для получения дополнительной информации о том, как загрузить MacOS и версию Windows, или как загрузить свои собственные модели (это просто!), пожалуйста, обратитесь к документации и видео-уроки в https://denchisoft.github.io/ Китай для поддерживаемых устройств, см: https://developers.google.com/ar/discover/supported-devices

Примечание : VTube студия официально лицензию на использование Live2D Кубизм SDK.

Источник

VTube Studio

Download VTube Studio 1.13.0 APK

ID: com.denchi.vtubestudio

Author:

Version:

Update on:

The description of VTube Studio

VTube Studio is your all-in-one solution for becoming a Live2D Virtual YouTuber like the pros!

With VTube Studio, you can easily load your own Live2D models directly on your Android phone (must support ARCore face tracking) and become one with them using face tracking. You can also use VTube Studio for macOS or Windows to stream the face tracking data directly to your computer and animate the model there and use it in your own videos and livestreams!

Unlike the iPhone version, VTube Studio for Android does not currently support eye (pupil) tracking or blink-tracking.

For more information on how to download the macOS and Windows versions or how to load your own models (it’s easy!), please refer to the documentation and video tutorials at https://denchisoft.github.io/

For supported devices, see: https://developers.google.com/ar/discover/supported-devices

Note: VTube Studio is officially licensed to use the Live2D Cubism SDK.

Источник

Использовать VTube Studio

Дополнительный контент для этой программы Просмотреть все (1)

Об этом ПО

VTube Studio is finally coming to Steam!

VTube Studio is the tool of choice for any Live2D VTuber! With a wide variety of features, it has never been easier to connect with your viewers!! VTube Studio can be used directly with your webcam on any Windows PC or Mac.

VTube Studio also supports other advanced tracking inputs to control your Live2D model, including audio-based lipsync (requires microphone). Details can be found in the documentation.

VTube Studio on Steam is free to use with all its features!! An optional «Remove Watermark» DLC exists that will remove the (very cute) watermark that would otherwise be shown when the webcam tracking is active.

Using VTube Studio is really easy!! Load your own Live2D Cubism model, run the auto-setup (or do the setup manually), start the tracker and you’re good to go. VTube Studio works well with OBS, Streamlabs or any other streaming software.

VTube Studio comes with a few simple example models, but you obviously want to import your own models!! VTube Studio ONLY supports Live2D Cubism models, other formats like VRoid are not supported. No support for other formats is planned.

If you ever get stuck, there’s a complete documentation available as well as an active Discord community that’s happy to help out new users!

What can VTube Studio do?

VTube Studio comes with tons of fun features you can try out and use to have fun with your viewers. Future development of VTube Studio will focus on community/viewer interaction, so please look forward to that!!

Some of the current features of VTube Studio:

  • Fast, high quality face tracking
  • Voice-based mouth tracking
  • High resolution, high quality, crisp Live2D model rendering
  • Hotkey-triggered animations, expression changes
  • Smoothly move model position/size/rotation per hotkeys
  • Mouse/Pen-tracking parameter
  • You can map any tracking parameter to any Live2D parameter of your model! Complete freedom!
  • Item-System!! You can pin your own PNG items directly to your model and they’ll move with it.
  • iOS/Android app for network face tracking or directly rendering the model (free demo available)
  • Commercial usage is allowed (YouTube, Twitch, Superchats, . ) See license for more details.
  • . and many more!! Got a cool feature you think people would like? Join our Discord and let us know, most features and improvements were suggested or inspired by user feedback.

How does the webcam-based face tracking work?

Thanks to Emiliana from VSeeFace, VTube Studio now directly supports webcam-based face tracking powered by OpenSeeFace!! It comes with various quality levels so it will even run on low-spec PCs or Macs. It’s free to use but will show a watermark if you don’t buy the «Remove Watermark» DLC, available now.

Where to get help?

The documentation, support email and active Discord community can be found on the website linked on this page. Please join, we’re waiting for you!!

Источник

Vtube studio pro android

Are you a developer who wants to learn about creating VTube Studio Plugins?

Everything you’re looking for is on this page. If you have any questions, please ask in the Discord.

VTube Studio will get a public API. This means you will be able to write plugins/scripts that can trigger hotkeys, feed in face tracking data or receive face tracking data from VTube Studio.

As a first step, a proposal for the API setup and payloads will be published on this page. Once that’s available, please review the proposal and leave feedback. After this process, the API will be implemented as documented in this repository.

Afterwards, if you develop a plugin or any app that can be used with VTube Studio, please open a PR and I will add it to the list that will be created on this page.

If you’re a user of VTube Studio looking for plugins you can use, check out the plugin list wiki page.

If you’re a developer looking for examples/libraries for you to look at that make it easier to integrate the VTube Studio API into your app, please take a look at the following table.

⚠️ If you made something you want to have included here, please open a pull request with the modified table!! ⚠️

Plugin Developer Type Explanation
Cheers Bot Hawkbar App A web-based Twitch integration platform which can trigger actions in VTube Studio when chatters redeem channel points, among many other features.
VTubeStudioJS Hawkbar Library A JavaScript library for use by other plugin authors which implements the VTube Studio WebSocket API. Compatible with both NodeJS and the browser.
VTS Linker — SMB1 Renpona Example A prototype for reading data from an emulated copy of Super Mario Bros, and using that data to automatically move and recolor a Live2D model in VTS based on what’s happening in the game.
VTchaos Raelice App A program that reads YouTube and Twitch chat to perform functions like model swapping, rotation, hotkeys, and movement in vtube studio through simple chat commands.
Mix It Up Mix It Up App Streaming Software Bot for Chat, Events, and other awesome features!
VsPyYt emlo40 App/Framework VsPyYt is a command prompt app that can read YouTube chat and execute commands saved in token.json. You can also use it as a base for python programs that interact with VTube Studio.
VTS-Sharp Skeletom Library A Unity/C# library for use by other plugin authors which implements the VTube Studio WebSocket API.
node-red-contrib-vts 0nepeop1e Library A library package which provides node for Node-RED to integrate with VTube Studio
VTS Mod MechaWolfVtuber_Shin App A program that allows users to change the surface color of the model including RGB. It can also change the rotation of the model.
Tie Tools: VTS Color Editor Prof. Tiberius App Web App that gives in depth control of the colors and opacity of specific parts of your model.
vtubestudio-rs Walfie Library A Rust library for use by other plugin authors which implements the VTube Studio WebSocket API.

The VTube Studio websocket server runs on ws://localhost:8001 . This is the default, but users can also change the port in the app. Websockets in general support binary and text messages. VTube Studio will always respond with text messages and it is recommended to also send text messages to the API. You may also send binary messages but if you do, make sure they are encoded in UTF-8.

If your plugin cannot connect to the websocket server, tell the users to check if the port is correct or if there are any firewall/antivirus settings that may prevent the connection. You should also make sure your plugin supports configuring the port used for the connection.

If you can connect, the first thing to do is check if the user has enabled the API.

REQUEST

RESPONSE

Every request has to contain «apiName» : «VTubeStudioPublicAPI» and the used API version, which will be «1.0» at the time of the first release. This API version will stay the same until incompatible changes are made to the behavior/payloads. This means that new functionality may be added to the API (including new fields in existing payloads) without increasing the version. Make sure your app can handle this and doesn’t break if it encounters unknown fields during deserialization.

An example for an incompatible change would be renaming an existing field or removing it from the payload altogether. If there are any incompatible changes, the API version will be increased for them so the old APIs can still be used as they are.

You can add the «requestID» field to every request. This is optional but recommended, because it allows you to identify responses to your requests. This ID will also be used to log the request in the VTube Studio logs along with any errors. If anything goes wrong, you can use this as reference to check for any errors related to this request in the logs.

You can use the same ID or different IDs for each request. If provided, IDs should only contain ASCII characters and be at least 1 and at most 64 characters in length. If you don’t add the «requestID» field, VTube Studio will add a randomly generated UUID for the request and return it with the response.

The «currentSessionAuthenticated» will tell you if the current session has already been authenticated.

If the user has turned off the API functionality, all API requests other than the API state request will fail with the following response.

RESPONSE

If this is the case, you should ask the user to «Allow Plugin API access» in VTube Studio. It’s an option on the main config page in VTS. If any other API request fails, this payload will also be returned with the respective error ID and message.

All possible error IDs are listed on the page ErrorsID.cs.

Once connected, the client can poll information about the current app state at any time.

API Server Discovery (UDP)

VTube Studio also broadcasts the API state on the local network via UDP on port 47779. This is done once every two seconds even if the user has turned off the API. The instanceID is a random ID that gets generated for a VTube Studio instance when it is started. It doesn’t change while this instance is running so two VTube Studio instances would have different IDs.

The windowTitle is the title text of the window. On Windows, this will be different for different VTS instances. When more than one instance is started, the first instance will have the title VTube Studio , the second instance will have the title VTube Studio Window 2 and so on. On macOS, all instances will have the title VTube Studio

Before using the API, you have to authenticate once. For this, you’ll have to provide your plugin name and the name of the developer. They should both be between 3 and 32 characters.

This is done by requesting a token for your plugin. Send the following request:

REQUEST

If the user has activated API access, this will trigger a popup inside of VTS asking the user if they want to allow the plugin «My Cool Plugin» by «My Name» to control VTube Studio. «pluginIcon» can be added optionally. This has to be a base64 encoded PNG or JPG image with the exact dimensions 128×128 pixels. If you add this, the icon will be used in the plugin access request popup shown to the user. If they click «Allow», you will get the following response:

RESPONSE

The field «authenticationToken» contains an ASCII string which will serve as the token for authenticating with the API. It is at most 64 characters in length. If they deny access, you will get the following error:

RESPONSE

Users can revoke API access from your plugin at any point from within VTube Studio. If they do, you will also get this error when trying to send any requests. You may try to re-authenticate in this case.

You only need to obtain the token once. With this token, you can now authenticate for this session. In the next session (for example when VTS is restarted or your plugin has to re-connect to VTS for some reason), you can use the same token to authenticate again so you don’t have to send the requests to get a token again so the user will only be asked about allowing your plugin once.

To authenticate for one session, send the following request with your token:

REQUEST

«pluginName» and «pluginDeveloper» have to match the values you used when requesting the token, otherwise the authentication request will fail.

If the token is valid and API access has not been revoked by the user, you will get the following response:

RESPONSE

Congratulations, you are authenticated and can use the VTube Studio API.

If required fields are missing, you’ll get an error response. If all fields are there and properly formatted but the token is invalid or has been revoked by the user, «authenticated» will be returned as false .

Note about data field: Some requests include a data JSON object field and some don’t. To make things easier for you, you can also include this field in requests that don’t need it. It will just be ignored by VTube Studio, even if you leave it empty or set it to null / undefined . VTube Studio will return this field with every request to make deserialization easier for your plugin. If the response doesn’t have data, the field will contain an empty JSON object.

Note about timestamp field: All responses also have a «timestamp» field that contains the UNIX millisecond timestamp at which your request was processed. You may include a «timestamp» field in your requests, but it will be ignored.

Getting current VTS statistics

REQUEST

RESPONSE

«uptime» contains the number of milliseconds since VTube Studio has been started. «framerate» is the current render FPS value. «allowedPlugins» is the number of plugins that the user has currently allowed to use VTube Studio, «connectedPlugins» is the number of plugins that are currently connected to the VTube Studio API. «startedWithSteam» is true if the app has been started using Steam, false otherwise (if the .bat file has been used to start VTS without Steam).

Window width and height is in pixels.

Getting list of VTS folders

Returns the name of various VTube Studio folders. They are in the StreamingAssets folder in the game files.

REQUEST

RESPONSE

Getting the currently loaded model

REQUEST

RESPONSE

«modelLoaded» will be true if a model is currently loaded. If no model is loaded or a model is currently in the process of being loaded, this will be false. In this case, all other values will be empty (or zero in case of integers).

«modelLoadTime» is the time in milliseconds it took to load the current model. «timeSinceModelLoaded» contains the time in milliseconds since the model has been loaded.

«vtsModelIconName» contains the name of the icon used for this model in the model selection bar in VTube Studio. If the model has no icon set, this will be an empty string. All file names returned in this request are relative to the respective model folder.

The «modelPosition» array contains the current model position, rotation and size. For more info on how to interpret these values, see MoveModelRequest .

Getting a list of available VTS models

REQUEST

RESPONSE

«modelLoaded» is true if the respective model is currently loaded in VTube Studio, false otherwise.

Loading a VTS model by its ID

REQUEST

RESPONSE

This may fail and return an error if the app is currently in a state where no model can be loaded. This includes having config windows open or a model load operation currently already being in progress. There is also a global 2 second cooldown for this requests.

Moving the currently loaded VTS model

If a model is loaded, this allows you to change its position, rotation and size. If no model is loaded, this will return an error, see ErrorsID.cs

The required fields in this request are «timeInSeconds» and «valuesAreRelativeToModel» . «timeInSeconds» is the time in seconds the movement should take and has to be a float value between 0 and 2. If this is set to 0, the model will instantly appear in the given position. A value higher than that will make the model move, rotate and grow/shrink smoothly to the given position (faded in/out). While the movement is going on, the user cannot move the model manually by dragging it. That will be possible again about half a second after the model has finished moving to the destination.

Subsequent MoveModelRequest can be sent without waiting for the ongoing one to finish. If one is ongoing, it will be interrupted and replaced by the new one. You can even take complete control over the movement by sending one request each frame with 0 as «timeInSeconds» .

The «size» is given as a float between -100 (smallest) and +100 (biggest). For «positionX» , «positionY» and «rotation» , please refer to the following image:

The numbers in the cats represent the [X/Y] coordinates you can pass in using «positionX» and «positionY» . For example, sending [0/0] will position the middle of the model in the middle of the screen. What the «middle of the model» is can be set freely in Live2D Cubism and may vary between models. You can of course also send much bigger/smaller values to move the model off-screen. «positionX» and «positionY» have to be between -1000 and 1000.

The numbers around the circle represent the angles you can set using «rotation» . Values for this parameter have to be between -360 and 360. Please note how there are two representations for each angle: positive when rotating clockwise, negative when rotating counterclockwise. Which one you use is up to you, there is no difference. When you send a CurrentModelRequest , the response will also contain the position/rotation/size of the model. In this response, the angle will always be represented in the positive notation.

You don’t have to provide all values in the request. For example, you could just provide positions or just a rotation or any other combination. All values that are not included in the request will be ignored when setting the position/rotation/size. Like this, you could for example only change the X-coordinate of the model while leaving everything else as it is.

If «valuesAreRelativeToModel» is set to false , the values from your request will be taken as absolute values and the model will be moved to that position. If «valuesAreRelativeToModel» is set to true , the values are considered to be relative to the current model position. Let’s assume you set it to true and only include a rotation of 10 in your request. That would rotate the model clockwise by 10 degrees, from whatever rotation it is at right now while not touching the position and size at all. This can be very useful for implementing effects that should move the model in place, like shaking it independently of where it is on the screen.

If you want to move the model to a fixed pixel position or by a certain amount of pixels, you’ll have to calculate the respective coordinates yourself. You can do so by getting the window width and height in pixels using the StatisticsRequest .

REQUEST

RESPONSE

Requesting list of hotkeys available in current or other VTS model

REQUEST

The «modelID» (and «data» object in general here) is optional. If it’s not provided, the hotkeys for the current model are returned. If the model ID is provided, the hotkeys of the model with the give model ID are returned. If no model with that ID is found, an error is returned (see ErrorID.cs, ModelIDNotFound ).

RESPONSE

If no model ID was specified in the request and no model is loaded, «modelLoaded» will be false and the «availableHotkeys» array will be empty. If an ID was specified, the «modelLoaded» field will be true or false depending on whether or not the model with the given ID is currently loaded.

The «file» field contains the expression/animation/model filename for hotkeys of type TriggerAnimation , ChangeIdleAnimation , ToggleExpression and ChangeVTSModel . For ChangeBackground hotkeys, this contains the background name without the file extension. For all other types, it contains an empty string.

The «description» field contains a description of what the hotkey does. You can show this string on your plugin UI when you encounter a hotkey type that your plugin doesn’t know, for example because the hotkey type was newly added to VTube Studio.

All hotkey type strings can be found on the page HotkeyActions.cs.

Requesting execution of hotkeys

REQUEST

RESPONSE

You can trigger hotkeys either by their unique ID or the hotkey name (case-insensitive). If multiple hotkeys have the same name, only the first one will be executed (order is the order they show up in the UI). Hotkeys with empty name can only be triggered by ID.

This may return an error if the hotkey ID or name wasn’t found or the hotkey couldn’t be executed for some reason. Reasons include no model being currently loaded or the hotkey cooldown not being over (one specific hotkey can only be triggered once every 5 frames). You may send different hotkeys in quick succession, which will result in them getting queued. Once every 5 frames, one hotkey is take from the queue and executed. The queue holds 32 hotkeys. When the queue is full but you try to send in more hotkeys, an error will be returned.

Requesting list of ArtMeshes in current model

The API uses the term ArtMesh Name , but this actually refers to the ArtMesh ID which will be unique per model as enforced by the Live2D Cubism Editor. ArtMesh Tags can be added by selecting an ArtMesh and writing into the UserData field. If you want to use tags, make sure that you check Export UserData file (userdata3.json) . You should then include the .userdata3.json file when copying the model to the VTube Studio Live2DModels-folder.

ArtMesh tags returned in the «artMeshTags» array will not contain duplicate tags.

If no model is loaded, «modelLoaded» will be false and the arrays will be empty.

Note about «tags»: Tags can be added to ArtMeshes in the «UserData» field in the Live2D Cubism Editor. You can add any text into that field in the editor. VTube Studio will split that text at spaces and newline characters. This means if your tag text is «my tag», it will become two tags in VTS: «my» and «tag». You can add as many tags to each ArtMesh as you want.

REQUEST

RESPONSE

Tint ArtMeshes with color

You can tint ArtMeshes by providing a color and matching criteria. Any ArtMesh matching any of the given criteria will be tinted with the given color. To reset the ArtMesh color, tint it white (R=G=B=A=255). You cannot turn an ArtMesh white with this request, only darker.

Not providing one of the color values or any being outside the 0-255 range will return an error. Trying to send this request when no model is loaded will also return an error.

Optionally, you can provide mixWithSceneLightingColor between 0 and 1. If provided, this will determine how the tint color is mixed with the scene lighting system color (see here for more info on that). If it’s set to 1, your provided color value will overwrite the value set by the scene lighting completely. Setting it to 0 will make the scene lighting color overwrite your provided color. Anything in between will mix the two colors. If scene lighting is off, this has no effect. If you don’t provide mixWithSceneLightingColor , it’s set to 1 per default, meaning your provided color will overwrite the scene lighting completely.

All arrays included in the «artMeshMatcher» object are optional. If you include them, it will select ArtMeshes based on whether or not the ArtMesh names or tags match any of the given strings exactly or contain them (when using the «nameContains» / «tagContains» arrays). The «artMeshNumber» array lets you select ArtMeshes based on their order within the model. If you just want to tint the whole model, don’t include any of the matcher arrays and instead set «tintAll» to true.

When the session is disconnected, all ArtMeshes that have been tinted in this session will be reset to their default (fully opaque white). When multiple plugins/sessions overwrite the color of an ArtMesh, it will have the color set by the most recent request.

Matching is always executed case-insensitive.

REQUEST

Super secret note: If you add «jeb_»: true to the «colorTint» object, it’ll activate the rainbow animation mode for the matched ArtMeshes.

RESPONSE

Getting scene lighting overlay color

VTube Studio has functionality to overlay the model with the average color captured from a screen (macOS/Windows) or specific window (Windows only). For more info, see this page in the documentation.

You can get the current user configuration and color for the scene lighting overlay system via the API.

In the top level of the response, you have the active field, which tells you whether or not the lighting overlay is on. If itemsIncluded is true, all items are also affected by the lighting overlay. If isWindowCapture is true , VTube Studio is set to capture the average color of a window. If this is false , the capture is set to a screen.

baseBrightness (between 0 and 100), colorBoost (between 0 and 100) and smoothing (between 0 and 60) are the three values users can select using sliders on the UI. For an explanation, please check documentation page about this feature.

leftCapturePart , middleCapturePart and rightCapturePart describe the average colors of the respective parts of the captured window or screen. Their active field tells you whether or not the screen part has been activated by the user.

The average color calculated from all activated screen parts can be found in the colorAvg fields (R, G and B between 0 and 255).

The final color that will be used to overlay the ArtMeshes is in the colorOverlay fields (R, G and B between 0 and 459). Note that this allows values higher than 255. The final color is calculated as follows:

colorAvg * ( colorBoost / 50) + WHITE_COLOR * ( baseBrightness / 100)

This may produce values as high as 2 * 255 for R, G and B. The values are capped at 1.8 * 255 = 459.

When the lighting overlay system is turned off, active on the top payload level will be false and all colors will be returned as white.

REQUEST

RESPONSE

Checking if face is currently found by tracker

Returns whether or not the face is currently found by the active tracker (smartphone via network/USB or webcam tracker).

REQUEST

RESPONSE

Requesting list of available tracking parameters

You can request a list of parameters currently available in VTube Studio. This includes all regular parameters and all custom parameters created by plugins. Parameters created by plugins will be marked as such when you select them from the parameter list in VTube Studio. It will also show the name of the plugin that created them.

Important: This may return a lot of data. It is not recommended to send this request at high frequencies (60+ FPS), as it may cause performance issues on slower PCs.

REQUEST

RESPONSE

Note: The «defaultParameters» array is incomplete in this example payload. This will contain all default face/mouse/etc. tracking parameters offered by VTube Studio

Get the value for one specific parameter, default or custom

If the requested input parameter does not exist, an error will be returned.

REQUEST

RESPONSE

Get the value for all Live2D parameters in the current model

This will return an error if no model is loaded.

REQUEST

RESPONSE

If no model is loaded, «modelLoaded» will be false and the parameter array will be empty. All other fields will be empty strings.

Adding new tracking parameters («custom parameters»)

You can also add your own new tracking parameters and use them in your VTube Studio models. They are called «custom» parameters. After being added by your plugin, the user can select your parameters as inputs for Live2D parameter mappings.

Parameter names have to be unique, alphanumeric (no spaces allowed) and have to be between 4 and 32 characters in length. New tracking parameters are created like this:

REQUEST

RESPONSE

The request may fail and return an error if the parameter name is invalid.

It will also fail if a parameter with the same name created by a different plugin already exists. If you create a parameter multiple times with the same plugin name, the request will succeed. You can also overwrite the min , max and defaultValue values that way

Min/Max/Default values have to be floating-point numbers between -1000000 and 1000000 . The min/max values aren’t actually the minimum and maximum values allowed for the parameter. They’re the values that will be used as default lower and upper value when a new parameter mapping is created using this parameter.

The explanation is an optional, short (less than 256 characters) explanation stating what the parameter does and how users should use it in their models. If you provide this in the request, it will be shown when the user views the details of this custom parameter.

There is a global limit in VTS of 300 custom parameters and a limit of 100 custom parameters per plugin. If you try to create more, an error will be returned.

These custom parameters you create are stored as part of the VTube Studio configuration in a file called custom_parameters.json in the Config folder, which is located in the VTube Studio StreamingAssets folder. If you revoke the authentication token from a plugin, all custom parameters that this plugin create will also be deleted. They will still be set in the VTube Studio models that have used them, but will be shown in red text to indicate that the input parameter no longer exists. Plugins can get another token and recreate these parameters at any time and they will continue to work.

Delete custom parameters

You can delete custom parameters. Default parameters cannot be deleted. You also cannot delete parameters created by plugins other than the one you have used to authenticate this session.

REQUEST

RESPONSE

Feeding in data for default or custom parameters

You can feed in data for any default or custom parameter like this:

Источник

Читайте также:  The sandbox андроид взлом
Оцените статью